APP下载

基于nRF52832的蓝牙鱼缸水情检测系统设计*

2018-03-01,,

单片机与嵌入式系统应用 2018年2期
关键词:外设鱼缸蓝牙

,,

(1.石家庄邮电职业技术学院 电信工程系,石家庄 050031;2.河北电信设计咨询有限公司;3.河北省广播电视技术中心)

引 言

随着社会的快速发展和人民生活水平的提高,养鱼已经逐渐成为越来越多的人爱好,其成为家庭装饰和绿色生活的首选[1-2]。但是,不同的鱼对水环境的要求各不相同,如鱼缸的水温、pH值、水位情况等。如果水环境不合适,很容易导致一些名贵鱼的死亡[2]。

随着物联网技术的飞速发展,智能家居技术逐渐成熟,通过手机实现对家居设备的智能管理成为人们的普遍需求。针对这一情况,本文提出并设计了一种可通过手机蓝牙(BLE4.0)实时了解鱼缸水环境情况的水情检测仪。

1 系统总体设计

系统结构示意图如图1所示。水情检测仪通过顶部的超声波传感器进行鱼缸水位测量,通过pH复合玻璃电极测量鱼缸内水的pH值,通过温度传感器采集温度。水情检测仪通过蓝牙将测量数据发送到手机端,手机端APP显示测量结果。

图1 系统结构示意图图

2 系统硬件设计

系统硬件框架如图2所示。主要包括:可与手机进行蓝牙通信的MCU nRF52832(以下简称nRF52)最小系统、pH值信号采集处理电路、温度传感器DS18B20、超声波水位测量传感器、外设电源控制电路、锂电池组、电池管理板、电压转换电路以及电池电压采集电路。

其中,电池管理板负责将锂电池输出的3.7 V电压升压到5 V,为各个传感器供电;电池电压采集电路通过电阻分压,将3.7 V电压降低到3.3 V以下。nRF52832通过两路ADC采集pH信号和电池电压信号;通过一路I/O口连接DS18B20进行温度采集;通过一路串口接收超声波水位测量传感器数据;通过一路I/O口控制MOS管开关电路,实现外设电源开关控制。下面重点对nRF52832最小系统和pH信号采集处理电路做详细论述。

图2 系统硬件架构图

2.1 nRF52832最小系统设计

nRF52832为Nordic公司的一款支持低功耗蓝牙BLE、ANT/ANT+和2.4 GHz多种无线协议的处理器,其内部集成了支持浮点运算的32位 ARM Cortex-4F CPU、512 KB的Flash和64 KB RAM,主频可达64 MHz[3-4]。nRF52832内部集成8路12位逐次逼近型ADC、2路SPI、2路I2C总线、1路I2S音频接口和1路UART等多种接口。其特有的PPI(Programmable PeripHeral Interconnect)机制使得外设之间的事件可独立于CPU进行连接,节省CPU资源。[5]基于其EasyDMA技术,外设可直接访问内部RAM,而无需CPU干预。

图3是nRF52832最小系统原理图,该芯片共有32个I/O口,去掉2个32.768 kHz的RTC实时时钟口和2个NFC天线接口,用户可使用的I/O口共28个。本系统中使用了AIN6和AIN7两路12位ADC进行电池电压和pH值信号电压测量,使用2路GPIO口进行温度采集和外设电源控制,使用1路串口接收超声波水位传感器数据。需要注意的是,nRF52832电源电压范围为1.7~3.6 V[6],本系统采用的锂电池额定工作电压为3.7 V,充满电空载时可达4.2 V,为安全可靠起见,电池电压首先进行了电阻分压后才进入nRF52832电池电压测量ADC接口。

图3 nRF52832最小系统原理图

2.2 pH值信号采集处理电路设计

溶液的pH值取决于其中氢离子的浓度[7]。pH值的测量方法主要有两种:依据pH试剂颜色变化的比色法和测量电极两端电压的电位法。其中,比色法仅用于粗略测试,无法保证精度;电位法具有测量精度高、稳定性好的优点,适合用于溶液pH值的精确测量[8-9]。因此,本系统采用了后者,使用的传感器为复合玻璃pH电极。

电位法测量pH值的基本原理是:将复合玻璃电极放入待测溶液中,通过测量电极内部标准KCL溶液内的参比电极与外部待测溶液中的玻璃电极的电位差,实现pH值的测量[7]。根据能斯特方程,复合玻璃电极的电位与被测溶液的pH值的关系为:

