莫少凡,孔 平,李松杰,宋丽颖,李彩瑗,谢能刚
(1 安徽工业大学管理科学与工程学院,安徽 马鞍山 243032;2 武汉大学物理科学与技术学院,湖北 武汉 430072)
随着网络信息技术的高速发展,互联网及衍生的各类产品已融入生活、生产等多个领域。依托互联网,配合多种信息传感器的物联网技术[1-2]广泛应用于各行业,对促进经济发展和社会进步具有重要意义[3-6]。目前,国外很多国家开展将物联网技术融入养殖行业的尝试,致力研究出更高效的生产系统。例如,挪威提出鱼联网概念,将LoRa附加模块应用于海洋渔业中,验证了户外养殖实时监测的可行性[7],澳大利亚将无线传感器网络(Wireless Sensor Networks,WSN)[8-10]应用在畜牧业中,开发出一种易组建、成本低的自配置物联网络,形成“智慧农场”养殖模式[11-13]。国内学者也已开展将物联网和无线通信技术融入水产养殖领域的研究。如李慧等[14]基于物联网Android平台,利用ZigBee无线通信模块[15]构建链式多节点网络,实现对多节点水质数据远程监测。上述方案需在现场布置多个数据传输模块,设备之间存在频谱干扰会造成部分数据丢失,而系统辐射范围受节点距离、现场开阔程度等因素影响,致使监测范围有限。现有研究成果表明,在大规模水产养殖模式[16-17]中仍存在水质监测难度大、数据传输距离短、远程管理效果差等问题。
本研究开发了一种适用于水产养殖,带有水质监测的增氧机远程控制系统。该系统配备水质、气象传感器,通过设备内置微处理器采集数据,由4G通信装置实现数据实时传输。
系统主要由底层模块(传感器、数据传输设备、现场控制模块)、远程服务器、远程控制客户端等模块组成,系统控制电路和其他硬件设备集成安装于增氧机控制箱中,用户可依据实际应用场景调整安置位置。
系统外接220 V交流电源保证增氧机电机正常运转,外接电源在控制箱中经降压模块调理后为其他设备供电。底层数据采集主站选用内置MIPS架构MCU芯片的数据传输单元,该设备采用Modbus RTU通信协议主站轮询从站实时采集各项数据。
系统底层模块与服务器之间采用发布、订阅式通信,数据传输单元轮询各传感器节点后整合数据,通过采用MQTT协议搭建的通信通道上传数据至物联网平台,同时底层模块通过该通道接收由服务器下发的控制指令。系统中增氧机启停分为现场和远程两种控制模式,现场控制箱内配备显示屏实时显示气象、水质数据并配有手动开关可快速启停增氧机;远程控制基于阿里云物联网、微信开发者等平台共同开发,以微信小程序为应用载体,具备远程控制增氧机、监测气象、水质数据、溶氧阈值报警等功能,经设定两种控制模式不可同时工作,避免造成控制逻辑混乱。
系统框架如图1所示。
图1 系统架构图
数据采集模块实现对水质、气象、电路等数据的采集上报功能,采集周期设为1 min。系统中有瑞蒙德RMD-ISDT10-G溶氧、RMD-ISDC2M12 pH、YDPT-01环境监测变送器3种传感器,控制电路中接入正泰DDSU-666型智能电表,采集节点选择汉枫4G全网通DTU PG-46。
主站DTU内置多种通信协议[18],适用于多节点[19]数据采集系统,由内置SIM卡提供通信网络服务。DTU与从站设备之间采用RS 485[20]协议通信,各传感器修改站号后作为从站并联接入主站信号接口,根据传感器报文[21]格式,编写数据采集程序并烧录至主站MCU芯片。DTU集合数据采集、传输等功能,主站设备周期性采集传感器数据,整合后发送至远程服务器,改变了传统外置MCU芯片的数据采集形式,摆脱了水质监测设备布线烦琐,监测位置单一等困扰。
实际测试结果表明设备安装于户外时无线网络信号可达到91%,安装于室内时信号也可达到82%,数据传输迅速,且不受通信距离影响,满足水产养殖面积大、跨度长的通信需求。
系统远程服务器基于阿里云物联网平台及SQL数据库搭建,服务器内构建底层设备物理模型用于存储、展示数据,底层模块采用MQTT协议实时上传数据或接收控制指令,达到远程监控系统目的。服务器内采用Java Script语言编写数据解析程序,DTU周期性轮询从站设备采集数据并上传至服务器,经解析程序识别校验后,提取指定寄存器内数据解析并赋值到对应物理模型,同时存储于服务器SQL数据库内,完成一次平台数据更新。服务器端与用户微信客户端之间采用ROS(Robot Operating System,ROS)异步通信,微信应用程序作为订阅端通过Topic通道接收来自服务器下发的各项监测数据,用户可通过微信客户端访问服务器SQL数据库或发出远程控制指令,通信流程如图2所示。
图2 通信流程图
溶氧是水产养殖最重要的水质参数之一,其含量直接影响养殖经济效益[22]。水体中溶氧含量受气压、温度、湿度等因素影响[23],高密度水产养殖模式下,面对溶氧数值变化较大时,需及时响应,以减少经济损失,降低养殖损耗[24-25]。本系统以溶氧含量为报警触发条件,通过设置溶氧含量阈值并配备短信报警功能,达到精准监测、及时报警的监管目的。
系统服务器作为阈值报警信息发布端,用户的钉钉应用客户端为信息接收端,服务器内创建阈值报警规则并设置阈值上下限,服务器接收、解析底层数据后自动执行阈值报警程序,当溶氧含量突破阈值时,服务器向用户钉钉账户发送报警信息,提醒用户开启或关闭增氧机。阈值报警程序经测试,可全天候不间断监测溶氧变化并及时发送报警信息,符合实际养殖需求。
为便于用户开展养殖工作,现场控制箱内增加屏幕用于实时显示水质、气象数据并保留手动开关增氧机按钮,用户可在现场一键启动增氧机。现场显示部分选择支持数据主动解析和具有串口通信功能的淘晶驰X 5系列屏幕,根据需监测数据种类,在串口屏上位机软件中制作显示界面工程,设置屏幕为主动解析工作模式并与DTU匹配波特率。屏幕信号接收线经TTL转RS 485模块并联接入底层数据采集线路中,系统工作后屏幕通过转接模块接收传感器的反馈报文,根据各传感器报文格式,采用C语言编写屏幕主动解析程序并检验程序运行可靠性。
现场控制是增氧机启停的另一种控制模式,系统控制电路中安装模式切换按钮。用户按下后立即切断电路中与远程控制相关的继电器设备电源,致使远程控制指令在控制电路中无法响应,远程控制被迫失效,同时增氧机开始工作,系统切换为现场控制模式。按钮复位后增氧机停止运转,并立即恢复被切断电源的设备供电,系统重新切换为远程控制模式,实际测试表明,两种控制模式独立工作,互不影响。
微信小程序是由微信平台衍生出的一种应用服务,可适配Android、iOS、HarmonyOS等系统,程序具有普适性;相对于应用软件而言,该程序后期维护更便捷,可按需求快速推出线上新版本[26],在使用期间仅需支付流量费即可稳定运行,给予用户便利且高效的使用体验。系统以微信小程序为应用载体,客户端应用程序主要由UI渲染层和App Service逻辑层组成,渲染层使用Web View多线程渲染;逻辑层采用Js Core线程运行Java Script程序,处理逻辑运行、数据查询以及函数调用等用户请求。多界面应用程序则应用多个Web View线程,两线程之间通信由微信客户端进行中转,当系统产生的数据变化时,由逻辑层通知到渲染层触发页面数据更新,逻辑层主要负责处理用户在渲染层触发的事件,并及时给予事件响应。
基于微信开发者平台所设计开发,用于增氧机远程控制的应用程序控制逻辑如图3所示。
图3 客户端控制逻辑图
用户注册设备进入程序主界面后,微信客户端与远程服务器之间建立Topic订阅通信通道,服务器内将系统底层模块上传的数据解析完成后,下发至微信客户端完成数据更新任务;用户可以在微信端通过此通道访问服务器的SQL数据库查询环境、水质等数据。在微信客户端所下发增氧机控制指令经Topic通道上传至服务器,服务器端采用MQTT协议通信转发指令至现场控制箱,再由系统控制电路执行命令,同时将电机运行状态反馈至服务器作为电机运行状态的数据记录。
3.3.1 气象、水质数据监测
为解决传统水质送检程序烦琐,检测成本高等问题,本设计将养殖现场大气压、温度、湿度数据,水体溶氧、pH数值,系统电路中电压、电流数据整合为应用程序主界面,如图4所示,可达到随时随地监测水质、气象数据的目的。系统底层模块实时采集各项数据并由数据传输设备上传至物联网平台,经平台解析后下传至微信客户端,完成一次数据更新。系统周期性采集数据,微信客户端数据实时更新,以满足用户监测需求。经测试,微信客户端30 min内完成27次数据更新,测试结果达到设计标准。
图4 应用程序主界面
3.3.2 远程控制功能
用户在微信客户端所发出的增氧机控制指令,由手机无线网络负责远距离传输,服务器配合系统控制电路做出响应,共同完成控制任务。
系统控制电路中RS 485继电器设备的信号线并联接入数据传输单元的信号接口,客户端所下发的控制指令经服务器处理后下传至数据传输单元,RS 485继电器识别控制指令后,执行继电器断开或吸合指令,实现远程控制功能。系统中该继电器的工作状态以报文形式通过数据传输单元上传至服务器,经服务器识别解析后,作为监测电机运行状况的数据来源,并下传至微信客户端作为养殖管理数据参照。
3.3.3 历史数据查询
由于水质、气象数据受环境影响变化较大[27],对于养殖方式粗放、养殖布局不合理、养殖密度过大的传统养殖模式而言[28],依靠经验的养殖方式难以降低由环境变化而导致的经济损失[29],故保留过去时段所监测的各项数据,对积累养殖经验、排查养殖问题、实现科学养殖都具有重要意义。
本系统中用户在微信客户端可通过Topic订阅通道访问系统远程服务器的SQL数据库查看过去时段数据。应用程序经设计,将各项数据的监测时间设为横坐标,数值大小设为纵坐标生成折线图在客户端展示。在已测试试验组中选取8 h测试数据如图5所示,实际应用时可按照需求分时段调用不同种类数据,为用户提供灵活的数据查询服务。
图5 历史数据查询界面
本研究在安徽工业大学内布设采集节点进行实际测试,为验证设备远程控制可靠性,在测试阶段选择一台参数为220 V,额定功率1.5 kW的单相异步电动机接入系统用于远程启停测试,设备现场布置如图6所示。
图6 现场试验设备布置概况
于2022年9月20日至2022年9月29日在测试水域开展为期10 d,单次测试时长为8 h的水质监测试验。
测试阶段外接220 V交流电源为系统供电,按照传统水质监测模式[30-32],在待测水域中安置溶氧、pH传感器,水域上方布置环境监测变送器,设定DTU采集周期为1 min,选取一组采集数据如表1所示。
表1 气象、水质、电路测试数据
由表1可看出,在8 h内,设备可不间断获取溶氧、pH、温度、湿度、大气压等参数信息,其中pH测量精度达到0.02,溶氧控制精度在±0.4 mg/L,温度测量精度达到0.5℃,气压测量精度达到0.1 kPa,在测试时段内不受环境因素影响,监测结果稳定,体现了系统的强鲁棒性,符合水产养殖监测需求。
测试客户端数据更新速率和远程控制响应速度,设备通电工作后,当DTU上传数据至服务器,微信小程序内同步更新各项监测数据,点击远程启停电机按钮,记录数据更新时间和电机响应时间,等待下次数据更新后重复上述试验,截取连续10次启停测试结果如表2所示。
表2 远程控制测试结果
从表2可以看出,设备工作时持续更新电机运行状况,微信客户端下一次数据更新时间约为1.2 min,达到实时监测系统的目的;远程控制指令下发及时,设备响应延迟低于100 ms,完全达到了系统设计要求。
基于阿里云物联网、微信开发者等平台所设计的增氧机远程控制系统,在微信客户端实现远程控制、养殖环境监测、溶氧阈值报警等功能。选用DTU承担数据采集和传输任务,改变了传统自建通信组网的监测模式,不仅降低了监测系统布建难度,减少系统硬件成本;而且扩大了监测范围,可在待测水域任意位置布置节点,提高监测结果可信度。设备周期性轮询从站设备后打包数据上传,降低了设备和服务器数据处理量,当传感器数据丢包时会导致本次数据失效,需等待下一周期数据更新。