Software Engineering and Applications
Vol. 11  No. 01 ( 2022 ), Article ID: 48591 , 10 pages
10.12677/SEA.2022.111013

基于LoRa的水质监测系统设计

吴章浩,孙玉国*

上海理工大学,光电信息与计算机工程学院,上海

收稿日期:2021年12月21日;录用日期:2022年2月3日;发布日期:2022年2月10日

摘要

本文提出一种基于低功耗广域网LoRa无线网络技术的物联网水质监测系统。以STM32F103ZET6作为水质采集终端的主控制器,SX1278芯片作为通信模块,构建星型拓扑网络架构,实现了多节点水体温度、pH值与总溶解固体量(TDS)等水质参数的远程采集。LoRa网关通过TCP/IP协议将水质数据传输到服务器的MySQL数据库,采用Grafana实时监测数据库各节点水质参数。

关键词

水质监测,LoRa,IoT

Design of Water Quality Monitoring System Based on LoRa

Zhanghao Wu, Yuguo Sun*

School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology, Shanghai

Received: Dec. 21st, 2021; accepted: Feb. 3rd, 2022; published: Feb. 10th, 2022

ABSTRACT

In this paper, an IoT water quality monitoring system based on low-power WIDE LoRa wireless network technology is proposed. The STM32F103ZET6 as the main controller of the water quality collection terminal and the SX1278 chip as the communication module, the star topology network architecture is constructed, which realizes the remote collection of water quality parameters such as multi-node water temperature, pH value and total dissolved solids (TDS). The LoRa gateway transmits water quality data to the server’s MySQL database through TCP/IP protocol. The system uses Grafana to monitor the water quality parameters of each node in the database in real time.

Keywords:Water Quality Monitoring, LoRa, IoT

Copyright © 2022 by author(s) and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).

http://creativecommons.org/licenses/by/4.0/

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软件对水质数据进行实时监测,评估水质状态。对可能出现重大污染情况进行预警和应急评估。

Figure 1. Overall system architecture

图1. 系统整体架构

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所示。

Table 1. Terminal sensors

表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所示。

Figure 4. Buck circuit

图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所示。

Figure 5. Gateway workflows

图5. 网关工作流程

4.3. 服务器应用层软件设计

本系统中基于实际的应用场景,在服务器一键部署SpringBoot后台程序,安装数据库软件MySQL和监控软件Grafana。服务器程序主要用于后台程序自处理,包括Socket网络通信、MyBatis与数据库MySQL的连接、端口上传数据的处理与存储、前端界面的加载等。服务器负责将各终端采集的数据存到各自对应的数据库中,用户可以通过Grafana实时监测终端水质参数变化情况,也可以对关键参数设置判断条件,当水质变化超出阈值条件,触发邮箱或短信报警,工作人员及时做出应对。

服务器与网关建立连接后,实时接收网关上传的数据,同时完成数据包的解析,首先判断数据帧长度是否大于18个字节,若小于18个字节,判断为网关上传的测试数据帧,丢弃当前数据帧。根据数据帧格式,验证数据帧的有效性,命令字字段可明确节点是否处于正常工作状态,如处在非正常工作状态,丢弃当前数据帧。当数据帧完整且有效时,开始解析数据帧,根据上传数据帧中节点的ID确定相对应的数据库,再将时间和水质的参数存入相对应的数据库中。网关上传数据包处理流程如图6所示。

Figure 6. Server data processing

图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所示。

Figure 9. Function of email alarm

图9. 邮件报警功能

5.2. 室外远距离通信测试

测试环境如图10所示,将水质监测终端节点放置在室外测试环境中,节点距离网关2.5 km,终端将将水质参数发送到网关,网关通过4G将数据发送到阿里云服务器,水质采集终端在周期内完成数据的采集和上传后,进入30 min的休眠状态节省能源,等待网关唤醒LoRa模块继续完成周期性任务,在云端上通过监测软件Grafana可以清楚的看到水质的变化,如图11所示。

Figure 10. Outdoor pool experiments

图10. 室外水池实验

Figure 11. Water quality parameters

图11. 水质参数变化

6. 总结

本文将低功率广域网LoRa技术应用在远程水质监测系统中,结合多传感器技术、计算机技术和通信技术,实现了智能、实时、在线水质监测。通过多传感器对水质中温度、pH、TDS等参数进行周期性、准确、快速的采集,将采集到的数据通过水质终端LoRa模块并上传给远端网关,网关利用TCP/IP通信协议和服务器进行数据通信,建立了数据库进行数据管理与分析。不仅为环保部门提供合理的水质监测方案,而且实现了无线智能化和网络化的需求。

文章引用

吴章浩,孙玉国. 基于LoRa的水质监测系统设计
Design of Water Quality Monitoring System Based on LoRa[J]. 软件工程与应用, 2022, 11(01): 109-118. https://doi.org/10.12677/SEA.2022.111013

参考文献

  1. 1. Jiao, D.L. and Luo, X. (2018) Water Quality Monitoring System Based on LoRa. International Conference on Information, Electronic and Communication Engineering (IECE2018), Beijing, 28-29 October 2018, 52-57.

  2. 2. 张娜, 杨永辉. 基于物联网的水质监测系统设计与实现[J]. 现代电子技术, 2019, 42(24): 38-41+45.

  3. 3. 顾涵, 潘启勇, 张惠国, 夏金威. 一种基于CC2630水质监测系统的设计与实现[J]. 实验室研究与探索, 2020, 39(10): 68-72+82.

  4. 4. 李秋慧, 李洁, 王传敏, 孙洋. 基于GPRS DTU的远程可控水质监测船[J]. 电子技术与软件工程, 2021(5): 94-96.

  5. 5. 胡颖, 徐轶群. 基于窄带物联网通信的海洋水质监测系统设计[J]. 广州航海学院学报, 2021, 29(2): 14-19.

  6. 6. 赵静, 苏光添. LoRa无线网络技术分析[J]. 移动通信, 2016, 40(21): 50-57.

  7. 7. 周斌. 基于物联网技术的水质监测系统设计与实现[J]. 智能城市, 2021, 7(20): 7-8.

  8. 8. 唐博, 李密生, 李警波, 吴菲. 基于多传感器的牙鲆鱼养殖远程水质监测系统[J]. 河北渔业, 2020(7): 38-40+62.

  9. 9. 陈玥, 王海峰, 贾建鑫, 康凯. 基于海量异构传感器的物联网水质监测系统[J]. 计算机应用与软件, 2020, 37(5): 1-8+37.

  10. 10. 郑浩. LoRa技术在低功耗广域网络中的实现和应用[J]. 信息通信技术, 2017, 11(1): 19-26.

  11. NOTES

    *通讯作者。

期刊菜单