覃建业,喻浩,何仁杰,张富饶,高娟
(电子科技大学成都学院智能制造工程系,四川成都 611731)
随着经济的快速发展,我国水污染问题也日益严重,更加有效的水质检测方法也越来越引起人们的重视。当前,国内外水质检测的方式主要有以下几种。1)水质监测站检测[1]:在重点的水域和大型的湖泊都设有水质检测站,但其位置固定、成本过于高昂,且对于不同位置不同深度的水质检测不够灵活;2)取样实验室检测[2]:野外采集水质样本,在实验室用相关化学试剂或设备分析各项指标,但其检测周期较长、取样及各项操作较为繁琐,不能满足水质检测广泛应用的迫切需求;3)手持式水质检测仪检测:手持式移动检测设备虽然操作简单、集成度与精度都相对较高,但其单价较为昂贵,且无法灵活反映不同区域的水质情况;4)船形机器人[3]:不能灵活检测不同水深的水文参数,且漂浮于水面上,影响美观,即使有下潜式的水质检测机器人,也多为拖带线缆式,同时其价格较为昂贵,不适合水产养殖、小型湖泊等小型水域使用。
针对以上几点问题,文中设计并实现了基于无线通信的水下水质检测机器人系统,其具有可下潜、续航时间长、成本低、智能化以及能快速有效地检测不同水域、不同水层水质信息的特点,实现了远程智能化控制以及水质检测数据的实时传输[4],能有效提高水质检测工作效率,具有较大的开发潜力和应用前景。
所设计的基于无线通信的水下水质检测机器人系统通过4G 模块与阿里云物联网平台构建无线通信系统。采用水下滑翔机外形,进而检测不同深度的水质情况。该系统所采用的主要模块有STM32 F103ZET6 内核处理器、5 V 和12 V 有源电源模块、4G 通信模块、TDS 检测模块、浊度检测模块、pH 检测模块、微信小程序上位机、步进电机等。该系统整体硬件结构框图如图1 所示。水下滑翔机外形能使其仅在下潜和上浮时需要驱动电机做功消耗电能以外,无需其他动能输出。双翼内置有太阳能电池板,可直接上浮于水面充电,使其拥有更长的续航时间。在小程序控制下,无线通信系统与数据采集系统、运动控制系统、电源系统、警告报警系统协同工作,从而实现在无人控制的情况下按预设路径巡航,检测水下各区域水质情况并在上浮时上传水质信息的功能。水下滑翔机工作原理如图2 所示。
图1 整体硬件结构框图
图2 水下滑翔机工作原理图
整个运动控制系统供电后,陀螺仪MPU6050、水压深度传感器进行自检、完成必要的初始化设置。自检完成后采集水质检测机器人当前的姿态,如x、y、z轴的倾角数据和倾角加速度以及水深信息,采用IIC 数据接口发送给STM32 主控制器。此时STM32主控制器对数据进行初始化配置,对所需要的I/O口、4G 模块进行初始化配置,对其数据的通信协议进行配置。完成初始化配置后,STM32 主控制器读取MPU6050 陀螺仪和水深压力传感器的原始数据并进行分析处理,进行一系列的滤波算法,对原始数据进行处理,得到所需要的正确数据。同时输出控制电机的PWM 信号给TB6612FNG 直流电机驱动模块[5],驱动直流电机进行吸水和排水的机械运动,通过改变水下滑翔机的浮力调节水下滑翔机下潜和上浮的频率、方向及速度。同时STM32 主控制器对减速电机上的霍尔编码器上的脉冲进行计数,将得到的电机旋转数据与MPU6050 陀螺仪的数据通过串级PID,对电机进行闭环控制[6]。通过设置控制优先级,使机器人在水下自主运动时,用户也可以调节其各项运动参数,共同实现对机器人姿态、运动轨迹的控制。STM32 运动控制系统示意图如图3 所示。
图3 运动控制系统示意图
系统采用YED-C724 核心板作为4G 通信模块搭建无线通信系统。该型模块是由银尔达公司基于合宙Air724 模组推出的高性能嵌入式4G Cat1 核心版本,其具有低功耗、超小体积、支持lua 语言进行二次开发、支持TCP/UDP/MQTT/阿里云/实时采集透传等特点[7],且其实际测试工作环境温度范围为-35~75 ℃,能在苛刻的温度条件下正常工作。其进行数据传输时的连接网络的流程如图4 所示。
图4 4G模块连接网络流程
数据采集系统通电后,各种水质检测传感器首先进行自检,完成必要的初始化设置。采集数据时,各传感器模块将传感器反馈的电流信号发送给STM32 主控进行数据处理[8],以获知当前的水质参数,并将获取的水质参数存储到flash 芯片中,通过无线传输系统传输至上位机。在设计中,传感器类型可根据实际检测需求选择性搭载,以增强其水质检测类型的广泛性与多样性。
2.3.1 浑浊度数据采集系统
该设计中采用了浊度传感器模块检测水质的浑浊度。该型传感器利用光学原理,通过溶液中的透光率和散射率来综合判断水质浊度情况。传感器内部为一个红外线对管,当光线穿过一定量的水时,光线的透过量取决于该水的污浊程度,即水越污浊,透过的光线越少。光接收端把透过的光强度转换为对应的电流大小,透过的光越多,电流越大;反之透过的光越少,电流越小。通过读取接收端的电流值,就可以相应计算出水的污浊程度。其中,浊度值与模块输出电压(U)满足关系式为:浊度值=-68.865×U+K(K为截距值,需通过标定方法得到)。
2.3.2 温度数据采集系统
DSl8B20 温度传感器[9]是一种单总线型温度测量器件,具有直接的数字信号,可采用总线供电,同一根总线上可接多个传感器,构成多点测温网络,是温度场监控系统的理想选择。该型传感器精度为0.5 ℃,可提供二进制9位温度读数,可在-55~+125 ℃范围内进行温度测量。因DS18B20 使用的是1-Wire总线协议方式,因此其对写数据、读数据有严格的时序要求。使用过程中均以特定通信协议确保各位数据传输的准确性和完整性,控制其工作的流程图如图5 所示。
图5 温度传感器工作流程图
2.3.3 pH采集系统
设计中的pH 采集系统由pH 传感器模块搭配E-201 型pH 复合电极[10]组成。pH 传感器模块上集成有板载电源指示灯、BNC 接口和pH2.0 接口,可以与Arduino、单片机等控制器相连,具有连线简单、价格低廉、使用方便等特点。
该模块通过BNC 接头与pH 复合电极进行连接,扩展有DS18B20 温度传感器接口,方便进行软件温度补偿设计[11]。调节10K 蓝色电位器的旋钮可以进行放大倍数调节(顺时针调节时针调节减小)。使用时,将pH 传感器接到板载BNC 接口,将板载pH2.0接口连接到控制器的模拟口,通过相应地程序控制,即可以方便地测量水质的pH 。pH 电极输出电压与pH 的关系如表1 所示。
该系统采用12 V 锂电池组作为总电源,采用LM2596 稳压模块为电路稳压。LM2596 稳压模块经过其内部的LM2596 芯片[12]稳压到5 V 后,再为水质监测系统和运动控制系统供电。此类降压模块能够驱动高达3 A 的电流负载,并且拥有出色的线路和负载调节性能;可提供3.3、5、12 V 固定输出电压和可调节输出电压类型;集成度高、简单易用,还具有内部频率补偿和固定频率振荡器。LM2596 系列在150 kHz 的开关频率下运行,因此采用的滤波器组件比更低频率的开关稳压器所需的组件尺寸更小,更能节省机器人内部空间。当电量较少时,机器人可直接上浮于水面,经绝缘处理后内置于双翼的太阳能板为电池组充电,也可通过外接12 V 充电器对电池组充电,因此相比于现有的水下水质检测机器人,拥有更长的续航时间。
设计的视频采集系统使用720p(60 帧)无畸变摄像头,搭配友善之臂nanopi 2fire Linux 开发板。设计中摄像头与nanopi 2fire 采用USB2.0 连接,nanopi通过使用OpenCV-python 对摄像头进行操作,使用OpenCV 内置的函数库对摄像头内的画面进行采集,并通过UDP 用户数据报协议进行视频传输[13]。
UDP(User Datagram Protocol)用户数据报协议是一种无状态的传输协议,它没有TCP 传输控制协议握手、确认、窗口、重传、拥塞控制等繁琐机制,所以它在传输数据方面是非常快的,非常适合进行低延迟视频流传输。使用nanopi 进行视频传输的思路是:捕获视频、压缩视频数据、传输数据;首先初始化摄像头模块,再使用cv2.VideoCapture()函数,此函数的作用是捕获摄像头的画面,对图像进行获取;再使用cv2.imencode()函数将获取到的图片编码成流数据,并加入到内存缓存中,方便进行网络传输;在图像被编码为流数据后,使用cv2.sendto()函数将流数据封装为UDP 包并发送;接收端上位机使用cv2.recvfrom()函数来获取UDP 包、接收压缩数据,并对其数据进行解压;通过cv2.imdecode()函数可以把网络传输数据中的图像数据恢复出来;最后再使用cv2.imshow()对传输的视频数据进行画面显示。其操作流程如图6 所示。
图6 视频数据获取流程
该系统软件部分可采用网页、Andriod、小程序等多种数据展示形式,但为了方便,系统仅提供了其中微信小程序的数据呈现方式。
系统微信小程序调用官方MQTT.js 库和算法库hex_hmac_sha1.js,自行编写连接阿里云物联网平台服务器代码,采用三元组连接方式,与阿里云建立基于MQTT 协议的互通网络,并在阿里云上配置相关主题,互相订阅和发布彼此的消息,微信小程序填入阿里云提供的各种参数并调用MQTT 通信包即可与阿里云物联网平台建立通信。同样地,4G 模块采用合宙官方DTU 通信平台[14],参考其数据手册配置相关参数,与微信小程序相同采用三元组连接方式,互相订阅和发布彼此的消息。最后利用阿里云物联网平台规则引擎云产品流转功能,设置好数据格式,相互转发彼此主题信息,即可达到4G 模块和微信小程序[15]的数据通信目的。
水下滑翔机上电以后,先等待各个模块初始化完成,4G 模块连通网络,滑翔机会自动吸水减少浮力沉入水底开始自动巡航的第一步,到达预定深度之后排水增大浮力浮出水面,并将预定深度的水质信息通过4G 模块发送至上位机进行展示。经测试,检测水质信息准确,能够较好完成预定任务。
微信小程序上位机可利用手机4G 或5G 网络访问移动基站,与滑翔机通信。经测试,上位机能很好控制该系统进行下潜和上浮的动作,较好完成了任务。以学校游泳池为例,其检测的各个模块不同深度水质情况如表2 所示。
文中设计并实现了基于无线通信的水下水质检测机器人系统,该系统结构精简、耗能低、能实时反馈各项水质参数信息、检测效率高、易于控制。对于不同水质检测的数据,其变化符合实际情况,与高精度测量仪器数据相差不大,能够达到对精度要求不高的水质检测目的。后期还可考虑搭载GPS 系统进行实时定位反馈[16-18]等功能,有助于工作人员回收并且更加直观地了解当地的水文条件。在当前水质检测机器人功能趋于完善化、多样化的背景下,系统设计具有一定的应用能力。后续研究中若能持续性加以开发,则该系统会在未来水下水质检测领域发挥巨大的作用。