阮鑫 谭宗任 陈家
摘 要 为满足远洋环境实时监测的实际需求,本文研究了基于MQTT服务器的远洋环境监测系统的设计方案,该方案采用STM32处理器,通过GPRS通信模块实时动态联网控制,利用传感器模块获取船体位置、状态及环境数据,通过MQTT服务器对船体发送控制指令,完成对船体控制以及周围水域环境实时动态监测。实验结果表明,该方案可实现控制功能及环境监测功能,能充分满足环境检测的需求。
关键词 环境监测;MQTT服务器;物联网;GPS定位;GPRS通信
引言
当前的物联网发展中在国家与营运商的推动下大力发展,中国的物联网技术逐渐走到世界前列,成型的物联网运营商有移动和电信,与此同时,阿里云,小米等互联网供应商也拥有着完整的生态链,不再局限于RFID等短程通信手段,而是以互联网为主的远程互联网连接将设备通过网络控制起来,当前大多数物联网设备只能远程采集数据,做简单的开关控制,在此基础上文章通过前人搭建服务器的方法自行构建服务器,并利用市面上成型的物联网通信模块,通过GPRS通信对数据进行上传和下载,远程对设备进行定位与控制。
1系统结构设计
如图1所示,远洋监控系统包括数据服务器、控制端、物联网、监测船只、采集传感器,采集传感器用于采集当前船只所处海域的各类环境数据,如水温、海水浑浊度、海域的光照数据,由船只中的中控进行数据汇总,将船只运行状态、环境数据、海域坐标等汇总数据纠偏后通过GPRS模块进行数据上传至数据服务器,服务器对数据进行解析,并显示于控制端,通过MQTT(Message Queuing Telemetry Transport)服务器进行会话传输数据,控制端获取到数据并应用于地图定位与环境分析,控制端通过会话向监控船只发出指令进行
航行实时控制。控制端使用Apache-Apollo搭建的MQTT服务器进行主题订阅,通过客户端与控制端同时订阅发布的主题,客户端可以向这个订阅主题中发送数据,控制端会收到这个订阅主题发出来的数据,反之亦然。以此来完成数据的推送,将该服务器作为一个数据中转站,从而减少消息在服务器上的停留等待时间,进而减少指令传输的时延。高效地对远洋环境数据进行采集并控制船只位置[1-2]。
2系统方案设计
2.1 主控MCU方案
图2为单片机控制程序流程图。控制器STM32F1拥有2个12位数模转换器,电压采集分辨率高,7通道DMA数据采集快,多达7个定时器和9个通信接口。相比于8051,STM32F1的优势更明显,因此采用STM32F1作为主控芯片。
2.2 GPRS联网与GPS定位方案
本项目中采用合宙的AIR800系列GPRS/GNSS集成模块作为通信模块,AIR800模块是一款GPRS+GPS+北斗定位三合一的通信模块,模块外部结构采用23.8mm × 14.8mm × 2.3mm的超小尺寸有利于狭小的船体空间电路布局。模块内嵌TCP、UDP、FTP、PPP等协议,已内嵌的扩展AT命令可以更容易地使用这些互联网协议,采用串口方式连接主控与模块,通过 GPRS联网使用MQTT协议进行服务器连接,主题订阅和数据上传。模块中集成了GNSS定位,支持北斗,GPS,GLONASS等定位方式,快速启动,该GPS模块定位采用的是国际标准的地心坐标系坐标(WGS-84),而国内使用的是基于国测局坐标系的国家大地坐标系(GCJ02),即采用的是非标坐标系,而不同的地图(如百度,高德等)定位采用的是GCJ02坐标系基础上加密的纠偏算法,所以为了更方便显示与使用定位数据,我们采用现有的百度地图API接口作为纠偏方案,并对地址数据进行解析,显示在百度地图上,从而获得监测船的地理位置并实现图形化,在广袤的海域中准确定位船只位置,并将其地址坐标用于定点返航,达到回收设备的目的[3-5]。
2.3 服务器构建方案
服务器在构建时考虑过三个方案:
(1)采用TCP协议进行TCP服务器的构建,利用TCP协议的特性进行设备间的点对点数据传输。
(2)采用HTTP协议进行服务器的构建,利用HTTP协议达成设备与服务器的通信和设备数据的请求。
(3)采用Apache-Apollo进行MQTT服务器的构建,使用MQTT通信协议进行设备到设备的数据交换。
在构建后分别对三个方案测试,方案(1)优点是点对点传输数据准确性高,缺点是时延太大,1.5S的时延操作对于在紧急事态下的操作过于缓慢协议对接稍微烦琐。方案(2)优点是它不仅可以保证设备可以正确快速地传输数据,同时可以确定是该数据中的哪一部分,以及哪部分数据优先显示等,但缺点也明显,显然GPRS通信模块在该协议下请求后等待响应数据流程操作不利于快速数据交换,而且时延比TCP协议的服务器更长。方案(3)的MQTT协议,采用的是M2M的轻量级设备对设备的数据传递协议,代码占用量小且数据量较小,因此该协议是设备在缺乏网络带宽,且网络速率不高的情况下的优先选择。MQTT协议还可以帮助减少技术和集成层。快速收发数据与重连服务器,结构由图4所示。为此,該协议消除了在不同组件与模块之间转换数据的需求,并且消除了使用第三方中间件在设备和IoT平台之间进行通信的需求,是较为理想的数据通信协议。在传输测试时,时延降低至1秒内,是较为理想的交换服务器,所以本次采用MQTT服务器方案来进行远程通信与控制。
2.4 传感器方案
作为监测船只的眼睛——感知层,船只中控采用开放式传感器扩展接口,以求更好地兼容传感器模块以及更多的监测数据,实际使用中系统可监测水体浑浊度,水温,光照,空气湿度等。
(1)浑浊度传感器
水体的浑浊度是指水体中含有泥沙、黏土、浮尘、微生物等悬浮物造成的浑浊程度。可选用一款家用洗碗机中常用的采用光学原理的浊度传感器TSW-30,通过检测溶液中的透光度和散射率来判断液体的浑浊程度,在传感器探头内部有一对红外对管,当红外透过液体时,浑浊度越高透过的光越少,接收端光电转化的电流越小,反之越大。模块上的转换芯片,将电流转换为模拟电压与数字电压,只需要MCU采集并转还数据即可判断水体的浑浊度。
(2)温度传感器与湿度传感器
检测空气温度时可以采用DS18B12,DHT11,HDC1080等模塊,采用DHT11作为空气的温度湿度采样,价格优廉性价比高,单总线通讯抗干扰强,表面做防水处理即可正常在海面上正常工作,但这个模块只局限于水面上,如果其进行防水处理并放入水中将会影响模块的灵敏度以及数据的准确度且在水下不需要湿度监测,所以为了能精确采集水下温度,采用导热性高的密封胶灌封装好的DS18B20,引脚使用热缩管进行防水处理,保证了这个传感器的高灵敏性,同时它的单总线通信模式极大地提高到了抗干扰性更适合水下温度的监测。
(3)光照传感器
光照传感器拟定采用TEMT6000与GY-302,前者拥有570nm的高感应灵敏度,且可一直红外光谱,提供近似“人眼”的更高可见光谱响应性,但IO输出为模拟量电压需要进行较为复杂的计算标定转化勒克斯单位,后者不区分光源,提供接近视觉灵敏度的分光特性,可对广泛亮度进行精确测定,精度1勒克斯,内部内置AD转换器采用IIC通信直接通过通信协议对采集数据数字输出省略复杂的计算与标定,相比之下决定采用算法复杂度更低的GY-302模块作为光照采集模块,该模块13mm*18.5mm小型且面积宽的封装,更适合固定在船顶表面[6-9]。
3测试效果
图5为控制终端测试效果图。终端具有远程操控船只的功能,可显示监测的环境数据,还可以通过上传的GPS定位数据精确定位船只在地图窗口所处的区域。
4结束语
通过实际的应用,远洋监测船可以通过服务器很好地解决了人工实地考察以及人工采集数据的不便之处,快速准确解决了中短程距离的海域环境监测问题如图5所示,针对三类服务器方案期间出现不同程度的问题,在服务器上做出相应的修正的算法方案,在大量的实验测试后决定将MQTT服务器作为上端数据中转站,能高效快速地进行数据传输并在控制端显示与控制。
参考文献
[1] 王松林.农业物联网技术应用及创新发展策略[J].电子测试,2018(3):159.
[2] 王彪.基于物联网技术的智能家居系统[J].数字技术与应用,2018,334(4):79,81.
[3] 苏程浩.物联网技术在智慧城市建设中的应用[J].数字通信世界,2018,158(2):202.
[4] 肖鹏,陈健,姜培.基于物联网的环境监控系统设计与实现[J].物联网技术,2018,8(1):14-16.
[5] 华净,王秀娟,王浩宇,等.基于物联网的日光温室环境监测在线校准[J].中国农学通报,2018,36(5):120-124.
[6] 林敬学,李会平.基于物联网的工业环境监控平台[J].电子设计工程,2019,27(7):47-50,55.
[7] 马跃,颜睿陽,孙建伟.基于RocketMQ的MQTT消息推送服务器分布式部署方案[J].计算机系统应用,2018,27(6):85-88.
[8] 陈建刚,黄国伟,刘星明,等.基于MQTT协议与开源硬件的智能监控系统[J].单片机与嵌入式系统应用,2017,17(10):59-61.
[9] 张玉杰,郭向阳,李栋.基于蓝牙与MQTT服务器的DALI智能照明系统设计[J].陕西科技大学学报:自然科学版,2016(5):152-156.
作者简介
陈家栋(1986-),男,广西合浦人;毕业院校:桂林电子科技大学,专业:测试计量技术及仪器,学历:硕士,职称:讲师,现就职单位:桂林电子科技大学电子信息学院,研究方向:测试计量技术与仪器。
阮鑫(1999-),男,广西博白人;学历:本科生在读,就读院校:桂林电子科技大学电子信息学院,专业:电子信息科学与技术,研究方向:嵌入式与电子设计。
谭宗任(1999-),男,广西钦州人;学历:本科生在读,就读院校:桂林电子科技大学计算机工程学院,专业:网络工程,研究方向:网络工程与嵌入式。