基于 NB-IoT 的无人水质监测船
项目简介:本团队设计一款无人水质监测小船,在STM32F4 系列的MPU芯片上搭载FreeRTOS,具有水质监测,自主巡航,双重运动遥控,数据云传输以及微信小程序等功能,旨在解决水质监测作业环境恶劣、重复性强、采样时间长的作业特点和任务需求,实现快速、高效、精确的完成水质监测任务。
开源协议:GPL 3.0
功能定义
- 以无人小船为监测平台,能够通过GPS和北斗双模模块的定位,通过电子罗盘和GPS配合PID算法和贪心算法实现自主巡航。
- 能够监测多种水质气象信息,包括水温,pH值,浊度,TDS,气压,海拔,环境湿度温度,光照强度等。
- 能够通过NB-IOT模块实现数据的远程传输。
- 通过距离传输的433M模组进行远程控制,无限制距离控制采用微信小程序,二者可随意切换,通过mqtt服务器与微信小程序通信,实时显示船体位置和运动轨迹以及下达船体运动命令,使小船可智能的行驶到指定的坐标点,完成地图寻路。
- 通过4G模组网络摄像头实时传输视频。
- 采用水泵监测水质,可装上清洁网通过规划湖面地图点位进行多点巡航。
- 小程序上带有电量显示,船体当前状态提示,低电量报警值等功能。
设计原理
系统以 STM32F405 为控制核心,感知层通过 TDS 传感器,浊度传感器,水温传感器,PH 传感器采集相应水质数据,HMC5883L 电子罗盘模块用来获取船体航线角,可配合 BC20 北斗/GPS 定位模块实现航线控制与自动巡航。传输层采用 NB-IoT 技术连接基站,并通过 MQTT 协议实现船体与华为云平台及小程序之间的数据传输。软件上系统搭载 FreeRTOS 实时操作系统,通过航向角的 PID 控制和卡尔曼滤波器抑制 GPS 漂移实现了自动导航和返航,并基于贪心算法规划多点水质采集的最短路径。
技术规格
- 尺寸:60x20cm
- 重量:1.3KG
- 巡航速度:1m/s-3m/s
- 最大航行时间:≥ 30分钟
- 搭载传感器类型:pH,TDS,水温,光照,海拔,环境湿度,环境温度
- 通信方式:2.4GHz, NB-IOT, 4GLTE
- 电池容量:5400mAh
- 工作温度范围:0~+70℃
硬件部分说明
该无人船硬件系统主要分为4个部分:
(1) 船体框架和动力螺旋桨电机
(2) 主电路和外围传感器器件等组成的电路驱动系统
(3) 4G调制解调器和UVC摄像头组成的图传系统
(4) 遥控器
值得注意的是,为了保证船体的行驶稳定,我们将图传模块和主电路分开,船体的控制信息和数据通过NB-IOT模块传输给云服务器,而图像信息通过4G调制解调器直接传输给上位机,网络传输部分使用了两条链路同时工作,从而避免图传线路异常时,船体失联。虽然这会增加整体系统的功耗但我们认为这是必要的取舍。
船体组装与改造
(1) 船体组装
将购买后的散件组装完成即可
螺旋桨的安装图
(2) 船体钻孔与改造
为了让船体具备水质采集与检测能力,必须在现有的船体框架上进行钻孔并安放相应的传感器和采样装置。
上图可以看出,我们在船的盖板上安装了一个亚克力平台,平台上放置了一个密封的采样盒,并将传感器插入采样盒,这样当进行水质采样时,水泵会抽水到盒子内部,进行相应的参数读取后排出。
当然这只是其中一种布局方案,您可以根据您自身的喜好调整布局。
若您不喜欢这种抽水进行采样的设计,您也可以直接将传感器外置,放入河流中进行采样,不过您必须做好相应的放水措施。
(注意:pH传感器比较脆弱,浸泡时间过长可能导致测量数据不准或损坏)
(3)添置浮力棒
船体内部放有各种器件,使得船体质量变大,在无人船航行的过程中可能会因为速度过快引起沉船风险,故需要在船体两侧加装浮力棒增加船体浮力。