APP下载

基于LoRa无线通信的水产养殖水质监测系统设计

2022-05-07兵,余梅,乔

滨州学院学报 2022年2期
关键词:集中器串口终端

孔 兵,余 梅,乔 欣

(1.巢湖学院 电子工程学院;2.巢湖学院 化学与材料工程学院,安徽 合肥 238000)

我国水域辽阔,是水产养殖业的天然养殖场,水产养殖业在国民经济发展中具有举足轻重的作用[1-2]。由2020年国家统计局数据可知,我国水产品产量为6.545×107t[3],其中水产品养殖产量占79.68%,远远超过了自然捕捞的产量。

养殖水体安全与水产品的产量息息相关,若水域环境遭受污染则会威胁养殖业的质量安全,导致产量减少,所以需要实时有效地对水质情况进行检测,根据出现的水质问题,采取积极对策[4]。早期的水质监测是离线的,通过对测试点现场取样,再利用水质测定仪进行检测,不仅检测周期长、耗时耗力,而且不能对水质条件进行实时监测[5-6]。后来,由于互联网技术的飞速发展,基于无线传输网络的水质监测技术逐步完善起来。文献[7]基于紫蜂(ZigBee)技术设计了水质远程监测系统,利用终端节点组网技术监测养殖水的温度、pH值及其溶解氧数据。文献[8]基于ZigBee协议的水质监测系统,采用ZigBee技术将检测的数据上传到主机,利用Web界面或者手机APP展示实时检测数据。文献[9]基于ZigBee通信的水质监控系统,通过多参数的传感器,实现对数个区域监测的实时数据采集及图形化显示。文献[10]设计的水质监测系统结合了ZigBee技术和通用分组无线服务(General Packet Radio Service,GPRS)技术,利用ZigBee技术采集和汇总节点信息,并于节点汇集处通过GPRS上传数据,实现了低功耗多点远程实时监控。以文献[10]为基础,文献[11]融入了自适应高速数据的采样及网络拓扑的优化,从而加快了数据的传输。文献[12]基于GPRS移动通信的远程可控水质监测船,检测员可以实时获得水质检测数据以及船只所处位置,且监测范围广。上述研究涉及的水质监测系统是基于ZigBee或GPRS技术实现的。ZigBee技术虽有一定的优势,但该协议开发周期长、难度大且传输距离短。若未配备功放器及低噪声放大器,ZigBee 系统在空旷场地的传输距离不高于110 m;若增加功放器及低噪声放大器,ZigBee虽然能扩大传输距离,但功耗将显著提高。对于一些大规模养殖基地而言,必须通过增加传感器节点数目来解决覆盖率问题,成本将大幅度提高,不能满足实际应用的需求。GPRS虽然能用于较广区域的水质监测,但是功耗较大,成本高,须借助基站通信,造成了其使用局限性。

LoRa(Long Range Radio)技术是一种面向无线传感网络和应用控制的通信技术,集成了数字扩频、数字信号处理及前向纠错编码3种技术,具有功耗低、传输距离远、抗干扰性强等优点,可以在实现最远距离传输、最低功率消耗的同时尽可能地简化系统,达到降低成本的目的[13]。本文设计了一种基于LoRa的水质监测系统,以水温、浊度、pH值及溶解氧为水质特征参数,进行采集模块、无线传输自组网及云平台的软硬件设计,弥补了现有水质监测系统的不足,实现了大面积水产养殖水质监测的智慧化。

1 系统组网设计

1.1 无线组网设计

图1 菱形网络拓扑结构

组网构架由终端节点、网关、NS、应用服务器组成。根据水产养殖的水质要求,结合LoRa技术特点选用菱形组网方式,拓扑结构如图1所示。该方式可以利用最少节点数实现对监测水域的完全覆盖,又因为在其内部具有数条通信链路与终端节点连接,当个别集中器节点损坏时,不会对终端节点发送数据造成影响,方便系统的维护和管理,对终端节点出现的问题能够快速解决,增强了系统的稳定性及可靠性。

1.2 整体结构设计

