1. 引言
我国人口众多,我国的人均水资源只有2100立方米,仅为世界人均水平的28%,全国年平均缺水量500多亿立方米。除了缺水,水污染问题也比较突出,大量的生活废水和工业废水直接排入河流中,如果不及时采取相关措施,将会威胁到人们的健康和生态环境,目前我国的水质监测主要采用人员手工取水实验监测,劳动强度大,实时性差。难以对污水排放进行实时的监测和控制,造成下游水质污染,危害生态文明。针对上述问题,学者们提出了将无线通信与物联网技术应用于水质监测领域,实现水质的远程在线监测,目前水质监测主要采用ZigBee和GPRS技术 [1]。2019年张娜提出一种通过ZigBee无线传输技术,将水质参数传输到主机的设计 [2]。2020年顾涵提出了以CC2630为控制芯片,构建ZigBee组网,数据经GPRS网络传输到上位机的水质监测系统 [3]。2021年李秋慧等提出了基于GPRS DTU移动通信的远程水质监控船,将水质参数和位置实时传输给上位机,监测水域广,减少人力物力 [4]。ZigBee传输距离为10~100 m,无法满足大区域监测要求,若通过增加路由节点增加ZigBee通信距离,会增加设备的功耗,且实时性和可靠性都会降低。GPRS通信是按照流量计费,通讯成本高,设备功耗较大。
LoRa是基于频率较低的Sub-GHz以下频段开发的低功耗广域网通信技术,具有远距离、低功耗、低复杂度等特点,在空旷视距的最大传输距离可达15 km [5]。通过应用LoRa技术,可以解决目前水质监测数据传输覆盖半径不足、通信成本高以及功耗高等问题。本文提出了一种基于LoRa无线通信和多传感器融合技术的监测系统。系统通过多传感器对水质温度、PH值及(TDS)进行数据采集,网关轮询唤醒SX1278 LoRa模块,接收到LoRa模块发送的数据帧。网关通过4G网络向指定服务器端口发送数据帧,服务器将数据帧进行解码,根据终端节点ID将多传感器采集的数据存入对应的数据库中。Grafana实时监控本地数据库中终端采集数据,设定预报警度量标准,实现自动报警等功能。水质工作人员可进行水质数据查询与分析,以保证水治理的成效。
2. 水质监测系统总体设计
基于LoRa无线传输技术的水质监测系统主要由监测节点集群、服务器和监控端3部分组成。系统整体结构如图1所示。水质监测节点集群只要由水质采集终端和网关构成。水质采集终端主要包括水质温度、pH和TDS传感器和SX1278 LoRa模块,通过LoRa模块将传感器采集的数据定时发送到网关。网关是星型拓扑网络架构 [6] 的中心,将多个水质采集终端上传的数据打包发送给服务器。服务器主要负责对网关进行管理,处理网关上传的数据,将处理后的数据按照监测终端ID存入对应数据库中。用户通过本地电脑登录监控端,通过Grafana软件对水质数据进行实时监测,评估水质状态。对可能出现重大污染情况进行预警和应急评估。
3. 水质监测终端节点硬件设计
水质采集终端硬件如图2所示,采集终端节点由主控单元、传感器模块、LoRa射频模块和电源模块组成。其中微控制器采用STM32F103ZET6,其在1.8 V内核电源关闭的待机模式只有2.1 μA的电流,满足该系统低功耗的设计方案 [7]。整个采集终端的能量消耗主要取决于系统的工作周期,周期内完成传感器数据的采集,微控制器的处理和射频模块发送数据 [8]。硬件设计过程中主要对射频模块采取轮询唤醒的工作模式,节省采集终端的能量损耗。

