面向水质监测的无人巡检器控制系统设计与开发*
2021-01-22马来宾马伟锋季曹婷
马来宾,马伟锋,楼 姣,季曹婷
(浙江科技学院 信息与电子工程学院,浙江 杭州 310023)
0 引言
目前我国地表水资源环境所处的形势不容乐观,一方面,人口对水资源的需求呈上升趋势[1];另一方面,我国地表水资源污染问题较为严峻[2]。因此,建立健全的水资源保护机制愈来愈成为社会发展亟须解决的问题,其中科学有效的水资源监测与调查手段是对水质污染治理的前提和基础。
在众多水质监测手段中,较为传统的是实验室检测法,该方法通过人工对预定点进行水样采集,然后在实验室通过化学分析法[3]、生物分析法[4]等方法进行详细的水质分析,最终生成水质报告。实验室检测法优点在于测定方法多样,分析结果精准且水质指标较为丰富,但是其具有测定周期较长、成本高、采集到的水样相对于水域不具备代表性等缺点。随着网络通信、计算机技术以及传感器应用等方面的发展,在线水质监测技术得到了越来越多的应用[5-6]。如张秀再[7]等人设计的河流水质实时监测系统,以MSP430F149单片机为核心,采用漂浮圈为载体搭载水质传感器,最终利用无线通信模块传输采集信息;郭鹏飞[8]等人设计的基于树莓派的远程水质监测系统以树莓派作为系统核心监听水质监测仪检测到的水质数据信息,再将水质数据信息通过GPRS模块发送到云端数据库。这些系统都极大地缩短了水质数据采集周期,达到了实时数据采集监控的要求,但是可测定水域范围有限,扩展性较差。刘星桥[9]等人设计的基于GPS的自学习导航游弋式水质监测系统以小型船体作为水质数据采集载体并搭配遥控器,设计了船体运动主控制器和遥控控制器,使用ZigBee网络和GPRS进行数据传输。其中ZigBee网络进行控制指令的传输,速度快、成本低,但是传输范围有限,通信稳定性受环境制约;GPRS网络进行水质数据以及地理信息数据传输。该系统可以实现远程控制、多点检测以及水质数据的在线访问等功能,但是其航行控制范围较小,只能在人工视野范围内工作。基于此,本文提出了一种基于4G的无人巡检器及控制系统,开发了手机移动应用,可利用远程视频观察当前水域作业场景,实时控制无人巡检器航行路线、水质监测点等。该系统能完成一定水域面积下的多点水质监测数据及地理位置的实时采集、传送、存储、查询,并且具有高扩展性,支持多台无人巡检器的在线作业。
1 控制系统体系结构
控制系统的体系结构如图1所示。
图1 系统体系结构图
本系统由无人巡检器、云端服务器、移动控制终端三部分组成。无人巡检器可以在目标水域环境下自由航行,采集当前作业水域的现场视频、水质数据、地理位置及航行状态信息等,并通过4G通信网络实时发送至云端服务器。云端服务器对接收到的业务数据进行实时存储,同时云端服务器也是无人巡检器与移动控制终端的连接器,对控制信息进行实时转发。移动控制终端配置了移动手机应用,可实时显示目标无人巡检器的水域作业视频、地理位置信息以及采集到的水质数据等,并可以根据在线作业视频实时控制目标无人巡检器的作业路线、采集位置等。
2 无人巡检器硬件设计
无人巡检器作为一个边缘计算环境,采用树莓派(3B+)作为主控板,提供计算资源和控制功能。通过主控板USB接口挂载网络摄像头、电压电流检测器以及4G模块;通过主控板引脚外接自制的驱动板挂载pH值等水质指标检测传感器以及超声波传感器、驱动直流电机等。整个硬件电路通过12 V电压供电,目前采用锂电池组,可扩展为太阳能板。无人巡检器硬件结构如图2所示。
图2 无人巡检器硬件结构
2.1 航行控制
无人巡检器以快艇式模型船为载体,利用微型无刷直流电机作为船体的动力输出,使用以L298N双H桥直流电机驱动芯片为核心的驱动板控制电机转向,利用脉冲宽度调制(PWM)技术控制电机的转速。
2.2 GPS定位与网络通信
无人巡检器边缘通信采用了HOESIM7600CE模块,支持4G网络通信、GPS定位与AP(Access Point)热点功能,利用 USB接口与树莓派连接实现供电与串口通信。该模块通过插入SIM卡并发射AP热点使监测器可以在任意4G信号覆盖的地方进行网络通信,并通过IPX接口外接GPS天线接收GPS定位信息。
2.3 水质指标检测
无人巡检器利用驱动板引脚可提供多路水质指标数据的采集。其中pH水质指标检测采用了LEICI公司的E-201-C pH复合电极与pH检测采集传感模块。pH复合电极是由pH玻璃电极和参比电极组合在一起的复合电极,通过BNC接口与pH检测采集传感模块连接,再接入无人巡检器。
2.4 无人巡检器运转及作业水域监测
无人巡检器集成了作业水域现场的实时监测模块,包括网络摄像头和超声波传感器。网络摄像头采用的是萤石C2C多功能网络摄像机,通过USB与树莓派连接,网络配置完成后可实时探测监测器作业水域的180°水平全景。超声波传感器采用HC-SR04超声波测距传感器,通过时间差测距法测量前方障碍物距离。无人巡检器还集成了电压电流检测器,对运转的供电状态进行实时监控,可测电压与电流范围分别是0~36 V与DC 0~40 A。
3 软件系统的设计与实现
控制系统的软件主要包括无人巡检器控制软件、控制服务器程序以及手机端控制软件三部分。
3.1 应用通信协议设计
控制系统三部分间通过Socket套节字进行通信,设计的应用通信协议数据包格式如图3所示。
图3 应用通信协议数据包
协议数据包由数据头和目标数据两部分组成。数据头含有协议识别符、数据包种类识别符和消息体长度,三部分共9 B。协议识别符固定占有4 B,是判断数据包是否遵循协议的标识;数据包种类识别符占有1 B,用于数据包的分类;消息体长度占有4 B,携带消息体的长度信息。消息体则为一次传输中数据包内携带的目标数据。
通信双方在进行数据通信时,发送方先将要发送的数据进行JSON序列化形成消息体,再将消息体与数据头组成数据包进行发送;接收方在接收数据时,按照协议格式解析数据头中的消息体长度,进而从数据包内分离出完整的JSON消息体,反序列化后读取目标数据。
3.2 无人巡检器控制软件
控制软件开发依托于树莓派3B+主板,利用Python开发,通过编程控制树莓派串口通信以及指定GPIO引脚的I/O操作,进而完成数据的采集以及对电机运转状态的控制。控制的主流程为:监测器上电后,控制软件开始对各组件进行初始化操作,随后控制软件请求与云端服务器建立Socket连接;连接成功后,控制软件会监听连接状态,若接收到数据则对数据进行解码并相应地改变电机运转状态;与此同时,控制软件会开启新线程,负责定时采集数据并将数据编码上传至云端服务器。
控制软件主流程如图4所示。
3.2.1 数据采集控制
数据采集控制包括通过串口进行GPS信息采集、剩余电量采集、pH值采集以及通过GPIO引脚的I/O操作进行超声波测距信息采集两种方式。当进行串口通信时,需要在树莓派操作系统/dev/目录下找到对应硬件模块的文件名称进行声明并初始化;当进行GPIO引脚的I/O操作时,则根据BCM编号方式声明引脚接口编号并初始化。GPS信号采集实现是通过串口向HOE-SIM7600CE模块先发送初始化指令("ATE0 "、"AT+CGPS=1 "),再通过指令("AT+CGPSINFO ")获取GPRMC字符帧,最终解析字符帧获取经纬度值。剩余电量的采集通过估算得出:系统上电时,利用指令("AT+V ")获取初始状态下的电压值,根据电压值估算出剩余电量并保存电量信息;在运行状态下,利用指令("AT+C ")获取当前电流值,根据运行时间与采集时的电流值的乘积估算出已消耗的电量,并更新剩余电量信息。
图4 控制程序流程图
3.2.2 航行驱动控制
航行驱动控制程序通过改变电机的输入信号而控制电机的转向,并通过PWM输入驱动模块的使能端实现对电机转速的控制。电机运转状态控制表如表1所示,其中 IN1、IN2为左侧电机驱动信号输入,IN3、IN4为右侧电机驱动信号输入,ENA、ENB为输入信号使能端。电机初始化为低电平,PWM频率设定为1 000。
表1 电机运转状态控制表
3.3 控制服务器程序
控制服务器使用Netty作为网络通信框架,该框架预置了多种编解码功能,API使用简单,定制能力强。控制服务器程序设计主要包括:数据接收、业务处理、数据发送和空闲检测4个模块。数据接收模块负责将接收到的数据在自定义协议下进行解码,并验证数据头中的协议识别符,若验证失败则断开连接,若验证成功则进入业务处理模块;业务处理模块首先读取到消息体中的标识号(用于区别不同的无人巡检器)并将标识号与当前TCP连接绑定;数据发送模块根据消息体中不同的标识号映射到不同的TCP连接,进而将数据在自定义协议下编码并发送给相应的客户端;空闲检测模块负责监听所有客户端的连接状态,如果一个TCP连接在连续一段时间(可自定义,默认为 120 s)内没有数据读入,服务器则主动断开与客户端的连接,并清除该TCP连接与相应的标识号的映射关系。控制服务器程序功能模块图如图5所示。
图5 控制服务器结构
3.4 手机端控制软件
手机端控制软件是基于Android的APP应用,主要有数据显示和航行控制两个模块,控制画面如图6所示。数据显示模块用于显示视频及监测数据。视频流数据通过萤石第三方平台提供的接口接入,而水质指标监测数据以及监测器状态信息则通过云服务器获取。手机端控制模块发送的消息中包含控制目标和控制指令两类数据。控制目标则为消息中的标识号,用于指定需要操纵的无人巡检器(无人巡检器实物图如图7所示);控制指令用于操控无人巡检器电机的不同运转状态。控制指令设计如表2所示,指令均为int型数值,其中X取值范围在 0~100之间,Y取值范围在 200~300之间。
图6 手机端操控界面
图7 无人巡检器实物图
表2 控制指令设计
4 结论
本文提出了一种基于4G通信技术的水质移动监测方案,能够通过手机端控制软件远程操控无人巡检器,实时获取现场视频、目标水域水质参数数据以及无人巡检器工作状态等信息,可以满足小流域下多点水质移动监测的需求,大大节省设备、时间、人力等成本。该方案采用Netty作为网络通信框架,支持多客户端同时在线,手机端控制软件可在线操作多台水质无人巡检器,增加了系统的可扩展性。同时该系统架构可以平顺地实现4G网络到5G网络的切换。
为获取更精确的水质评估结果以及实现智能化的流域监测,下一步将在现有研究基础上丰富无人巡检器的水质参数检测传感器,并对无人巡检器的智能航行方面做进一步研究。