系统整体结构由前端展示、云服务器、集中器节点、终端节点及数据采集组成,其中数据采集模块通过串口和 LoRa 通信终端节点传输数据,终端节点利用LoRa 射频技术与集中器节点无线连接。在通信设置范围内,终端节点分布于浮标上,彼此独立无干扰,并将数据采集模块采集的水质数据发送给集中器节点,集中器节点再将数据通过无线保真技术(WiFi)发送至云服务器,最后到达云平台展示。

2 系统硬件设计

2.1 系统硬件结构

系统硬件总体结构由数据采集端模块和LoRa无线节点模块(包括终端及集中器)组成,能够实现信号采集及无线通信,如图2所示。

图2 系统硬件结构

数据采集端模块主要由电源模块、信号采集模块、STM32F1单片机、串口通信模块及存储模块等组成,系统的主控芯片选用STM32F103C8T6,完成对水质数据上传及对该系统的下行控制;参考水产养殖水域环境对水质的要求[14],配置水温、溶解氧、pH值及浊度4个关键性能指标显示水域环境,相应传感器固定在浮标上,主要参数如表1所示。

表1 传感器性能参数

LoRa无线节点模块由Ai-Thinker Ra-01通信模块、STM32L151C8T6单片机、数据交互模块及天线模块等组成,其中通信模块基于SX1278 核心芯片[15]设计。数据交互模块由三部分构成:第一部分为通过MCU引出的RX(TX)管脚,能够串口通信于数据采集端;第二部分为与PC端连接的USB接口;第三部分为用来烧写程序的仿真接口电路。天线模块选用棒状天线(频率433 MHz),来提高无线通信的效率。系统的终端节点、集中器节点在相同信道内都选用125 kHz带宽的SX1278核心芯片,利用时分模式将数个终端节点通信于单独的集中器节点。

2.2 数据采集电路

数据采集电路主要包括光隔离模块及MAX485芯片,如图3所示。J1与传感器连接,利用MAX485转换信号,再通过光隔离模块传输至单片机。当停止采集后,单片机控制电源键断开电路,此时RXD、D/R及TXD都为高电平输出信号,信号线不存在漏电流,从而实现了零功耗待机。

2.3 驱动电路

图3 数据采集电路

选用CH340T作为USB数据通信驱动电路的主控芯片,能够达到USB转串口的目的,并与Windows系统的计算机端的串口应用程序兼容。外围电路由若干电容、1N4148以及12 MHz晶振等元件构成,其中在地和第5引脚间串联0.01 μF的去耦电容,VCC引脚一方面与供电电压连接,为电路提供5 V电压,另一方面又利用0.1 μF去耦电容和地相连。USB驱动电路如图4(a)所示。

LoRa驱动电路如图4(b)所示。电路通过SPI总线和STM32控制芯片相连,复位脚NRESET低电平有效,数据接口和单片机的I/O口连接,方便操作数据模式;ANT脚与50 Ω同轴天线相连。最后在集中器节点的微控制器内留存一个串口,用来连接WiFi模块,实现了云平台和集中器的无线连接。

3 系统软件设计

3.1 数据采集端程序设计

数据采集端程序设计主要包括系统初始化、数据采集及处理存储等部分[16],程序总体框架如图5所示。系统开启后,先执行系统初始化,然后通过定时函数,为系统采集数据设定时间标准,即系统程序每10 min循环一次,在10 min循环周期内,每隔1 min采集一次数据,并将数据临时保存于结构体数组中,待10次数据采集完成后,求其平均值并保存至SD卡内,最后利用串口通信传送到 LoRa无线通信模块。当数据处理结束时,系统将重新循环等待下一指令。

(a)USB驱动电路 (b) LoRa驱动电路

图5 数据采集模块框架图

针对系统中水温传感器、溶解氧传感器、pH值传感器及浊度传感器的输出量不同,分别进行程序设计。前3种传感器的输出信号为数字量,选用遵循ModBus-RTU 标准协议的RS485通信接口,程序模块包括485协议初始化、CRC数据校验、实时数据读取、接收、处理等。浊度传感器的输出信号模拟量,程序模块由A/D采集初始化、底层驱动、通道选择等组成。若同时选用上述两类传感器时,须设置设备地址。