Figure 2. Diagram of the terminal hardware structure diagram
图2. 采集终端硬件结构示意图
3.1. 微控制器模块
微控制器使用STM32F103ZET6,该芯片采用Cortex-M3内核,CPU最高速度达72 MHz。该产品系列具有16 KB~1 MB Flash、多种控制外设、USB全速接口和CAN [9]。其在1.8 V内核电源关闭的待机模式只有2.1 μA的电流,满足该系统低功耗的设计方案。利用芯片强大的存储和计算能力,设置PA6、PA7、PA8并发对水质传感器进行A/D采集,计算出水质PH值、温度和TDS值,将数据打包后通过串口发送至射频模块。
3.2. 传感器模块
传感器模块主要包括传感器和信号调理电路,在实际的应用过程中,根据传感器的使用环境、成本、可靠性和功耗等技术因素进行选型。本系统中目前主要接入温度、pH和TDS三种传感器。
本系统选用美信公司的DS18B20热电阻温度传感器,具有体积小,精度高和硬件开销小的特点,系统中选用不锈钢封装的防水性对水体温度进行测量。
pH传感器采用上海雷磁公司的E-201-C型PH复合电极,PH检测范围为0~14,测量精度高且稳定性强。复合电极是将PH指示电极和参比电极组合在一起,通过电极电动势随氢离子活跃度变化而发生变化偏移来输出毫伏(mV)级的电压信号,选用精密双路运算放大器TLC4502芯片,将PH电极毫伏级电压放大3倍,转化为0~3.3 V输出电压,以达到微控制器A/D采集的电压。
系统选用MW-TDS110在线式水质TDS检测传感器,可用于检测水中总溶解性固体(TDS)的含量,以判断水的洁净或污染程度。TDS的测量单位为mg/L,它表示1 L水中溶解有多少mg溶解性固体,TDS值越高,表示水中含有的溶解物越多。
三种水质传感器选型及详细参数见表1所示。
3.3. LoRa模块
LoRa模块电路原理图如图3所示,通信模块芯片选取Semtech公司开发的SX1278射频芯片,SX1278采用LoRa®长距离调制解调器,可提供超长距离扩频通信和高抗干扰能力,同时最大限度地降低电流消耗。SX1278实现了超过−148 dBm的高灵敏度,发射功率最大可达+20 dBm。在同等的发射功率下低频的传输距离更远,覆盖范围更大,可以弥补WiFi、蓝牙、ZigBee等低功耗局域网技术的不足。与微在使用LoRa模块时,可利用AT指令配置LoRa模块的基本参数,设置其工作频率为470 MHz,微控制器通过UART接口与LoRa模块进行数据传输。

Figure 3. Schematic diagram of the LoRa module
图3. LoRa模块原理图
3.4. 电源模块
考虑到水质采集终端工作在室外环境下,电源模块采用YISENNENG公司的44,800 mAh的磷酸铁锂电池供电。该电池有24 V、12 V、5 V三种输出电压,将锂电池电压通过LT1129-3.3降压电路转换为3.3 V,为处理器模块和无线通信模块供电。电源模块电路如图4所示。
4. 系统软件设计
系统软件设计包括水质采集终端软件、LoRa传输层软件和服务器应用层软件设计。
4.1. 水质采集终端软件设计
采集终端启动后完成系统外设初始化预检,之后整个系统进入到低功耗休眠模式,内核时钟停止,处理器内核自身,存储器系统,有关控制器及内部总线停止工作 [10],这些器件的动态功耗会降低,只要出现任何使能的中断,CPU内核就会从睡眠模式中唤醒。设置PA0管脚上升沿信号触发外部中断。当PA0管脚接收到LoRa模块AUX引脚拉低5 ms后拉高的上升沿信号,触发MCU的外部中断,采集终端重新启动完成数据的采集和发送,然后再次进入休眠模式,等待AUX引脚上升沿信号再次触发中断。
4.2. LoRa传输层软件设计
LoRa模块将采集终端采集的数据发送到网关,网关通过TCP/IP协议将数据帧发送到服务器固定端口,服务器对收到的数据进行解析,数据帧中要包括网关和采集终端信息帧和水质数据帧。采集终端与网关数据帧格式如表2所示。网关上传至服务器数据帧如表3所示。

Table 2. Data frame formats of terminal and getaway
表2. 采集终端与网关数据帧格式

