农业物联网数据交互方法的研究与应用
2017-05-30夏毅军田彬罗学恩
夏毅军 田彬 罗学恩
摘要 研究了一种农业物联网数据交互方法,设计物联网基于TCP/IP的数据交互流程和数据动态中转表触发存储机制,完成数据的接收、转发和存储。同时,分析了农业领域知识,将物联网采集控制数据与农业领域知识结合起来,建立农情数据字典,使农业生产者易于理解和使用农业信息数据。
关键词 农业物联网;数据交互;农情监测;远程采集控制
中图分类号 S126 文献标识码 A 文章编号 0517-6611(2017)28-0199-04
Abstract A kind of data interaction method for agricultural Internet of Things was studied.The data interaction flow and triggering and storage mechanism of data dynamic transit table for Internet of Things based on TCP/IP were designed to accomplish the datas receiving, retransmission and storage.Meantime, the knowledge of agricultural field was analyzed, and the acquisition and control data of Internet of Things were combined with knowledge in agricultural field.The agricultural condition data dictionary was constructed, which made agricultural producer understand and use agricultural information data easily.
Key words Agricultural Internet of Things;Data interaction;Monitoring of agricultural condition;Remote acquisition and control
农情监测是指对农业生产布局、农业环境状况和灾害等过程的监控,进而有效掌握农业生产状况[1],指导农业生产管理活动。随着农业物联网技术的快速发展,农情监测信息的获取方式从传统的人工获取逐渐过渡到应用物联网技术自动远程获取。农业物联网体系架构由3个部分组成:感知农情数据的感知层、传输数据的网络层和数据分析处理的应用层。现有的农业物联网技术重点在网络层和应用层解决数据交互的问题,常用的方法是通过使用网关节点向感知传感器设备等发送命令[2],传感器节点接收到命令后,向网关节点反馈感知的数据,网关节点将节点的数据上传到应用层供用户使用和决策[3],但现有的方法无法有效解决维持型物联网数据量大、碰撞多和实时性差等问题[4-5]。如何保证数据可靠稳定的交互,进而使农业物联网用户准确有效地控制作物生产是目前亟需解决的问题之一。面对海量的农情数据,笔者设计了一种农业物联网数据交互方法,设计数据接收存储转发流程和动态触发存储机制,完成数据的实时更新存储,同时分析了农业领域知识,建立农情数据字典,使农业生产者易于分析和使用农业物联网数据,进而实现远程管理人员有效全局管理配置作物资源。
1 农业物联网数据交互模块总体结构
农情物联网数据交互模块总体结构如图1所示。农情监测首先要分析农业领域知识,使用物联网传感器采集作物生长環境等农情信息。设计农业物联网数据交互模块,抛弃现有农业物联网方法中使用GPS模块、以太网或者WIFI形式的汇聚节点进行网关节点与传感器数据交互的方式[6],通过TCP/IP协议(即传输控制/网际协议)建立终端与服务器之间点对点的连接,将感知层采集的数据通过TCP/IP协议存储在下位机服务器端单一结构的实时更新数据表中。当服务器端中间表发生更新时,设计数据接收存储模块,触发器实时调用存储过程,将此时更新的数据存储到服务器端的实时表及历史记录表中。同时,分析农业领域知识,建立农情数据字典,将农情信息与存储的实时历史数据结合起来,完成农情数据的解析、处理及展示,用户通过Web端浏览器数据平台可及时便捷地查看当前农情状况。
2 农业物联网数据交互关键模块
2.1 服务器端数据接收存储流程
服务器端数据接收存储模块是传感器数据接收存储的关键部分,多线程程序在感知到传感器采集的实时数据后立刻将数据更新到中转数据表中,中转数据表接收更新操作指令后立即触发存储过程,存储过程根据数据字典进行数据解析,将数据实时更新到实时表和历史数据表中。服务器端数据接收存储流程如图2所示。整个过程的每个阶段都包含日志的记录,对该过程的每个环节进行监测及问题及时上传处理。
2.2 数据动态中转表 使用触发器技术[7],完成农情数据转发与存储。当采集数据的数据表发生更新时,使用触发器调用相应的存储过程,将当前更新的数据存储到对应的实时数据表和插入到历史数据表中,进而完成实时数据更新及历史数据存储等功能。分析传感器采集数据的特点,数据采集以同一地址为单位,同一时间内完成该地址下所有数据的更新存储操作。设计传感器采集数据存储到单一结构数据表,可以更加高效快捷地更新数据。数据中间表如表1所示,每行存储一个地址的所有数据,当某行数据发生更新时,调用触发器,将该行的数据实时存储或更新到数据库中。
2.3 数据字典
农情监测数据字典是在分析作物的种植状况、品种结构、管理状况和作物长势状况及病虫害状况的基础上,提取农情监测数据参数,实现分析与预估作物生长及灾情损失、预测作物未来产量的目的。分析农情监测的主要要素包括:①作物长势状况,如土壤温湿度、空气温湿度、降雨量、风向等作物生长环境状况;②物联网设备的状态监测和控制,如外遮阳设备的展开、闭合及停止等设备状态。分析農情监测的主要要素,建立农情数据字典
(图3)。农情数据字典分为农情采集数据字典和农情控制数据字典2个部分。农情采集数据字典存储用于记录作物长势信息的主要采集参数及参数的警戒值等基本信息。农情控制数据字典存储控制设备的开关及对应命令的信息,使用该字典可以通过命令查找到对应开关或者根据设备开关查找到可以执行的命令。
2.4 数据解析
数据解析流程如图4所示。当传感器等物联网设备上传农情数据时,设计中转数据表存储实时农情数据。同时,设计中转表实时更新触发器,当表存在更新时,调用该触发器进行数据库存储等操作,存储过程根据已经建立的数据字典,解析上传的农情数据,完成数据的接收存储等工作。
2.5 数据触发存储
触发器[8]是通过事件触发的方式进行逻辑处理及数据库操作的部件,它是一种与表事件相关联的特殊的存储过程。设置UPDATE触发器,当服务器端数据库中的某个表或字段存在更新或插入操作时, 自动触发相应的数据解析模块,将实时插入或更新的数据接收、解析和存储到服务器端的数据库表中。根据传感器等物联网节点的不同,设置触发器触发条件的逻辑表达式,将物联网节点的数据采集映射到表字段更新的行为方式中,当逻辑表达式为TRUE时,代表对应物联网节点设备进行采集或控制操作,实时反映物联网采集或控制状况。
數据存储过程模块是对物联网数据或命令的解析和响应,当触发器逻辑表达式成立,开始触发事件,将数据的值作为参数传递到数据存储过程模块中,此时存储过程开始运行,根据农情数据字典,自动索引到农情采集或控制设备的设备名称、区域及数据的参数名称,存储过程根据农情数据字典解析的结果将中转表更新的数据存储到相应农情感知模块中,完成数据解析和存储的整個过程。存储过程本身是已经编译好的数据库操作语言。使用存储过程,建立数据插入更新存储过程,以满足大量实时数据快速存储到服务器的需求。建立实时数据查询、历史数据查询存储过程,通过传递时间、地址等参数,快速完成数据库海量数据的分析、处理及存储,提高了数据存储的速度和安全性,提高远程数据存储的稳定性。
3 数据交互模块实现
3.1 数据采集控制命令下发
数据采集控制顺序如图5所示。命令分发分为采集命令和控制命令2个部分。当物联网传感器采集到农情数据后,实时通过中间件模块自动触发存储到采集数据中转表中,中转表根据农情数据字典自动解析当前更新数据的参数名称及农情区域,并将其存储到对应应用系统的实时和历史数据库中。当用户对采集的农情信息进行查询时,采集数据类从已经存储好的农情数据实时表或者历史表中查询出当前实时或历史数据,完成采集数据、农情数据的查询及更新操作。
当用户对物联网控制柜等进行控制时,首先下发对应开关的控制命令0/1或0/1/2(控制字典对应开关的控制量),命令直接下发到控制中转表控制字段中,中间件以轮训的方式对控制表进行扫描,发现命令更新立即接收。中间件接收到用户下发的命令,首先进行命令接收确认返回确认命令9,以便通知用户设备是否可控及设备是否处于正常工作状态。中间件接收并确认命令后,通过TCP/IP协议完成对对应设备开关的控制操作,并返回控制结果0/1或0/1/2(正常状态)或者9(非正常状态)到中转表返回字段中,中转表命令更新时,自动触发控制结果返回操作,根据控制数据字典表进行0/1或0/1/2命令解析,查看设备是否正常执行,并将结果返回到用户操作界面上。
3.2 数据采集控制操作流程
采集控制操作流程如图6所示。该系统分为客户端、服务器端和采集控制中间模块3个部分,其中客户端是用户进行采集数据预览和控制的主要用户界面。服务器端进行业务逻辑的处理,采集控制中间模块负责与硬件数据的接收转发存储。当传感器采集到农情数据时,自动上传到服务器端,服务器端接收到数据后根据数据字典进行解析,进而完成数据的接收存储过程。用户进行农情设备控制时,首先将控制命令发送到控制中转模块中,模块接收到命令返回接收确认命令。农情设备执行接收过程中,服务器端以轮训的方式在一定时间内扫描采集控制中间模块,当返回控制结果时解析返回到页面,否则超时返回控制失败。
4 案例应用
笔者以南京市东三乡农产品专业合作联社的农业物联网系统提供的数据为支撑,通过传感器连接数据交互模块将数据更新到单一数据表中,每次更新都会触发相应的更新触发器事件,将数据实时更新到实时数据库表中,并存储到历史数据库表中。同时,开发农业领域知识与物联网数据相结合的农情监测Web应用模块,实现以农业数据为基础,以农业知识为指导的农情监测分析。物联网系统实现界面如图7所示。目前,平台远程存储及更新数据达10万多条,性能快速稳定,同时平台存储专家知识上千条,涉及常见品种的作物管理栽培知识。平台设计以智慧农业[9]的理念、精准农业的手段建设农业示范区,充分应用现代信息技术成果,集成应用计算机与网络技术、物联网技术等及专家智慧,实现农业可视化远程诊断、远程控制、灾害预警等智能管理,引领现代农业高新技术的快速发展与应用。
5 结语
(1)设计农业物联网数据交互模块,通过采用基于TCP/IP协议的点对点交互方法,设计数据交互流程,完成农情数据实时接收和存储工作,保证数据传输存储的可靠性和实时性,解决了客户端应用平台接收获取农情信息不准确、不及时等问题,进而使农业生产者准确有效地通过信息控制作物生产。
(2)分析提取作物生长的农业领域知识,建立农情数据字典,将物联网采集数据与农情数据结合起来,设计并开发易于农业生产者理解的Web远程农情监测模块,系统采用B/S架构,易于访问,从而解决了农业物联网数据不易理解和使用的问题。
(3)通过使用该农情监测系统,农业生产者可以快捷地查看当前作物的农情状况,帮助农业生产者采取合理的农业生产管理措施。
参考文献
[1]曹卫星,朱艳.数字农作技术[M].北京:科学出版社,2008.
[2] 赵亮,黎峰.GPRS 无线网络在远程数据采集中的应用[J].计算机工程与设计,2005,26(9):2552-2554.
[3] 李福童.物联网感知层实时数据处理技术研究[D].沈阳:辽宁大学,2014:5-20.
[4] 刘强,崔莉,陈海明.物联网关键技术与应用[J].计算机科学,2010,37(6):1-4,10.
[5] 孙柏林.物联网及其电气应用研究[J].电气时代,2010(5):25-28.
[6] 杜雯.物联网信息系统数据传输技术[J].工业控制计算机,2014,27(8):95-96.
[7] 康效龙,张玉清,田玉敏.触发器在实现数据库安全方面的新应用[J].计算机工程,2005,31(19):157-159.
[8] 张沪寅,陈珉,文小军,等.主动实时数据库系统触发器模型的研究[J].武汉大学学报(信息科学版),2002,27(6):642-646.
[9] 江志峰.智慧农业[M].北京:电子工业出版社,2013.