王君君, 董 静, 伊铜川, 陈天恩
(1.上海海洋大学 信息学院,上海 201306;2.国家农业信息化工程技术研究中心, 北京 100097)
移动终端的设施农业物联网环境监控系统设计*
王君君1,2, 董静2, 伊铜川2, 陈天恩2
(1.上海海洋大学 信息学院,上海 201306;2.国家农业信息化工程技术研究中心, 北京 100097)
通过使用物联网(IOT)传输协议——消息队列遥测传输(MQTT)协议,将前端硬件、服务器端及移动端连接在一起,完成对设施农业环境的远程实时监控。在系统中,前端硬件以STM32微处理器为核心,由传感器模块、设备控制模块、GPRS模块和电源模块组成,实现数据的采集和传输;服务器端有数据接收、存储、分析的能力,并担任MQTT消息协议中消息生产者和消息管理者的角色;移动终端软件则以Android操作系统为基础开发了应用软件,用户在装有Android系统的移动终端上安装该应用软件,即可查看实时环境情况,发送控制设备指令等。经过测试,整个系统运行稳定、使用简单、实时性高,用户能有效地对设施农业环境进行远程实时监控。
设施农业; 环境监控; 物联网; 移动终端; 消息队列遥测传输(MQTT)
设施农业是指在环境相对可控的条件下,采用工程技术手段,提高动植物产量的一种新型的农业生产方式[1]。提高设施农业生产产量,降低设施农业资源消耗,是我国设施农业发展的重要方向。通过对设施农业的环境进行实时监控,是提高设施农业生产产量、降低资源利用率、减少劳动力成本的关键技术[2]。近年来,物联网(IOT)技术和移动互联网技术的快速发展,为设施农业环境监控带来了新的解决方案。
本文以设施农业环境数据采集为基础,应用物联网技术,研究前端硬件设备与移动终端相互配合共同完成对设施农业的环境监控。用户在设施内只需安装前端硬件设备和在移动终端中安装应用软件,即可随时随地通过移动应用查看设施内环境情况,有效减少了人力成本和监控系统的投入成本,当设施内有异常情况发生时,系统能及时发送报警消息给用户,提醒用户采取相应控制策略,避免农业生产损失的发生。
系统架构如图1所示。传感器模块用于农业设施内的关键环境参数(如空气温湿度、光照强度、土壤温湿度)的采集,微处理器将环境数据按照数据传输协议封装成数据包,上传到远程服务器中;设备控制模块则执行服务器发来的各种设备控制指令。服务器端接收到环境感知数据后,首先进行数据的清洗,除去数据中由于传感器故障或者数据传输造成的奇异数据,其次将数据存储到数据库服务器中用于数据的历史查询和环境数据统计分析,最后,服务器会根据消息队列遥测传输 (message queuing telemetry transport,MQTT)推送流程将数据推送到移动应用中。移动终端则通过接受数据查看设施农业内实时环境数据,当环境数据超过阈值后可通过终端发送控制指令,远程控制农业设施内的控制设备调节设施环境。
图1 系统总体架构图Fig 1 Overall architecture diagram of system
2.1前端模块设计
硬件结构如图2所示。
图2 前端硬件模块框图Fig 2 Block diagram of front-end hardware module
为准确采集农业设施内的环境信息,传感器节点选择了SHT11空气温湿度一体化传感器, 湿度精度在±4.5 %RH,温度精度为±0.5 ℃(25 ℃)[5];光照强度传感器为QY—150 A,精度为±2 %,响应时间为50 ms;TYX—CTWS1土壤温湿度一体化传感器,湿度精度为±2 %,温度精度为±0.15 ℃,通电后1 s稳定。
系统中选择了GTM900C模块,它是一种两频段GSM/GRRS无线模块,工作频段为EGSM900/GSM1800双频,模块中的主控制器可以实现信号的调制解调和信号的转换[6]。
前端设备采用STM32F103RBT6微处理器,该处理器是基于ARM Cortext M3内核的32位微处理器,具有2.0~3.6 V的宽电压供电范围,CPU工作频率最高可达72 MHz,同时拥有64 kB的Flash存储器和20 kB的SRAM存储器,具有21通道的12位A/D转换器,具有强大的数据处理能力,能快速处理各传感器采集的数据和处理控制指令[7]。
2.2通信协议的设计
前端硬件通过GPRS模块和服务器建立基于TCP/IP协议的Socket通信机制。前端硬件通过IP地址和端口号向服务器发送建立连接请求。服务器启动后监听指定的端口,当有请求到来时建立连接并接收数据,检查数据中设备物理编码和设备接入权限是否在系统数据库中,如果存在,则该连接被加入到连接池中进行数据的持续交互,否则关闭该连接。上传数据协议如图3所示。
1.1 研究对象 选取2014年1月至2016年1月本院收治的冠心病合并2型糖尿病患者为研究对象,采用随机数字表法,将患者分入辛伐他汀组、阿托伐他汀组、瑞舒伐他汀组。其中,辛伐他汀组患者,予以辛伐他汀(上海信谊万象药业生产)20毫克/次,1次/天,晨起空腹口服。阿托伐他汀组患者,予以阿托伐他汀(辉瑞制药有限公司生产)20毫克/次,1次/天,晨起空腹口服。瑞舒伐他汀组,予以瑞舒伐他汀(阿斯利康公司生产)10毫克/次,1次/天,晨起空腹口服。
图3 数据上传协议Fig 3 Protocol of data upload
当环境数据超过设置的阈值时,移动终端会产生警报通知,用户可在移动终端里发送设备控制指令,服务器会将该控制指令发送到具体前端硬件中,硬件接收到数据后检查物理编码是否是自己的,如果不是则丢弃该数据,如果是则检查CRC校验是否正确,如果正确则按照控制指令打开或者关闭指定的设备。其中,设备控制协议如图4所示。
图4 设备控制协议Fig 4 Protocol of equipment control
3.1移动终端软件设计
Android系统是一个流行的开源的移动终端操作系统,由应用程序、应用框架层、程序库、系统运行库和Linux内核组成。其中,应用程序由一个个Activity组成,提供UI界面与用户进行交互,而Activity是由Java语言开发的、XML语言控制UI布局[8]。本系统的终端设备应用软件由5个Activity组成,提供系统的5个主要功能:1)设备添加和管理;2)环境数据实时监控;3)历史数据查询;4)环境数据统计分析;5)系统设置。具体的移动终端软件操作流程如图5所示。
图5 客户端操作流程图Fig 5 Flow chart of client-end operation
3.2服务器数据推送设计
传统的客户端多采用Scoket通信机制从服务器接收数据,但这种方式使得服务器不能主动将最新数据发送给客户端。在设施农业环境监控系统中,用户需要掌握最新的环境数据,避免异常环境造成农业生产损失的发生。因此,需要采用新的通信机制完成客户端与服务器的数据交互。
3.2.1MQTT协议
在系统中选择使用了物联网传输协议——MQTT协议用于服务器端数据的主动推动。MQTT是一套轻量级跨平台的基于发布/订阅的消息传输协议,具有开放、精简、轻量级和容易实现的特点。MQTT协议由消息发布者、消息代理服务器和消息订阅者三部分组成。其中,消息发布者产生不同主题的消息并发布到消息代理服务器中;消息代理服务器一方面接收消息,另一方面根据消息的主题将消息发送给不同的消息订阅者;消息订阅者接收消息,根据协议解析数据[9]。
图6 MQTT协议模型Fig 6 Model for MQTT protocol
3.2.2消息推送流程
在系统中,服务器担任消息发布者和消息代理服务器两个角色,移动终端担当了消息订阅者的角色。当移动终端成功添加一个前端硬件设备后,服务器中记录了该硬件设备的设备号,并以设备号为一个主题存储到数据库,同时完成移动端完成订阅该主题消息的操作。当环境数据到达服务器时,服务器根据数据上传协议解析数据获得设备号,并根据设备号查找对应的主题,服务器根据MQTT协议生成一个带主题的消息发布到消息代理中,消息代理会把消息推送到订阅了该主题的移动终端。移动端获得消息后调用getText()方法获得数据,应用软件会根据数据是否超过环境阈值做出不同的响应。其中,没有超过阈值的数据,移动终端将解析后的环境数据,显示到实时监控的Activity界面中;对于超过或低于阈值的环境数据,移动终端将生成一个Notification状态栏通知,并伴随手机震动和提示音,提醒用户查看消息。
在北京市密云县一处种植葡萄的日光温室内部署本系统,对温室内的空气温湿度、土壤温湿度和光照强度等关键环境因子进行24 h连续监控。系统首先需要在温室内部署一套前端硬件设备,其次需要在移动终端软件中添加该硬件设备。初始化时,设置硬件设备每30 s采集并上传一次数据到远程服务器中。表1是2015年7月1日采集的部分数据。
表1 温室中部分环境数据
从表1中的数据可以看出:系统完整的采集了温室内一天的关键环境数据,证明系统运行稳定。在通过与温室内测量仪器所测数据进行对比后,可以发现,系统采集的数据精度范围在1 %以内,系统具有良好的准确性。
图7是移动终端终端实时环境监控的Activity界面。
图7 环境实时监测界面Fig 7 Real-time monitoring interface of environment
1)将物联网传输协议MQTT协议应用到监控系统中,可以有效管理和快速推送环境数据;2)开发以Android操作系统为基础的移动应用软件,使得用户可以通过一台移动终端设备对多个设施进行环境远程实时监控。3)开发的前端硬件在满足数据采集和上传的同时,具有价格便宜,操作简单等优点。在后期的测试中,证明了本系统在稳定性、实时性和鲁棒性上都有所提高,具有推广使用的价值。参考文献:
[1]阎晓军,王维瑞,梁建平.北京市设施农业物联网应用模式构建[J].农业工程学报,2012(4):149-154.
[2]李中华,王国占,齐飞.我国设施农业发展现状及发展思路[J].中国农机化,2012(1):7-10.
[3]陈智伟,苏维均,于重重,等.基于WSNs的农业温室监控系统的设计[J].传感器与微系统,2011,30(7):82-84,87.
[4]潘金珠,王兴元,肖云龙,等.基于物联网的温室大棚系统设计[J].传感器与微系统,2014,33(10):51-53,57.
[5]林飞龙,彭诗瑶.基于多传感器的高性能监控系统设计[J].传感器与微系统,2014,33(2):119-122,126.
[6]郭耀华.基于ZigBee和GPRS网络的智能变电站设备温度无线监测系统[J].仪表技术与传感器,2014(1):79-82.
[7]袁开鸿,魏丽君,唐冬梅.基于STM32平台的CAN总线车载式漏电流数字传感器[J].传感器与微系统,2014,33(3):118-120,124.
[8]李慧,刘星桥,李景,等.基于物联网Android平台的水产养殖远程监控系统[J].农业工程学报,2013,13:175-181.
[9]关庆余,李鸿彬,于波.MQTT协议在Android平台上的研究与应用[J].计算机系统应用,2014(4):197-200,196.
董静,通讯作者,E—mail:dongj@nercita.org.cn。
Design of facilities agriculture IOT environment monitoring system based on mobile terminal*
WANG Jun-jun1,2, DONG Jing2, YI Tong-chuan2, CHEN Tian-en2
(1.College of Information Technology,Shanghai Ocean University,Shanghai 201306,China;2.National Engineering Research Center for Information Technology in Agriculture,Beijing 100097,China)
The system through using IOT transmission protocol,message queuing telemetry transport(MQTT) message transmission protocol,connect front-end hardware,server with mobile-end,to achieve facilities agriculture environment remote and real-time monitoring.In system,front-end hardware uses STM32 microprocessor as core,which is composed of sensor module,equipment control module,GPRS module and power module,to realize data acquisition and transmission;server has data receiving,storage and analysis ability,also the server play role of message producer and message manager in MQTT message protocol.The mobile terminal software based on Android operation system,user can check real-time environment data and send equipment control order after installing application software on Android system mobile terminal.Test shows that the system runs stably,easy to use,high real-time performance,So the system can help user to monitor the facilities agriculture environment.
facility agriculture; environment monitoring; IOT; mobile terminal; message queuing telemetry transport(MQTT)
2015—10—27
国家科技支撑计划资助项目 (2013BAD15B05); 北京市农林科学院科技创新能力建设专项项目(KJCX2014041)
TP 277
A
1000—9787(2016)08—0087—03
王君君(1990-),男,安徽合肥人,硕士研究生,主要从事计算机应用研究。
DOI:10.13873/J.1000—9787(2016)08—0087—03