今天推荐的开源项目,来历很有意思。
本项目的作者三人,因参加了某个比赛获得了一等奖,而“留下了一身做船的好手艺,却难得再一展身手”。
一是因为平时不需要你做船,二是就算作者自己研究学习,花出去的成本,谁给报销呢?毕竟还只是在读学生呀!
事情往往就是这么凑巧。
他们看到立创开源硬件平台有个类似的外包项目正在悬赏……
这不就能“一展身手”了?这不就有人“报销”了?遂火速报名!
本团队基于NB-IOT设计了无人水质监测小船,并成功拿下了5000元奖金。
小船旨在通过自主巡航等技术,解决水质监测作业环境恶劣、重复性强、采样时间长的作业特点和任务需求。
本文主要记录小船的——项目功能、设计图、规格参数、船体组装与改造、微信小程序上位机说明、MQTT服务器搭建、图传软件安装、成本说明。
相信看完后,你会对于“做一个小船”有一个基础的理解!
在STM32F4 系列的MPU芯片上搭载FreeRTOS,具有——水质监测、自主巡航、双重运动遥控、数据云传输、微信小程序等功能。
本章节会详细说明一下各个功能。
小编视角:能自主巡航?小船成精了!
作者视角:
小船的硬件系统主要分为4个部分:
这是小船的电路设计图:
值得注意的是:
为了保证船体行驶稳定,我们将图传模块和主电路分开。
船体的控制信息和数据通过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摄像头,这里有两种方法:
这样虽然不方便后期的功能拓展,但无需焊接转接板,只要焊两根电源线。
打开小程序列表搜索:“IOT太阳能水质船”,即可找到无人水质检测船的微信小程序上位机。
小程序上可切换船体控制模式:遥控器模式、自主航行模式。
1.遥控器模式
使用2.4G遥控器控制船体。
在小程序上点击手动监测控制,直接驱动抽水泵将水槽灌满,进行水质监测,将传感器数据上传小程序。
2.自主航行模式
用该模式采样往地图上设置坐标点,控制船体自主航行到坐标点自动进行水质检测,完成检测完后无需人为控制,自主返回出发点。
自主航行步骤:
①点击航行矫正按钮。注意:罗盘矫正成功,小程序上会提示Compass_Successful。
如果是Compass_error请重新矫正,直到看到Compass_Successful,不然无法进行下一步。
②点击设置路径点按钮,在地图上设置坐标点。
③点击开始任务,船体开始自主航行。
④状态提示。
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服务的平台,这个平台必须具备公网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·头条号
关注我,看一手优质开源项目
页面更新:2024-02-26
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号