APP下载

全自动水上垃圾清理系统

2019-09-07路天天叶宇程赵壮壮阮治纲

山西电子技术 2019年4期
关键词:电量船体指令

路天天,叶宇程,刘 岩,赵壮壮,阮治纲,高 爽

(河南科技大学信息工程学院,河南 洛阳 471023)

0 引言

根据《2017中国环境状况公报》显示:截止2017年年底,全国废水排放总量达735.3亿吨,相当于一个青海湖。鉴于当前的水环境所面临的问题,治理已经势在必行了。目前,小型水域水面漂浮物的清理办法主要是采用手持式网兜等传统工具进行清除,存在清理不干净、耗时长、效率低、劳动强度大等弊端,非常不适合于小型景观水域、养殖水域和私人水域的使用。鉴于上述情况,本文叙述一种全自动水上垃圾清理系统,用来解放劳动力,取代手持式网兜,自动清除水上垃圾。本系统实现的主要功能是:水上垃圾清理船自动规划路径清理水上垃圾,并把其位置信息上传到服务器,手机APP向服务器请求船的位置信息并画出船的行驶路径。

1 总体系统设计

全自动水上垃圾清理系统包括船体、服务器和手机APP三部分。船体部分的主要功能是:在湖中自动收集垃圾并把自己的位置信息、电量信息传到服务器中,此外,当垃圾箱被装满时,船体还可以向管理员报警。服务器部分的主要功能是:接收船体发来的信息并存储起来,等待手机APP取出。手机APP的主要功能是:从服务器中取出船体的位置信息和电量,然后经过运算显示出船体在湖中走过的路径和船的电量,此外,APP还可以作为遥控器控制船体前后左右移动,便于回收船体。

图1 全自动水上垃圾清理系统总体设计框图

2 船体设计

船体设计包括机械设计、硬件电路设计和软件设计三部分。

2.1 船体机械设计

图2 船体机械设计

船体由左船舱、右船舱、垃圾箱、传送带、螺旋桨组成。左船舱和右船舱尾部分别有一个螺旋桨,可用于驱动船体前进和左右移动;左右船体中间有一条传送带,传送带一端浸入水中,用来把垃圾传送到传送带另一端的垃圾箱里。

2.2 船体硬件电路设计

船体硬件电路主要包括STM32F103C8T6单片机[1]、LM2596稳压电路、超声波模块、GPS传感器、电压检测电路、GSM模块和光电开关。

STM32F103C8T6微控制器作为主控制器,它用来接收GPS传感器采集到的位置信息和电压检测电路检测到的船体电源的电量信息,然后通过GSM模块把这些信息上传到服务器;此外,用一个光电开关固定到垃圾箱的顶部,当垃圾箱被装满时,微控制器通过GSM模块向管理员报警。

两个超声波模块分别安装在左右船舱的头部,用来检测前方是否有障碍物。

LM2596稳压电路用来把24V电源降到3.3V给单片机供电。

电压检测电路由一个分压电路组成,分压电路把电源电压的范围转换到0-3.3V的范围内便于数模转换模块测量电源电量。

图3 分压电路

2.3 船体软件设计

图4 船体软件流程图

船体软件流程图如图4所示。程序初始化之后,执行传感器信息采集程序,接收各个传感器采集到的信息,然后把传感器信息打包,打包格式为:“经度 纬度 电量信息 ”;然后执行与服务器交互程序把打包好的信息发送到服务器端,然后检测服务器是否发来指令;如果发来指令,就执行手动控制程序,通过手机APP控制船体前后左右移动;如果没有发来指令,就执行自动控制程序,船体通过传感器得到的信息判断怎么移动。

传感器信息采集程序先通过串口通信接收GPS模块的信息,通过单片机的ADDA采集电压检测电路的电量信息,通过中断函数接收超声波模块的测距信息,用单片机的普通IO口检测光电开关输出端的高低电平信息,然后把这些信息存储下来并打包。