(1)

式中:E为复合玻璃电极电位(mV),E0为参比电极电位(mV),R为气体常数8.3144J/(K*mol),T为绝对温度,F为法拉第常数96 485 C/mol,K=2.303RT/F=0.198 4T。

此种测量方式具备几个特点:一是每个pH值的变化对应的电位差(E-E0)非常微弱,当环境温度为25 ℃时,一个pH值的变化对应的电位差为59.16 mV[9];二是从

式(1)中可看出,pH值除和电位差有关之外,还和温度有关。根据式(1),温度对pH值电极电位差的影响为0.198 4 mV/℃,如果温度变化较大,需要做温度补偿。

[10]给出了温度补偿模型。考虑到本系统工作环境为室内,温度变化不大,所以未做温度补偿。三是玻璃电极具有很高的阻抗,通用pH值电极阻抗约为100 MΩ,根据第一点和欧姆定律,其电流仅为0.591 6 nA,为保证测量信号的稳定,要求后端处理电路必须具备很高的输入阻抗与之匹配。为此本系统选用了高输入阻抗的轨到轨运算放大器TLC4502实现微弱信号的放大。

pH值信号采集处理电路如图4所示。pH电极两端pH+和pH-电位差经过TLC4502放大后,经过pH_OUT端口送到nRF52832的ADC端口进行模数转换,经过nRF52832的运算后得到最终的pH值。其中需要注意的是:TLC4502为轨到轨运放,所以会引入负电压,为降低系统成本和功耗,本电路通过TLC4502的一路运放结合LM285D-2.5稳压二极管输出的2.5 V电压,将pH-的电压值抬高,从而使得pH+和pH-的电位差始终为正电压。由于nRF52832的工作电压为3.3 V,所以R28的阻值选择了1.8 kΩ,pH-电压为1.85 V,使得pH+电压以1.85 V为基准上下波动,电压范围始终处于0~3.3 V之间。

图4 pH信号采集处理电路

3 系统软件设计

3.1 nRF52832软件设计

3.1.1 nRF52832工作流程

nRF52832的工作流程如图5所示。

图5 nRF52832工作流程

首先,进行nRF52832外设和BLE协议栈初始化,主要包括:

① nRF52832的GPIO、串口和ADC的初始化。

② RTC实时时钟初始化。nRF52832有两种时钟源:高频时钟HFCLK和低频时钟LFCLK。低频时钟源主要有:32.768 kHz外部晶体振荡器时钟、内部32.768 kHz的RC时钟和32.768 kHz合成时钟[6]。其中,RC时钟受温度影响精度不高,合成时钟是从高频时钟HFCLK合成而来。为降低功耗,nRF52832的BLE协议栈一般选择低频时钟源,所以系统选择了32.768 kHz外部晶体振荡器时钟。

③ BLE协议栈初始化、BLE连接事件GAP参数初始化、Nordic串口服务初始化、BLE广播初始化和连接参数初始化。

然后,nRF52832开启蓝牙广播,等待手机连接。基于nRF52832协议栈SoftDevice的on_ble_evt()中断处理函数,可获取当前BLE的连接状态:BLE_GAP_EVT_CONNECTED和BLE_GAP_EVT_DISCONNECTED。如果连接成功,则开启外设(在本系统中,外设包括:温度传感器、pH采样电路、超声波水位传感器)供电;进行温度采集;通过nRF52832的ADC进行pH值电压采样和pH值计算、电池电压采样和计算;通过串口接收超声波水位传感器数据并解译;数据处理完成后,通过BLE上传到手机APP显示。如果nRF52832未与手机建立连接,则停止温度采集和ADC采样,通过开关电路关闭外设供电,nRF52832进入低功耗模式,最大限度降低系统功耗。

3.1.2 pH值的数据滤波与校准

经过pH值信号采集处理电路放大之后的电压信号,被送到nRF52832的ADC接口进行模数转换,经过运算得到实际的电压值。在实际的ADC数据采样中,由于外界的干扰,会出现偶然的数据波动,所以需对ADC采样数据做软件滤波。考虑到pH值数据属于缓慢变化的被测参数,所以本系统采用了中位滤波法,即连续采样N次(N为奇数),把N次采样数据采用冒泡法从小到大排列,选取中间值作为本次采样的有效值。

