李昕聪,余紫扬,刘 璞,张烈山
(浙江理工大学机械与自动控制学院,浙江杭州 310018)
水产养殖业是渔业的重要组成部分,2020年全国水产养殖总产量5 224.2万t,同比增长2.86%[1]。然而,由于水产养殖行业的水质检测技术不成熟、运营维护成本高,所以覆盖率较低,水质问题发现不及时,水产产量与质量难以得到保证[2-5]。为改善水产养殖水质污染问题,运用信息化技术进行养殖水质污染监测逐渐成为水产养殖业发展主流[6-9]。
水体的温度、浊度、硝酸盐含量、氨氮含量、溶氧和pH等是影响水产养殖的关键[10-11]。目前国内普遍的水产养殖水域水质检测方法大多利用多个固定水质检测点或者浮标构建监测网络,或者依靠人力携带各种检测设备进行现场测量[12-14]。针对这一现象,国内外许多专家学者都展开了研究,并提出了各自的解决方案。李鑫星等[15]提出一种基于ZigBee的无线水质监测系统,定时收集观测点的水质数据。张琴等[16]基于LoRa设计了一种低功耗水产养殖水质监控系统,在覆盖范围和功耗上优势明显。谢辰旻等[17]基于Arduino设计了一种水下航行器,配合多传感器实现水质监测与水质改善,但仍处于试验阶段。目前大部分的解决方案都各具特点,但都或多或少存在组网复杂、成本较高、维护复杂等问题,无法大规模部署。更重要的是,只提供水质的纸面参数,缺乏对水质参数的分析以及养殖反馈,无法很好地将反馈数据快速转变成实际利益。
无人水质测量船成本低廉,且检测覆盖的面积广,基本可以实现对水域的全天候大面积检测,适合大规模部署。NB-IoT技术(Narrow Band -Internet of things,窄带物联网)不仅覆盖范围大、占用带宽低、运行功耗低,且可以接入蜂窝网络,极大地简化了网络结构,在各方面都更适合养殖鱼塘的云端监控[18-21]。
本研究提出了一种基于NB-IoT与无人船巡检技术的水质检测与调节物联系统。在云端实时监控水域水质的同时,还可以获得由专家系统根据当前水质参数提出的养殖建议,进而云端控制水质调节节点对水质进行调整。本系统在监控水质的同时为养殖户提供更加科学的养殖管理方案,为水产的增产、增质提供了一种可行的解决办法。
水质检测与调节物联系统的总体方案如图1所示,可分成云平台、水质监控节点以及水质调节节点3大部分。
图1 水质检测与调节物联系统总体方案
云平台包含了OneNET开放云平台以及专家系统,其主要功能为接收节点信息、推理养殖建议以及下发控制指令;水质监控节点为搭载了各式传感器以及视觉模块的自主巡航无人船,其通过NB-IoT与云平台进行通信;水质调节节点则包括水泵、增氧机、投料机等渔业养殖相关设备,可以根据控制指令进行水质的调节。
整个水质检测与调节物联系统工作原理如图2所示。用户使用Web应用通过OneNET云平台给无人船发送指定水域的检测点坐标,无人船会根据收到的坐标点进行自动路径规划并开始无人巡航。在此期间,无人船搭载的视觉模块和多个传感器会收集各检测点的水质参数并判断是否存在漂浮的死鱼,数据打包后通过NB-IoT模块发送到云平台,继而实时呈现在用户的Web应用界面。当无人船结束巡航时,所有的信息汇总后会在云端通过专家系统给出水质决策,并呈现在用户的Web应用界面。最终用户可以根据专家系统提供的决策和实际情况,通过云端控制增氧机、投料机以及水泵等设备的开启或关闭,以调节水质。
图2 工作原理示意图
至此,用户通过该水质检测与调节系统,实现了对整个养殖水域的水质参数实时监控,获得了专家系统提供的养殖建议,并可以实时控制调节设备来调节水质。
1.3.1 无人船移动检测节点
无人船作为养殖场水质参数检测与调节物联网系统移动节点的承载平台,其实物图和内部结构示意图分别如图3和图4所示。
图3 无人船实物图
图4 无人船内部结构示意图
无人船上搭载了pH传感器、浊度传感器、亚硝酸盐传感器、溶氧传感器以及氨氮传感器,可以实现对水域水质的多参数检测。
K210视觉模块可以对采集的图像信息与导入的训练模板比对,做出死鱼检测判断。微控制器模块由双MCU组成,负责系统的运算与各模块的控制。超声波模块采用HC-SR04超声波测距模块传感器,实现对船体前方障碍物的规避。
无线通信方面,采用了核心为M5310-A芯片的NB-IoT无线通信模块,负责与云平台通信。
组合导航模块采用BD-GPS定位模块、数字罗盘以及IMU实现组合导航获取姿态、航向与位置信息。动力驱动模块采用双H桥电机驱动两路电机并由大容量锂电池配合太阳能电池板进行提供续航能力。电源管理模块采用LSP电量模块获取锂电池电量情况并利用太阳能发电板辅助提高无人船的巡航能力。
1.3.2 固定水质调节节点
固定水质调节节点的工作原理如图5所示,使用NB-IoT模块、MCU、电磁继电器和交流接触器与水质调节装置相连(换水泵、增氧机、投料机等)。
图5 水质调节节点原理框图(以溶氧调节为例)
当观察到从云平台收集到的水质数据超标,用户可点击手机App端控制按钮发送命令请求,OneNET云平台端接收到请求后,通过NB-IoT网络将控制指令传送给固定水质调节节点的控制电路模块。节点控制电路模块将接收到的指令通过串口通信的方式发送至MCU。MCU根据指令要求,接通光电隔离继电器,利用继电器控制水质调节设备电源的通断,实现固定水质调节节点的启停控制,最终完成对水质的调节。
1.4.1 无线通信程序
无线通信程序设计的总体思路如图6所示。
图6 无线通信程序流程图
首先对相关设备硬件完成初始化,当检测设备都在线且网络状态良好时,即可通过NB-IoT模块通讯上云,创建设备实体和资源订阅,从而进一步实现无人船的各项基本功能。
1.4.2 组合导航
组合导航程序的流程图如图7所示,主要由坐标转换子程序、路径规划子程序、航向角更新子程序与航向控制子程序组成。
图7 组合导航程序流程图
主程序首先将相关外设接口与寄存器进行初始化配置,然后将获取所得经纬度坐标进行高斯坐标转换。转换完后通过设置标志位判断当前是否处于出发点,如果处于出发点需要首先通过贪心算法选取初始目标点,否则需要判断当前位置是否处于目标点范围之内。如果当前处于目标点范围之内,需要通过贪心算法选取新的目标点,否则继续计算当前位置与目标位置间的期望航向角,然后比较期望航向角与经过磁偏角自校正后的当前无人船航向角,如果航向角差在误差范围之内,则保持当前航向继续直行,否则调用PID控制子程序调节PWM输出的运动状态,对无人船的航向进行纠正直至保持在误差范围之内后继续直行。
1.4.3 死鱼异物检测
针对水产养殖行业中常见的漂浮死鱼,通过前期对大量的养殖水域水面漂浮死鱼相关图片学习训练,系统地整理相关数据集。采用CNN网络搭载数据集训练模型,通过颜色增强、增加随机角度等图像增强相关策略提高模型精度[22-23]。
实际运行时,摄像头采集图像信息传入K210芯片内部的KPU组件运行模型。K210芯片内的KPU将图像处理的结果代入区域层通过进行比对,判断相机拍摄范围内是否存在死鱼。当识别到水面上存在漂浮死鱼时,通过控制K210微控制器上的IO口信号输出与船载STM32微控制器实现通信,并上传云端。死鱼异物检测算法如图8所示。
图8 死鱼异物检测算法流程图
1.4.4 专家系统
实现感知数据到OneNET云服务器的传输后,云端可获得养殖场的水质数据。在此基础上,专家系统通过对云端数据进行水质分析与养殖方案的智能推荐,将传统的根据人工经验进行管理转变为依靠专家系统的智能推荐,从而实现现代化鱼塘养殖管理方式的转型升级,对养殖场水质进行准确合理的判断和科学决策。
专家系统整体结构图如图9所示。
图9 专家系统整体结构图
本系统将专家知识通过数学建模形成数值化体系,构建的知识库包含事实库和规则库两部分,其中事实库包含生产要素信息表,规则库包含生产要素对应规则表、鱼类最优水质指标表;推理机部分通过构筑Rete网络,采用正向推理规则中的Rete算法实现推理,通过模式匹配得到推荐方案,最终通过Web应用向用户推送当前水质分析情况以及水质调节方案。
基于OneNET平台开发的水质检测调节系统用户主界面如图10所示,包含了水质指标实时数据、实时地图定位、控制选项、池塘养殖建议等信息,直观展示了当前无人船的工作状态以及实时的水质参数。
图10 用户系统主界面
基于OneNET云平台开发Web应用程序,嵌入高德地图,其用户界面如图11所示。用户点击地图获取水质检测目标点经纬度并利用NB-IoT物联网下行通信将经纬度发送给无人船。
图11 云上定点界面
开启自主巡航模式后,无人船将自动进行路径规划并驶向航行目标点。在抵达目标点后,无人船会悬停并采集水质数据发送至云平台,完毕后驶向下一目标点直至目标点遍历完成。
云上遥控的界面如图12所示,通过与底层节点的双向通信,实现在云端对无人船移动水质检测节点航行方向和水质调节设备的启停进行控制。
图12 云上遥控方案
利用NB-IoT技术实现水质参数远距离透传和上云,实现云上感知的功能,云平台数据显示界面如图13所示。
图13 云上感知界面
根据导入的航行目标点,无人船自主巡航驶向目标点。抵达目标点后悬停,测量水质,采集多组水质数据上传至云平台,作为该区域的水质平均指标。
云平台在接收整合完整的水域水质数据之后,由专家系统根据数据给出科学的决策,并在Web界面滚动播报水质调控方案和养殖建议。云上施策可以在监控水质的基础上,为养殖户提供更加科学的养殖管理方案,尽可能地提高水产养殖质量。
为对本系统各项功能指标进行测试与验证,利用开发完成的系统对某地实际养殖鱼塘进行多目标点的水质参数巡检,提前用云上设点功能设置检测点,无人船根据给定的检测点进行自主巡航并测量多种水质参数并给出相应的反馈建议。功能验证主要包括4个部分:(1)无人船自主巡航功能;(2)多点水质参数动态测量功能;(3)水面漂浮死鱼识别功能;(4)水质数据分析反馈功能。
3.2.1 无人船自主巡航功能
表1为无人船自主巡航中,通过组合导航技术实际到达的目标点悬停的位置与预设目标点位置以及它们之间的偏差,并在图14中直观地呈现了预设目标点与实际悬停位置的偏差。其中无人船悬停位置为悬停稳定后10次读取BD-GPS取平均值后得到的数据。从表1可以看出,在无人船遍历9个预设目标点的过程中,最小偏差为0.96 m,最大偏差为2.42 m。
表1 自主巡航试验数据
图14 自主巡航偏差
目前国内一些无人船研究,如刘星桥等[24]研制的基于GPS和GPRS自学习游弋式远程监测系统,其实际导航位置与设定位置之间的误差小于2 m。虽然本系统该参数误差较之偏大,但是其导航运算量大,不利于长久续航。并且在实际应用中,由于水质不会在小范围内发生突变,因此该定位精度基本满足了无人船在养殖场中的巡航要求。
3.2.2 多点水质参数动态测量功能
表2为无人船在水域中采集到的pH、溶氧含量、亚硝酸盐含量、氨氮含量和温度等影响水产养殖质量的关键水质参数,验证了搭载了多种传感器的无人船可以高效实时地完成检测点水质的测量。测量结果与第三方检测机构的对该鱼塘的水样送检结果基本吻合,证明了本研究所述系统水质检测的可靠性。
表2 试验水质测试数据
3.2.3 水面漂浮死鱼识别功能
如图15为船载相机拍摄漂浮死鱼的识别结果。对超过2100张实际水面漂浮死鱼的图像特征提取与学习,目前船载K210模块死鱼识别的成功率已经可达80%以上,可以满足实际的识别要求。国内如马来宾等[25]通过搭载相机实现对水质的远程监控,但无法对水面信息进行直接提取判断;江先亮等[26]利用船载双摄像头用于对巡航障碍物的判断,辅助无人船的自主航行。
图15 死鱼识别结果
3.2.4 水质数据分析反馈功能
如图16为某次无人船巡航结束后手机APP的显示控制界面。
图16 手机APP界面
从图16中可以看出在终端给出了当前水产养殖场的相关养殖水质参数(以鳜鱼为例),并对应于给出了不同指标的评价(正常、偏高、偏低),用户可以切换至自己所养殖的鱼类,查看对应的分析结果。手机APP终端提供了水质调节节点的控制按钮,方便及时调节水质。同时增加了无人船的控制按钮,可以临时控制无人船更改航向或者紧急情况下实现对无人船的回收快速回收。
根据不同的水质情况以及不同的鱼类,专家系统会推理给出相关养殖建议呈现在Web界面。表3整理了针对鳜鱼在不同水质指标下,专家系统给出的建议(部分)。从表3可以看出,结合多个水质参数指标,专家系统给出了相应的养殖建议,为养殖户合理调整水质提供了一个参考。而目前大多数水质监测系统大多是停留在水质数据的可视化[27-32],缺乏对信息的处理与分析,无法提供给养殖户直观有效地参考建议。
表3 专家系统养殖建议反馈
水质检测与调节物联系统利用无人船搭载多种水质传感器作为可移动的物联网感知节点,通过自主巡航和数据采集并利用NB-IoT技术将数据接入云平台,在云端利用专家系统进行数据分析和决策反馈。在实际应用中,本系统不仅解决了在人工抽检和浮标组网监测中出现的效率低下、成本高、检测范围小等问题,而且通过水质数据的科学分析与反馈更是减小了误判的可能性,助力水产品增产提质。
□