与服务器交互程序主要通过串口通信向GSM模块发送AT指令来实现向服务器发送和接收信息。单片机通过AT指令把打包好的数据发给服务器,然后通过串口中断函数检测服务器是否发来指令。

接收到服务器的指令后,手动控制程序根据指令控制单片机输出相应的PWM波形控制两个螺旋桨的转速达到船体前后左右移动的目的。

如果没有接收到服务器的指令,自动控制程序根据超声波的距离信息判断前方是否有障碍物(通过设定阈值实现,当距离信息大于阈值时,前方无障碍物;否则前方有障碍物),如果没有障碍物,就控制单片机输出相应的PWM前进;如果有障碍物,根据上次的转向信息这次做出相反的转向操作并记录转向信息(如果上次向左转,这次就向右转,这样就不会原地转圈了)。

3 服务器设计

本系统服务器架构如图5所示,船体和APP可以通过TCP/IP协议[2]与服务器建立连接并通信。

当船体与服务器建立连接后,服务器执行与船体交互程序,首先检测船体是否发来消息,如果有消息,就通过JAVA中的JDBC库[3]把消息存储到MYSQL服务器[4]中;否则就检测与APP交互程序是否发来控制船体的指令,如果有指令,就把指令通过TCP/IP协议发送给船体;如果没有,就继续执行上述操作直到船体断开连接;与船体断开连接后该程序被终止,等待下次船体发来连接重新创建该程序。

当APP与服务器建立连接后,服务器执行与APP交互程序,此时,服务器就通过JDBC库把数据库中的数据全部提取出来,然后打包发给手机APP。打包格式和单片机数据打包格式相同;然后检测APP是否发来指令,如果收到指令,就把指令转发给与船体交互程序;否则,就继续执行上述操作。直到APP断开连接,连接断开后此程序也被杀死,直到下次APP发来连接重新创建该程序。上述两个程序都是以进程的形式运行在linux系统之下,进程的终止与创建都是linux系统执行的。

图5 服务器架构

4 手机APP设计

APP设计主要包括界面和数据处理两部分[5]。

界面主要显示地图和船走过的路径(主要通过百度地图API实现),然后在界面的右上角显示船体的电量。界面的右下角有虚拟遥杆,用来控制船体移动。

数据处理包括网络编程、船体路径显示程序、船体电量显示程序和遥控船体程序。

网络编程通过TCP/IP协议和服务器建立连接,然后接收服务器的消息存储到手机内存中,再把遥控船体程序输出的指令发送给服务器。

船体路径显示程序把存储到手机内存中的经纬度信息取出来然后用百度地图API把定位点显示到地图界面,如果经纬度信息更新了继续取出来,然后显示到地图界面,并把所有的经纬度坐标用android库中的画线函数连接起来,这就实现了显示船体走过的路径的功能。

船体电量显示程序直接把手机内存中的船体电量信息取出来显示到界面的右上角,电量信息更新后就把最新的电量信息显示到界面右上角。

遥控船体程序把虚拟摇杆的信息作为遥控船体的指令输出给网络编程程序。

5 结束语

本文阐述的全自动水上垃圾清理系统实现了自动避障,自动清理垃圾,并在手机APP上实时显示船体电量和坐标的功能,还实现了通过手机手动控制船体功能;并且有实现原理简单,制作成本低廉,可批量生产的特点。本系统可取代传统的人工清理水上垃圾方法,解放了劳动力。

猜你喜欢

电量船体指令
船体行驶过程中的压力监测方法
储存聊天记录用掉两个半三峡水电站电量
物联网智能燃气表电量自补给装置
《单一形状固定循环指令G90车外圆仿真》教案设计
超大型FPSO火炬塔及船体基座设计
电量隔离传感器测试仪的研制
船体剖面剪流计算中闭室搜索算法
中断与跳转操作对指令串的影响
一种基于滑窗的余度指令判别算法
水下爆炸气泡作用下船体总纵强度估算方法