Table 3. Data format of Gateway-to-server
表3. 网关与服务器通信数据格式
网关启动后进入初始化,通过TCP/IP协议与服务器建立连接。连接建立后,设置网关的工作模式为轮询唤醒模式,在此模式下设置10条唤醒数据,网关向LoRa模块节点周期性的发送唤醒数据,当一条数据轮询完所有节点后会更换第二条轮询数据,等到下一个轮询周期再次重复轮询终端节点。唤醒周期为55 S,轮询超时时间设置为5 S,轮询间隔为30 min。网关与LoRa模块连接成功后,网关以1 min为周期,发送唤醒数据至LoRa模块,轮询唤醒各个采集终端多通道并行采集和上传水质数据。网关收集数据后,将整个数据帧重新打包上传至服务器固定端口号。网关以40 min为周期,发送唤醒数据到LoRa模块,轮询唤醒每个水质采集终端10次。轮询结束后,水质采集终端进入休眠状态30 min,等待网关再次唤醒水质采集终端。网关工作流程如图5所示。
4.3. 服务器应用层软件设计
本系统中基于实际的应用场景,在服务器一键部署SpringBoot后台程序,安装数据库软件MySQL和监控软件Grafana。服务器程序主要用于后台程序自处理,包括Socket网络通信、MyBatis与数据库MySQL的连接、端口上传数据的处理与存储、前端界面的加载等。服务器负责将各终端采集的数据存到各自对应的数据库中,用户可以通过Grafana实时监测终端水质参数变化情况,也可以对关键参数设置判断条件,当水质变化超出阈值条件,触发邮箱或短信报警,工作人员及时做出应对。
服务器与网关建立连接后,实时接收网关上传的数据,同时完成数据包的解析,首先判断数据帧长度是否大于18个字节,若小于18个字节,判断为网关上传的测试数据帧,丢弃当前数据帧。根据数据帧格式,验证数据帧的有效性,命令字字段可明确节点是否处于正常工作状态,如处在非正常工作状态,丢弃当前数据帧。当数据帧完整且有效时,开始解析数据帧,根据上传数据帧中节点的ID确定相对应的数据库,再将时间和水质的参数存入相对应的数据库中。网关上传数据包处理流程如图6所示。
5. 实验结果与分析
5.1. 室内多节点测试
在室内搭建简易实验平台如图7所示,实现1号节点Liquid水质监测,通过串口调试助手模拟2号节点Liquid水质监测。当整个系统建立连接后,网关通过WiFi将数据传输到服务器的指定端口,应用层程序将2个节点水质参数分别存入相应的数据库。然后在Grafana中观察到水质参数各项指标的变化曲线。

Figure 7. Indoor experimental platform for water quality monitoring
图7. 水质监测室内实验平台
Grafana中具体1号节点监控效果如图8所示。

Figure 8. Water quality parameters of node 1
图8. 1号节点的水质参数
当系统中出现监控规则之外的数据时,Grafana会向指定邮箱发送报警信息,提醒用户节点水质发生异常,如图9所示。
5.2. 室外远距离通信测试
测试环境如图10所示,将水质监测终端节点放置在室外测试环境中,节点距离网关2.5 km,终端将将水质参数发送到网关,网关通过4G将数据发送到阿里云服务器,水质采集终端在周期内完成数据的采集和上传后,进入30 min的休眠状态节省能源,等待网关唤醒LoRa模块继续完成周期性任务,在云端上通过监测软件Grafana可以清楚的看到水质的变化,如图11所示。
6. 总结
本文将低功率广域网LoRa技术应用在远程水质监测系统中,结合多传感器技术、计算机技术和通信技术,实现了智能、实时、在线水质监测。通过多传感器对水质中温度、pH、TDS等参数进行周期性、准确、快速的采集,将采集到的数据通过水质终端LoRa模块并上传给远端网关,网关利用TCP/IP通信协议和服务器进行数据通信,建立了数据库进行数据管理与分析。不仅为环保部门提供合理的水质监测方案,而且实现了无线智能化和网络化的需求。
NOTES
*通讯作者。