https://www.toutiao.com/article/7277491216131129915/?log_from=926bcb1203f6e_1695048718993
(嘉立创EDALinux系统再搭载通用的摄像头图像信息通过4G调制解调器直接传输给上位机使用了两条链路同时工作)
(嘉立创EDA将设备改成常规的Linux系统再搭载通用的摄像头即可实现图像获取功能图像信息通过4G调制解调器直接传输给上位机网络传输部分使用了两条链路同时工作从而避免图传线路异常时船体失联)
今天推荐的开源项目,来历很有意思。
本项目的作者三人,因参加了某个比赛获得了一等奖,而“留下了一身做船的好手艺,却难得再一展身手”。
一是因为平时不需要你做船,二是就算作者自己研究学习,花出去的成本,谁给报销呢?毕竟还只是在读学生呀!
事情往往就是这么凑巧。
他们看到立创开源硬件平台有个类似的外包项目正在悬赏……
这不就能“一展身手”了?这不就有人“报销”了?遂火速报名!
本团队基于NB-IOT设计了无人水质监测小船,并成功拿下了5000元奖金。
小船旨在通过自主巡航等技术,解决水质监测作业环境恶劣、重复性强、采样时间长的作业特点和任务需求。
本文主要记录小船的——项目功能、设计图、规格参数、船体组装与改造、微信小程序上位机说明、MQTT服务器搭建、图传软件安装、成本说明。
相信看完后,你会对于“做一个小船”有一个基础的理解!
在STM32F4 系列的MPU芯片上搭载FreeRTOS,具有——水质监测、自主巡航、双重运动遥控、数据云传输、微信小程序等功能。
本章节会详细说明一下各个功能。
小编视角:能自主巡航?小船成精了!
作者视角 以无人小船为监测平台,能够通过GPS和北斗双模模块的定位,通过电子罗盘和GPS配合PID算法和贪心算法实现自主巡航。(具体操作方式,见“微信小程序上位机说明”章节) 能够监测多种水质气象信息,包括:水温,pH值,浊度,TDS,气压,海拔,环境湿度温度,光照强度等。 能够通过NB-IOT模块实现数据的远程传输。 通过距离传输的433M模组进行远程控制,无限制距离控制采用微信小程序,二者可随意切换。通过mqtt服务器与微信小程序通信,实时显示船体位置和运动轨迹以及下达船体运动命令,完成地图寻路。 采用水泵监测水质,可装上清洁网通过规划湖面地图点位进行多点巡航。 小程序上带有电量显示,船体当前状态提示,低电量报警值等功能。 小船的硬件系统主要分为4个部分 船体框架和动力螺旋桨电机。 主电路和外围传感器器件等组成的电路驱动系统。 4G调制解调器和UVC摄像头组成的图传系统。 遥控器。 这是小船的电路设计图 原理图 PCB图 无人船设计历程 值得注意的是 为了保证船体行驶稳定,我们将图传模块和主电路分开。 船体的控制信息和数据通过NB-IOT模块传输给云服务器,而图像信息通过4G调制解调器直接传输给上位机,网络传输部分使用了两条链路同时工作,从而避免图传线路异常时,船体失联。 虽然会增加整体系统的功耗,但我们认为这是必要的取舍。 尺寸:60x20cm 重量:1.3KG 巡航速度:1m/s-3m/s 最大航行时间:≥ 30分钟 搭载传感器类型:pH,TDS,水温,光照,海拔,环境湿度,环境温度 通信方式:2.4GHz, NB-IOT, 4GLTE 电池容量:5400mAh 工作温度范围:0~+70℃ 1.船体组装 将购买后的散件组装完成即可。 螺旋桨的安装图 2.船体钻孔 为了让船体具备水质采集与检测能力,必须在现有的船体框架上进行钻孔并安放传感器和采样装置。 上图可以看出,我们在船的盖板上安装了一个亚克力平台,平台上放置了一个密封的采样盒,并将传感器放入采样盒进行水质采样。 当然,你也可以直接将传感器外置进行采样,不过必须做好相应的放水措施。 注意:pH传感器比较脆弱,浸泡时间过长可能导致测量数据不准或损坏。 3.添置浮力棒 船体内部放有各种器件,使得船体质量变大,在无人船航行的过程中可能会因为速度过快引起沉船风险。 需要在船体两侧加装浮力棒增加船体浮力。 4.电路组装 按照项目的电路原理图进行焊接。 将电路板放入船仓内并连接上电源和各种线缆,船体上方的盖子一定要盖好再下水。 电子罗盘建议将它的接线出来,安装到船体尾部中间。 传感器需要放置在抽水系统盒子里面,打孔后采用防水胶704将其粘好,不会漏水即可。 抽水系统由两个水泵组成的 一个是抽水进盒子的水泵。 一个是盒子里排水的水泵。 盒子里面不能完全封闭,所以在盒子上方开了两个孔连接管道用于空气流通,防止难以抽水。 抽水泵电机方向的正负极需要注意一下不能接反,否则也无法抽水进来。 抽取水面上的那个水泵的水管需要做一下处理,以防湖水的渣质抽到水泵里卡住水泵,无法工作。 如果堵住了,需要拆卸下面的螺丝,将头拿去用水冲洗薄膜。 电源的开关在船体尾部。 船体上方的盖子一定要盖好后再下水。 小心不要让水溅到主控板上,或者电路线上,建议是准备好纸张擦一下船壳上方的水。 5.图传模块安装 相较于传统的图传模块,这个4G图传可以在任何4G信号覆盖到的地方工作。 真正摆脱了对于距离的限制。 项目中使用的4G调制解调器,使用了UFI设备改造而成。 这类设备通常是用来作为便携上网设备使用,其内部运行的是安卓系统。我们将设备改成常规的Linux系统,再搭载通用的摄像头即可实现图像获取功能。 改装方式如下 ①刷入armbian系统。 ②连接UVC摄像头,这里有两种方法 使用USBhub1拖4电路拓展主板的USB口。将设备插入usb口并从核心板上的摄像头接口拉电源线接上,并把UVC摄像头插上即可。 直接使用USB母对母转接头接入UVC摄像头。 这样虽然不方便后期的功能拓展,但无需焊接转接板,只要焊两根电源线。 打开小程序列表搜索:“IOT太阳能水质船”,即可找到无人水质检测船的微信小程序上位机。 小程序上可切换船体控制模式:遥控器模式、自主航行模式。 1.遥控器模式 使用2.4G遥控器控制船体。 在小程序上点击手动监测控制,直接驱动抽水泵将水槽灌满,进行水质监测,将传感器数据上传小程序。 2.自主航行模式 用该模式采样往地图上设置坐标点,控制船体自主航行到坐标点自动进行水质检测,完成检测完后无需人为控制,自主返回出发点。 自主航行步骤 ①点击航行矫正按钮。注意:罗盘矫正成功,小程序上会提示Compass_Successful。 如果是Compass_error请重新矫正,直到看到Compass_Successful,不然无法进行下一步。 ②点击设置路径点按钮,在地图上设置坐标点。 ③点击开始任务,船体开始自主航行。 ④状态提示。 要使船体具备云功能,就需要搭建一个专门为船体提供MQTT服务的平台,这个平台必须具备公网IP环境。 可以通过以下两种方式获取MQTT服务器。 ①使用EMQX Cloud的试用额度(不推荐):每月1百万分钟连接数和1GB流量的试用额度。 ②搭建EMQX开源版私人MQTT服务(推荐):自己搭建MQTT服务器的好处是——无限制的流量和设备连接数。 在此之前你需要一台运行Linux操作系统的公网VPS。 1.安装motiion 首先需要在图传里面安装motion监控软件,用来驱动UVC摄像头。 ①使用ssh进入图传的shell终端。 ②在终端输入命令:apt install motion。 ③编辑配置文件。 2.安装zerotier软件 因为图传和上位机使用的网络环境并非公网,所以无法进行点对点访问,只能通过P2P远程组网的方式,将微信小程序上位机和图传,进行远程组件局域网来进行相互之间的访问。 ①使用ssh进入图传的shell终端 ②在终端中输入命令:curl -s | sudo bash 这个命令会自动安装zerotier所需要的组件和程序本体。 项目成本:921.52元,项目奖金:5000元。 作者三人不愧是在“2023全国大学生嵌入式芯片与系统设计竞赛”中,荣获过一等奖呀,原项目还是有很多地方值得参考学习呢! 参考资料 [1]作者:u8xx、nanshengfuzi、jinsn《基于NB-IOT的无人水质监测船》https://oshwhub.com/u8xx/ji-yu-NB-IOTde-wu-ren-shui-zhi-j — 完 — 嘉立创EDA·头条号 关注我,看一手优质开源项目设计图
规格参数
船体组装与改造
微信小程序上位机说明
ship_Idel 空闲提示
ship_forward app手动控制提示
ship_rotate 航行矫正提示
ship_Gps 设置点位提示
ship_run 自主导航提示
ship_check_water 监测水质提示
ship_error_stop 错误停止提示
ship_back 自主返航提示
ship_Please_Compass_Check!请进行航行矫正
ship_Compass_Successful 电子罗盘矫正成功
ship_Compass_error 电子罗盘矫正失败
ship_hight_temp_warning 高温警告
ship_powerlose_Warning 低电量警告
ship_pumping 抽水中
ship_release 放水中
MQTT服务器搭建
图传软件安装
成本公布
联系客服