3.2 串口通信程序设计

串口通信程序由两部分组成:一部分为数据采集模块和 LoRa 无线模块间的通信联系,数据采集端的微处理STM32利用串口(RX、TX)把数据传输至 LoRa 无线通信节点端的STM32L1单片机,以便相互间交换数据。另一部分为 LoRa 无线通信节点端利用CH340T芯片把TTL 信号变成 USB 信号,和PC端进行数据传输,利用串口助手能够对节点端输送数据。程序设计如图6所示,首先对串口参数初始化,编辑时钟使能、串口复位、配置端口模式、串口参数的初始化、初始化中断、配置及串口使能。利用USART_SR状态寄存器进行串口状态读取[17],同时USART_DR数据寄存器进行数据的发送和接收,通信结束,清除状态标志位和数据缓存区,终端节点收到数据后再利用回调函数处理数据。

3.3 LoRa自组网设计

可靠、稳定的 MAC层协议是无线通信组网能够通信成功的前提条件[18]。MAC协议具有3种划分形式:基于信道划分的时分、频分、码分协议;基于随机访问的ALOHA、CSMA/CD、CSMA/CA协议;基于轮讯访问的主节点轮询、工业ModBus通信协议。考虑到LoRa技术的节点通信特点及组网设计要求,选择时分复用形式,即每个终端节点在各自分配的时间片里通信,确保相同频段里,数个终端节点可以和集中器节点通信,以免不同终端节点的通信请求发生碰撞[19]。

图6 串口通信程序设计

本文设计的入网机制如图7所示,先编号终端节点,设置地址,再打开集中器节点接收模式,地址不同的终端节点遵循集中器节点的排序,停留一段时间再启动发送模式,从而实现了组网通信。

图7 入网机制

4 系统测试与分析

为了测试水质监测系统的稳定性、可靠性及数据采集的精确性,系统设计结束后,进行丢包率和水质特征参数测试。测试地点选择巢湖芦溪湿地公园附近水域(117.569N,31.570E),以 2021年10月2-3日上午9:00-12:00的实验为例,平均气温28 ℃,连日晴天。测试方法为固定集中器节点位置为起点,每间隔50 m测试一次,最远距离定于500 m。

丢包率测试之前,先进行无线通信参数配置:发射信号功率为20 dBm,发射频率为433 MHz,BW为250 kHz,CR为4/5,SF为10;终端节点每隔10 s发出1个有效字节至集中器节点,累计发出2000个数据包,其中有效数据为20字节。丢包率测试结果如表2所示。

表2 丢包率测试

当距离在300 m范围内时,丢包率为0%;在350 m时,丢包率为0.15%;当距离大于350 m后,丢包率随距离的增加而变大;当距离大于450 m时,丢包率随距离增加会加速增大,说明距离对丢包率的影响显著。

5 结论

针对水产养殖水域情况,设计了基于LoRa无线通信的水产养殖水质监测系统。在综合考虑通信成本、距离、功耗等要求下,配置了水质特征参数,搭建了数据采集电路、USB及LoRa驱动电路,并进行数据采集、串口通信及LoRa自组网的软件设计。通过测试可知,系统的稳定性和可靠性较好,可以实现水产养殖场大范围实时监测。随着数字孪生、高性能计算、GIS 时空数据分析等技术的发展,提高其在可视化效果、监测效率等方面的性能是下一步的研究内容。

猜你喜欢

集中器串口终端
浅谈AB PLC串口跟RFID传感器的通讯应用
X美术馆首届三年展:“终端〉_How Do We Begin?”
通信控制服务器(CCS)维护终端的设计与实现
谈低压集中器及表计在线故障快速排查方法
集中器常见死机原因分析及解决方法探究
多功能北斗船载终端的开发应用
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
三合一集中器作为台区线损考核表计的探讨
链表方式集中器抄表的设计