由于温度的差异、pH电极个体差异和信号采集处理电路中各元器件存在差异,第一次使用时需进行校准,通过对实验数据分析,采用最小二乘法对离散点进行线性回归分析[11],得到pH值与电压变化量的关系式△E=kpH+b。本系统采用了三点校准方式。根据参考文献[11],高、低pH值与电压变化量的曲线是有所不同的,但两者在pH=7附近基本重合,所以,本系统采用了两组三点校准得到两组关系式,以实现pH值的精确测量。

首先,以pH=6.86为分界线,pH=6.86以下为酸度曲线,pH=6.86以上为碱度曲线。采集pH=3.0、4.0、6.86三点对应的电极电压值,基于y=kx+b的最小二乘法式(2)和(3)得出酸度曲线公式(具体数据见表1);同理,采集pH=6.86、7.80、9.18三点对应的电极电压,得出碱度曲线公式(具体数据见表2)。

(2)

(3)

表1 pH≤6.86时采集的三点数据(标准pH值,ΔE)

表2 pH≥6.86时采集的三点数据(标准pH值,ΔE)

3.2 Android APP 软件设计

手机端的APP用于与nRF52832建立蓝牙连接、接收nRF52832上传的各项数据并显示、通过蓝牙向nRF52832发送指令。APP显示界面如图6、图7所示。

图6 手机APP扫描到蓝牙设备SQJC01

图7 APP显示鱼缸水情数据

4 测试验证

4.1 样机试制

根据系统的设计方案,进行了样机试制。图8是系统样机实物图,从左到右依次为:水位传感器接口、温度传感器接口、pH值信号处理板及接口、MOS管开关板、nRF52832最小系统板、3.3 V电源板、锂电池和电池管理板。

图8 系统样机实物图

4.2 系统数据测试

在室温25 ℃环境下,水情检测仪对鱼缸内水的pH值、水位值、电池电压和系统工作电流进行了数据采集和分析。通过误差分析,可知水情检测仪的各项指标达到了较高的测量精度。同时由于采用了蓝牙低功耗MCU和电源开关控制,系统正常工作时电流为94.4 mA,休眠时(仅开启了蓝牙广播,其他外设全部关闭)仅为9.4 mA,系统具有较低的功耗,可实现长时间的稳定运行。

结 语

参考文献

[1] 徐喆.一款家用鱼缸智能控制系统设计[D].西安:西南交通大学,2017.

[2] 白春雨,吴红海,赵怀冬,等. 基于GSM的可调节智能鱼缸生态系统[J]. 科技风,2017(8):86-87.

[3] NORDIC SEMICONDUCTOR. nRF52832 - Product Specification v1.0[EB/OL].[2017-12].http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.nrf52%2Fdita%2Fnrf52%2Fchips%2Fnrf52832_ps.html, 2016-02-01.

[4] 刘百芬,李图之,陈鹏展,等. 基于nRF51822的汽车无线姿态测量系统设计[J]. 科学技术与工程, 2014, 14(17): 87-90.

[5] 谭晖. 低功耗蓝牙开发与实践[M]. 北京:北京航空航天大学出版社, 2016:92.

[6] NORDIC SEMICONDUCTOR. nRF52832 Objective Product Specification v0.6.3[EB/OL].[2017-12].https://www.nordicsemi.com/eng/Products/Bluetooth-low-energy/nRF52832,2016-02-01.

[7] 董华. 基于MSP430单片机的pH计的研制[D].长春:吉林大学,2008.

[8] 彭鹏. 基于物联网的水环境在线监测系统研究[D].武汉:华中科技大学,2012.

[9] 林大烜,唐荣年,王云强,等. 基于Android系统的pH参数测量仪设计[J]. 仪表技术与传感器,2014(7):58-60.

[10] 张占学. 基于最小二乘法的pH值温度补偿模型[J]. 电气技术,2015(2):115-117.

[11] 张开远,周孟然,闫鹏程,等. 基于最小二乘法的pH值温度补偿系统设计[J]. 传感器与微系统,2015,34(5):109-111,122.

吴蓬勃(副教授),主要研究方向为物联网技术、嵌入式技术。

猜你喜欢

外设鱼缸蓝牙
蓝牙音箱的直线之美
鱼缸里的杀手
鱼缸水
家里的小鱼缸
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
紧急:蓝牙指尖陀螺自燃!安全隐患频出
冰立方鱼缸
Microchip推出具备双ADC外设的全新器件,扩展其低成本8位PIC®单片机产品线
外设天地行情