1、温室物联网测控管理系统开发与数据同步研究 李萍萍 陈美镇 王纪章 周金生 夏得峰 江苏大学现代农业装备与技术教育部重点实验室 南京林业大学生物与环境学院 摘 要: 为实现温室环境信息高效监测,开发了物联网测控管理系统的通用平台,主要包括基于 Android 的智能网关以及基于 Google Web Toolkit 的远程 Web 服务器,并制定了系统的数据同步通信协议。根据数据采集单元配置信息和预先设定的界面显示风格,智能网关和 Web 服务器的应用程序能够自适应地生成温室环境监测界面,动态地解析监测传感器数据并实现数据库存储,以 Http post 网络传输机制实现数据采集单元配置信息、监测
2、传感器数值等数据在二者间的同步。试验结果表明温室物联网系统在实际应用中具有较高的稳定性,有效地避免了由于传感器和数据采集单元节点变更导致 Web 服务器和智能网关应用程序的二次开发。关键词: 物联网; 智能网关; Web 服务器; 数据同步; Http post; 界面生成; 作者简介:李萍萍,教授,博士生导师,主要从事设施农业工程技术研究,E-mail:收稿日期:2014-11-21基金:“十二五”国家科技支撑计划资助项目(2014BAD08B04)Development of Monitoring Management System and Data Synchronization for
3、 Greenhouse IOTLi Pingping Chen Meizhen Wang Jizhang Zhou Jinsheng Xia Defeng Key Laboratory of Modern Agricultural Equipment and Technology,Ministry of Education,Jiangsu University; Abstract: In order to realize the high efficient monitoring of environment information,a kind of common monitoring ma
4、nagement system of the internet of things( IOT) for greenhouse was introduced. The system mainly consisted of an intelligent gateway based on Android system and a remote web server based on Google Web Toolkit. Also the monitoring data synchronous communication protocol between the gateway and remote
5、 web server was formulated. According to the data acquisition unit configuration information and the preset display style of the interface,the monitoring interface was adaptively generated by the gateway and server application program,the sensor data was dynamically parsed and the data storage in da
6、tabase was realized. Using the http post transmission mechanism,the applications of gateway and web server also realized the data synchronization of monitoring sensor parameters data and data acquisition units configuration information transmitted on the internet. The test results showed that the gr
7、eenhouse IOT system and data synchronous communication were of high stability in practical application,and it can effectively avoid second software development which resulted from the changing of sensors or data acquisition unit nodes. The system achieved the function of monitoring management and da
8、ta synchronization for greenhouse IOT system,and it provides a common platform for greenhouse intelligent monitoring and control.Keyword: Internet of things Intelligent gateway Web server Data synchronization Http post Interface generation; Received: 2014-11-21引言近年来,随着信息技术的快速发展,物联网技术在设施农业中得到了越来越多的应用
9、。传感器技术、无线网络、微型计算机技术、互联网的发展,进一步促进了温室环境信息的监测管理。典型的温室物联网系统包括感知、传输、应用 3 种层次。感知层利用传感器技术进行环境信息获取,主要包括温室内的温度、光照、湿度、CO 2浓度等气候环境信息,土壤湿度、p H 值、EC 值等土壤环境信息,以及室外的气象信息。传输层通过无线网络技术,主要以 Zig Bee 技术传输至物联网的网关,网关实现信息的统一汇聚和计算处理,并传输至互联网。远程应用服务器实现温室监测数据的存储,实现面向用户的门户网站或者以客户端的形式实现温室环境监测。考虑到传感器易受温室环境多变等因素的影响经常需要变更,或者用户需要另外增
10、加同类型的传感器数量进行监测温室内的环境差异等情况,实现传感器和数据采集单元的变更所带来的智能网关的信息处理与传输以及远程服务器信息处理与传输二者在软件层次上的自适应,成为一个重要的研究技术。Android 是 Google 公司开发的基于 Linux 平台的开源操作系统,由各种驱动和资源管理的 Linux 内核层、C /C + + 和虚拟机组成的系统运行库、Activity和 View 等组成的应用架构层、应用层组成。GWT( Google Web Toolkit) 也是Google 公司发布的基于 Java 语言开发的 AJAX( Asynchronous Javascript and X
11、ML) 应用工具包,通过使用 GWT 编写 Java 代码和 HTML 构造 AJAX 应用界面与服务器实现异步通信,应用程序支持主流浏览器。基于上述 2 种方法,本文开发基于 Android 系统的智能网关应用软件,以期实现网关 APP 模式的温室环境信息界面的动态生成和数据的动态显示; 开发基于 GWT 的温室环境监测数据服务和AJAX 应用网站,以期实现 B /S 模式的温室环境信息界面的动态生成以及数据的动态显示;设计以 Http post 传输机制实现温室环境信息的数据同步。1 系统硬件结构为实现温室物联网测控的管理,部署了如图 1 所示的系统硬件结构。系统主要分为数据采集单元 Zi
12、e Bee 网络群( 温室信息实时感知) 、Zig Bee 汇聚节点、智能网关( 感知层和服务器间信息传输桥梁) 、服务器( 数据中心和应用程序) 、用户远程监控设备( 浏览器) 等模块。数据采集单元采用太阳能+ 蓄电池系统进行供电,采集温室的光照、温度、湿度、CO2浓度等信息,采集温室外的气象信息,采用星型的 Zig Bee 通信协议自组织方式形成无线传输网络群与 Zig Bee 汇聚节点的无线通信。Zig Bee 汇聚节点将Zig Bee 协议数据流与串口通信( RS-232) 数据流进行相互转换,并接入智能网关。智能网关以 Exynos4412 为核心处理器,采用 Android 4.
13、0 为操作系统,实现采集单元通信数据流的解析和封装、温室环境信息存储和指令下发等功能,并以 3G 或 Wi Fi 模块接入互联网,实现与远程服务器数据通信。服务器实现温室环境信息的存储,采用 B /S 结构构建用户监控设备浏览器前端 WEB 访问。2 系统软件结构如图 2 所示,系统的软件模块分为基于 Android 系统的智能网关应用软件和基于 Google Web Toolkit 开发工具包的服务器应用软件两大模块,二者的通信软件模块采用 Http post 传输机制。由于 XML( 可扩展标记语言) 具有跨平台性的数据描述功能和多种数据解析工具,系统采用基于 XML 数据结构描述实现网络
14、数据在智能网关和远程服务器间的跨平台传输。图 1 系统硬件结构 Fig. 1 Hardware structure of system 下载原图图 2 系统软件结构 Fig. 2 Software structure of system 下载原图2. 1 智能网关应用软件采用 Eclipse 开发工具和 Java 语言,结合 Android 开发插件包,作为智能网关应用软件的开发环境。软件模块主要包括数据采集单元配置、Zig Bee 网络数据解析、网络传输数据封装、环境信息监测界面生成、数据同步通信。2. 1. 1 数据采集单元配置数据采集单元主要用来采集传感器信息并以无线或者有线的方式发送至
15、智能网关,其配置主要是用户通过智能网关应用界面输入相关的数据采集单元的基本信息,包括数据采集单元 ID、监测传感器参数名称、监测传感器参数 ID、单位、地点、监测参数的始字节和终字节( 设通信协议数据流为 B1,BN,第 X 至第 Y字节表示传感器数值 BX,BY,则 X 为始字节,Y 为终字节,其中 1 XYN) 、数值转换系数、监测参数上下限范围,进行该节点的配置和注册,并存储至SQLite 数据库。2. 1. 2 Zig Bee 网络数据解析Zig Bee 网络数据解析主要是实现温室中的数据采集单元组建的 Zig Bee 网络群发送至网关的数据流提取出实际的传感器采集数据。系统首先通过
16、JNI( Java Native Interface) 取出串口通信数据流首字节对应的数据采集单元 ID,查询数据库中的数据采集单元配置表格获取各监测传感器参数数值在数据流中始字节、终字节、监测传感器参数 ID 等描述信息。根据始字节、终字节的数值,将通信协议数据流中的 16 进制传感器数值,转换成 10 进制后根据数值换算系数计算出实际值。最终,生成以监测传感器参数 ID 为列属性的监测传感器数据表,存储至 SQLite 数据库。2. 1. 3 网络传输数据封装为实现温室物联网数据在互联网的跨平台传输,采用 XML 实现数据的封装。系统将数据采集单元的配置信息进行 XML 数据结构的描述封装
17、( 表 1 的第 2 11 列) ,将 Zig Bee 网络数据解析出的监测传感器参数数值进行 XML 数据结构的描述封装( 表 1 的第 4、12、13 列) 。表 1 基于 XML 的网络传输数据封装 Tab. 1 Network transmission data package based on XML 下载原表 2. 1. 4 环境信息监测界面生成环境信息监测界面的成员主要包括: 地点、监测传感器参数的名称、数值、单位、数值范围的趋势图。实时监测界面生成的主要方法是: 查询数据采集单元配置信息中“地点”的描述并进行归类,归类后的每项作为一个监测区域的标题。再获取本监测区域内的各个监测
18、传感器参数 ID 所对应的监测传感器参数名称、单位、最大值、最小值的对应关系,并查询监测传感器参数 ID 对应的由 Zig Bee 网络数据解析模块解析出的实际数值。这样就将参数名称、实际数值、单位、由实际数值与最大值和最小值计算出的百分比进度条作为本监测区域的每一行进行生成。历史数据监测界面生成的主要方法是: 通过下拉列表的形式显示监测区域的各个标题,对下拉列表设置监听选中操作,当对下拉列表的某个监测区域选中后,生成本监测区域的监测传感器参数名称的按键,再对按键设置监听点击操作,如果被点击则触发查询本按键的监测传感器参数 ID 所对应的监测数值,结合查询时间段、最大值、最小值描述,生成历史数
19、据曲线图。2. 1. 5 数据同步通信数据同步通信主要是智能网关向服务器发起 Http post 请求并处理服务器的回应信息,包括 3 种类型的数据通信:( 1) 用户通过点击“同步按钮”,实现网关向服务器的同步数据采集单元配置信息。( 2) 网关周期性( 20 s) 发起数据量较少的“心跳”连接到服务器,用于判断网关和服务器间网络通信状态,以及解决服务器不能主动向网关发起 Http post通信而进行主动同步数据的问题。网关根据接收的服务器响应结果判断是否有服务器主动发起同步网关的数据采集单元配置的信息,如果有则解析并更新数据库。( 3) 网关周期性( 周期由用户通过参数设定) 地同步监测传
20、感器数值信息,其原理为,首先,程序初始化时建立本地文件 sensorvalue. xml 用于存储监测传感器参数的数据。然后,每当传输周期到达时,判断“心跳”连接的服务器通信状态: 如果服务器通信状态为成功,将本次的 XML 封装数据写入到 sensorvalue. xml 中的根节点末尾,再读取本文件的内容( 之前网络连接失败则有多条记录,之前网络连接成功则有一条记录) ,通过 Http post 机制上传至服务器,并判断服务器是否正确响应,正确响应则清空 sensorvalue. xml 中的记录,否则保留记录; 如果服务器通信状态为失败,则本次的 XML 封装数据插入到 sensorva
21、lue. xml 中的根节点末尾,不发起 Http post 请求。数据同步通信流程如图 3 所示。图 3 网关的数据同步工作流程 Fig. 3 Process of data synchronization in gateway 下载原图2. 2 Web 服务器应用软件以 Eclipse 为开发工具,结合 GWT 开发插件包为开发环境,Java 为开发语言,实现 B /S 结构的 AJAX 交互式网页应用。软件模块主要包括数据采集单元配置、温室环境信息监测界面生成、数据同步通信、故障报警等。2. 2. 1 数据采集单元配置根据用户在浏览器上输入的数据采集单元的基本信息进行注册,浏览器前端将数
22、据发送至服务器后台并存储至 My SQL 数据库。2.2.2 环境信息监测界面生成浏览器前端通过 GWT 的远程方法调用接口向服务器请求数据,实现 AJAX 技术的交互式网页界面更新。请求查询数据库中的数据采集单元配置信息表中的“监测传感器参数 ID”、“地点”、“参数名称”、“单位”、“最小值”、“最大值”等描述等信息。浏览器前端的实时数据监测界面根据“地点”描述进行类型归类,每类作为温室环境的监测区域标题,再判断属于某一“地点”下的所有“监测传感器参数ID”和所对应“监测传感器参数名称”、“单位”、“最大值”、“最小值”。同时浏览器前端周期性地向服务器请求“监测传感器参数 ID”对应的温室
23、环境监测最新数据值,最终填充至浏览器前端指定的 View 组件中,进而显示温室环境实时监测界面。浏览器前端的历史数据界面的生成主要是根据“地点”归类的每一项生成下拉列表的每一项,设置下拉列表每一项选中后进行监听,当被选中则向服务器后台查询本“地点”下的所有监测传感器 ID 以及对应的名称,作为控件按钮的显示名称,设置控件按钮的点击监听操作,当被点击后,根据用户输入的查询时间段,向服务器后台查询监测传感器参数 ID 对应的历史数据,显示至表格中,并显示历史数据趋势图。2. 2. 3 数据同步通信服务器使用 Http Servlet 的 dopost( ) 方法接收智能网关发起的 Http pos
24、t请求,提取请求的协议类型进行判断,主要包括 3 种处理类型,软件流程如图 4所示。图 4 服务器的数据同步工作流程 Fig. 4 Process of data synchronization in server 下载原图( 1) 当协议为“同步数据采集单元配置”信息,则对消息内容基于 XML 编程工具解析出数据采集单元配置的各个描述信息,更新数据库中数据采集单元配置表格,“match_OK”写入回应数据流。( 2) 当协议为“心跳连接”时,判断浏览器前端是否有点击“同步”按钮后发送至服务器后台的同步网关数据采集单元配置的命令标志,有则将数据进行 XML数据结构的描述封装,并设置协议类型为“
25、同步数据采集单元配置”,转换成字符串后写入回应数据流中。( 3) 当协议为“同步监测传感器数值”时,判断封装数据( 封装的 XML 数据 SV 子节点) 的记录数,通过软件的循环,从上到下对逐条数据内容通过 XML 编程工具解析出各监测传感器参数 ID 和对应的数值,写入 My SQL 数据库的传感器数值表格,直至完成后“sensor_rec_OK”写入回复字符流。2. 2. 4 故障报警查询数据采集单元配置表中的温室环境监测传感器参数的上、下限、以及固定时间段内的变化率,监测传感器参数的变化必须在这三者的范围之内,否则在浏览器前端进行报警提示,并结合 Twilio 提供的通讯模块 API,以
26、短信形式将故障信息发送到指定用户的手机号码。3 系统实际应用利用本系统在江苏大学实验温室进行试验,使用昆仑海岸公司的温湿度传感器、CO2变送器、光照度变送器、土壤湿度作为温室内环境信息采集的传感器,采用北京富奥通科技的 FRT-LC 智能自动气象站采集温室外气象信息。数据采集单元采用顺舟科技 SZ06 系列产品,数据采集单元与传感器之间使用 RS-485 通信获取监测传感器数值。数据采集单元与汇聚节点形成 Zig Bee 无线网络,实现一定范围内的无线传输,数据采集单元采用固定周期的主动上报方式。智能网关与Zig Bee 汇聚单元之间串口通信速率为 9 600 bps,二者部署在温室基地附近的
27、机房中。GWT 应用程序以 Tomcat 作为 Web 应用服务器并运行花生壳域名解析软件部署在江苏大学现代农业装备技术实验室服务器中。3. 1 网络节点配置监测传感器参数的数据流协议对系统是已知的,在智能网关或者浏览器前端网页的数据采集单元配置界面上输入如表 2 所示的配置信息并保存,其中单个数据采集单元( 空气温湿度、自动气象站)采集多个传感器监测参数,在系统应用中需配置成同个数据采集单元 ID,不同的监测传感器参数 ID,正确配置好监测传感器参数数值在通信数据流的起字节、终字节信息。以表中 E1 节点为例,光照度采集的 16 进制数据流为( E1 04 04 00 01 86 A0 C8
28、5C) ,光照度为该数据流的第 4 7 字节即 000186A0( hex) ,数值转换系数为 1,结合单位可知光照度为 100 000 lux。表 2 数据采集单元配置信息 Tab. 2 Data acquisition unit configuration information 下载原表 3. 2 数据同步服务器与智能网关以 Http post 传输机制实现了数据采集单元配置信息的数据同步,及其监测传感器参数数值的数据同步,工作流程如图 5 所示。在服务器或者智能网关的任何一方软件界面上增加、减少或者修改数据采集单元配置信息后,点击同步按钮,被同步方则会实现各自数据库中的数据采集单元配置
29、表格的更新。本文设定智能网关以 5 min 的时间周期将各监测传感器参数数值信息同步到服务器的 My SQL 数据库中。3. 3 温室环境监测界面生成采集单元配置信息同步后,智能网关和服务器应用程序重新运行,首先查询数据库中的数据采集单元配置表格,判断地点的类型,有东温室、西温室、温室外。再根据各个地点下的监测传感器参数名称、单位、监测传感器参数 ID,根据预先设定的界面显示风格,对号地填充到指定的界面组件。并实时查询监测传感器参数 ID 所对应的数值信息更新到界面的指定位置。图 6a 为基于 Android 系统的智能网关生成的温室环境实时监测界面,图 6b 为基于 GWT 的浏览器前端生成
30、的温室环境实时监测界面,二者的界面显示风格不同。图 5 数据同步流程 Fig. 5 Process of data synchronization 下载原图4 系统性能测试将西温室的土壤湿度传感器移动到东温室进行采集,在浏览器的数据采集单元配置界面上将西温室的土壤湿度修改成属于东温室,名称设定为“土壤湿度二”,同步智能网关数据后,则双方的监测界面重新进行了更新,Zig Bee 网络解析模块也自适应地处理该节点的解析和数据存储,监测传感器参数的数值在新界面模式实时更新,如图 7 所示。同样地,在智能网关的数据采集单元配置界面进行配置,随后同步至服务器,二者监测界面同样进行更新,得到的效果和图 7
31、 一致,有效地避免了监测传感器的变更导致应用程序界面的重新设计。图 6 温室环境参数监测界面 Fig. 6 Real time monitoring of environmental parameters in greenhouse 下载原图(a)智能网关(b)浏览器前端图 7 监测界面新生成 Fig. 7 New generation of monitoring interface 下载原图(a)智能网关(b)浏览器前端为验证系统的稳定性,进行了为期 7 d 的试运行,每隔 5 min 存储一次温室环境监测传感器参数的数值并与服务器进行数据同步。运行期间,将服务器的网络从12: 00 14:
32、 00 断开 2 h,网络恢复前的 sensorvalue. xml 文件总体内容为每次未上传的封装数据插入到根节点MSG末尾,且保存了多条SV子节点封装的数据。服务器网络恢复后,查看智能网关的 SQLite 数据库和服务器的 My SQL 数据库,进行各监测传感器参数历史数据比对未有数据缺失现象。图 8b 为浏览器前端显示的东温室的空气温度历史数据趋势图,与图 8a 对比可看出,通信网络断开后,智能网关在本地文件存储了传感器数值的封装。通信网络恢复后,智能网关将网络中断期间的多条传感器数值封装上传至服务器,服务器进行多个传感器数值封装的数据进行解析并存储至数据库中。图 8 东温室空气温度历史
33、数据 Fig. 8 Air temperature history data of east greenhouse 下载原图(a)智能网关(b)浏览器前端5 结束语构建了温室物联网测控管理系统,包括 Zig Bee 协议数据采集单元网络群、智能网关、远程服务器、用户浏览设备,开发了智能网关和 AJAX 服务器的应用程序,实现了以下 2 点功能。1 智能网关和 B/S 模式服务器自适应地根据数据采集单元配置信息生成温室环境参数监测界面,自适应地显示监测传感器数值和保存数据,实现了温室物联网管理系统的环境监测。2 智能网关和远程服务器采用 Http post 传输机制和 XML 封装数据的方法,实现数据采集单元配置信息、监测传感器参数的跨平台传输实现数据的同步。以上功能的实现以及系统的稳定运行,有效地解决了温室物联网应用中,动态增减传感器或者数据采集单元而造成系统配套应用软件的二次开发,为农业信息的监测和管理提供了通用的平台。