海 涛, 陈 娟, 韦 文, 李娜娜, 曾泽明
(1.广西大学 电气工程学院,广西 南宁 530004;2.广西中烟工业有限责任公司,广西 南宁 530001)
2019年,中国水产养殖产量占全球水产养殖产量的60%以上,人工养殖淡水产品产量达3 013.59×104t,是名副其实的水产养殖大国[1]。随着水产养殖业的迅猛发展,水质作为水产养殖的根本条件受到越来越多的重视。水质的某些参数如pH值、温度、溶氧量等对水生动物的生存有着至关重要的影响,因而对水质参数进行实时监测有助于进一步促进水产养殖业的发展[1-2]。
国内外已有学者对水质参数的监测进行了研究。文献[3]应用紫蜂协议(ZigBee)和无线连接(wireless-fidelity,WiFi)技术设计出水产养殖系统,实现了水质信息的无线传输。文献[4]将窄带物联网(narrow band internet of things,NB-IoT)技术应用于养殖塘的水质监测,实现了对养殖塘的集中管理。文献[5]利用长距离无线通信(long range radio,LoRa)技术多数据率特点,设计了长距离低功耗的无线传感网络系统,实现监测网络大面积覆盖。但是,ZigBee的通信距离较短,需要依赖路由节点才能达到大面积网络覆盖,存在通信延时等问题[6-7]。NB-IoT可通过协议直接上传云平台,通信距离较长且通信实时性好,但是费用较高。LoRa通信距离长、稳定,功耗价格低于NB-IoT,但是需要自建基站或者转网关才能上传云平台,否则只能在局域网无线传输[8-10]。
综上可知,单一物联网技术有一定的局限性,本文结合LoRa技术和NB-IoT技术的优点,设计了水产养殖水质监控系统,以微控制单元(micro control unit,MCU)作为系统环境参数采集核心,通过LoRa和NB-IoT物联网技术完成数据上传云平台、指令下达至电气设备。该系统能掌控养殖塘水质参数的实时变化并将水质参数调节在合适范围内,具有一定的实际意义。
本文所设计的水产养殖水质监测系统整体结构图如图1所示,主要分为感知层、网络层和应用层3个部分。
图1 水产养殖水质监测系统整体结构图
感知层是水产养殖水质监控系统的最底层,主要包含传感器水质参数采集、MCU控制中心、LoRa采集节点、电源模块、窄带(narrow band,NB)模块。MCU控制中心负责水产养殖塘的数据采集和执行器的开启,pH值传感器、温度传感器、水位传感器和溶氧量传感器分别采集养殖塘中水的pH值、温度、水位高度和溶解氧含量等数据,通过LoRa组成的局域网传输给NB模块,连接到传输层。感知层在无线通信方面应用了LoRa和NB-IoT两种物联网通信技术,能够实现大规模应用。NB-IoT组网方便,传输距离长;LoRa在郊区等偏远的地方传输距离较远,成本较低,但是组网不便[11]。因此,在较偏远的养殖塘终端节点使用LoRa技术,可降低成本、扩大通信距离;在采集中心节点使用NB-IoT组网方便,可保证系统的稳定性,提高了性价比[12-13]。
网络层主要包括核心网、通信基站和云平台。感知层将采集到的数据通过核心网传输到就近的通信基站,再将数据进行封装打包后传至云平台。核心网和通信基站起着传递数据的作用,云平台则将对数据进行存储和处理[14]。
应用层是用户和系统进行信息交互的渠道,对数据进行可视化展示和对底层执行器模块下发控制命令。水产养殖水质监控系统主要实现了远程监测、调控各养殖塘的水质参数,监测是由感知层上报数据到应用层,调控是由应用层下发命令到感知层[15]。
图2 水质监测系统末端采集节点原理框图
系统的硬件设计部分主要集中在感知层,包括电源模块、MCU控制单元、传感器、无线通信模块和外接电气设备,系统感知层中的末端采集节点原理框图如图2所示。
2.1.1 电源模块
系统供电部分中,采用太阳能光伏为主、蓄电池组为辅的供电模式。系统供电结构框图如图3所示。
图3 水质监测系统供电结构框图
本系统光伏电池带有最大功率点跟踪(maximum power point tracking,MPPT)控制器,具有最大功率点追踪功能,提高了光伏板的发电效率[16]。当光伏发电量还有富余时,同时给蓄电池组充电。当光伏发电不足时,蓄电池组自动为系统供电。系统工作电源是12 V直流电,使用专用芯片将12 V直流电转换成3.3 V,为MCU供电,220 V交流电为外部电气供电。
2.1.2 主控MCU与传感器模块
控制核心选用MSP430F149微功耗控制器,该控制器具有处理能力强、运算速度快、易开发、片内资源丰富等特点,满足控制要求。传感器模块主要采集养殖塘内水体温度、pH值、溶氧量(质量浓度)和氨氮含量(质量浓度)等水质参数,并将各参数传输给MCU,经通信模块上传至云平台数据库[17]。云平台对接收到的数据进行处理,当水质参数数值未在合适的范围内时,将会对应用层发出报警信号。传感器所采集到的数据是整个系统运行的基础,为保证系统精确地调控水质,所选用的传感器具体参数如表1所示。
表1 传感器具体参数
2.1.3 通信模块与电气设备
通信部分由LoRa模块和NB-IoT模块组成,末端采集节点通过LoRa扩频技术与采集主节点进行信息交互,NB-IoT模块将采集主节点的数据上传至云平台或接收云平台下发的指令。LoRa模块选用带有低功耗SX1278芯片的ATK-LORA-01无线串口模块,工作电压3.3~5.0 V,NB-IoT模块选择工业级单模NB-IoT模组M5310-A模块,内置用户识别模块(subscriber identity module,SIM)芯片,支持ONE-Net协议,工作电压3.1~4.2 V。插上中国移动物联网卡后,才能通过射频天线将采集到的数据发送到NB-IoT基站。
电气设备主要有增氧机、水泵和投饵机等,单片机通过控制继电器的开断来控制设备的开关。设备的控制有自动和手动两种运行模式,选择自动模式时,系统采用自适应控制方式,结合反向传播(back propagation,BP)神经网络预测算法对有延时的数据进行预测,根据预测所得数据进行补偿,进而实现自动控制设备调节水质参数。选择手动模式时,用户可通过One-NET云平台网页端或者手机端微信小程序对设备进行控制。系统控制的流程图如图4所示。
本文监控平台选用One-NET云平台进行浏览器/服务器(browser/server,BS)和微信小程序的二次开发,登录One-NET网站进入开发者中心,创建产品选择轻量级机对机(light weight machine to machine,LwM2M)设备接入协议,在设备管理中通过NB模块的国际移动设备识别码(international mobile equipment identity,IMEI)编号添加NB-IoT设备,可在设备的资源列表中添加各传感器对象并设置鉴权信息,详情可查看当前传感器所采集数据的历史记录,还可对传感器进行读或写操作。在触发器管理中添加触发器,当pH值、温度、溶氧量、氨氮质量浓度、水位等数据处于所设的报警临界点时,便会触发报警,用户可选择邮件或网页通告报警信息。本次试验设置了3个末端采集节点(记为1、2、3号养殖塘),进入设备的资源列表后,可以选择查看相应养殖塘的某一水质参数信息历史记录。
图4 系统控制流程图
系统对云平台进行了微信小程序二次开发,所开发的微信小程序能将数据完全移植到移动端,主要包括水质参数的基本信息、设备运行状态和历史数据查询等功能。在首页登录成功后,就可以使用上述功能。在基本信息界面,选择相应的养殖塘后,可以查看水质参数的具体数据,并设置所选养殖塘的水质参数的阈值范围。在设备运行状态界面,当处于自动控制状态时,电气控制状态开关将会被锁定,选择相应的养殖塘后,可以查看当前设备的状态,出现故障时将会给用户发送预警信息。
利用本系统在桂南某水产养殖基地进行试验,根据淡水养殖水质标准和养殖基地所养鱼种的养殖经验得出,最佳水质分别为pH值6.5~8.5、温度20~30 ℃、溶氧量5~8 mg/L、氨氮质量浓度0~2 mg/L、水位2.5~3.0 m。系统设置3个末端采集节点,分别放置于不同的养殖塘(记为1号、2号、3号)内,各养殖塘规格一致。为对系统进行稳定性分析,对其进行数据丢失率测试。一次完整的通信是从末端采集节点读取数据,经局域网传输到采集中心节点,再经过网络传输,到达云平台的过程[18]。设置水质参数每隔30 s向服务器上报一次,存储于数据库中。从数据库中读取2020年6月10日至2020年6月29日共20 d的数据进行测试。若数据未丢失,则每一测试的池塘应上报57 600条数据,实际数据丢失率如表2所示。
表2 数据丢失率
由表2可知:系统最大数据丢失率为1.9%,通信稳定性在98%以上,满足系统通信要求。
为验证系统运行时对水质环境参数调控的效果,使用高精度温度测试仪和奥克丹多参数水质分析仪测出人工管理养殖塘(记为4号)和1号养殖塘的温度、pH值、溶氧量和氨氮质量浓度等水质参数,从云端数据库中抽取出1号池塘的水质参数数据,将云端记录的1号养殖塘、测试仪测得的1号和4号养殖塘在2020年6月10日至2020年6月29日区间段每天下午17点的水质参数进行对比分析。
进行试验的同时,将该水产养殖基地的天气基本情况进行了记录,6月13日至6月18日、6月25日至6月27日这几天当地下雨程度中雨以上,其他时间段未下雨或短时间小雨。结合试验环境实际变化情况对试验结果进行分析,总体表现为雨天时水温降低、pH值降低、溶氧量升高、氨氮质量浓度降低,天气的变化对4号养殖塘水质参数的影响比较直接。以温度和溶氧量变化为例,试验部分数据对比如图5所示。
图5a为水温数据对比图。由图5a可知:1号养殖塘水温系统值波动范围为22.50~24.87 ℃,水温控制精度为±0.15 ℃,4号养殖塘水温测试值波动范围为21.15~25.59 ℃。当处于雨天时,各养殖塘水温有降低的趋势。图5b为溶氧量数据对比图。由图5b可知:1号养殖塘溶氧量系统值波动范围为6.65~7.31 mg/L,溶氧量控制精度为±0.11 mg/L,4号养殖塘溶氧量测试值波动范围为6.45~7.38 mg/L。当处于雨天时,各养殖塘溶氧量有升高趋势。整体上,1号养殖塘的系统值十分接近测试值,变化平稳且处于合适范围内,4号养殖塘的水质参数数值波动幅度大,1号与4号养殖塘参数变化走向大体一致。将1号养殖塘的系统数据与标准仪器测试值进行比较,系统所测部分水质参数的监测精度与误差值如表3所示。
表3 系统所测部分水质参数监测精度与误差值
本系统所允许的参数最大监测精度分别为:温度±0.2 ℃、pH值±0.2、溶氧量和氨氮质量浓度均为±0.2 mg/L,各参数最大平均误差为0.5%。将试验结果与标准值对比可知:本系统温度最大监测精度保持在±0.15 ℃,最大平均相对误差为0.48%,均符合系统要求。
本文设计了一种基于LoRa和NB-IoT物联网技术的养殖塘水质监控系统,系统局域网采用LoRa技术部署网络结构,便于扩增采集节点数。One-NET云平台通过NB模块的IMEI编号与其进行绑定,并添加鉴权信息与传感器相对应,确保了数据的准确性。通过试验验证,监控系统可对增氧机等设备下发命令,实现对设备的远程控制,通信过程中最大数据丢失率在2%以下,与人工管理的养殖塘相比,经系统调控的养殖塘受环境影响较小,所调控的水质参数平均相对误差在0.5%以下。整个试验过程中系统运行稳定、控制精度高、实时性好,提高了养殖塘管理效率,可为农业监控等领域提供参考。