Kaa技术在农业物联网中应用的研究
2019-10-11张江南赵树林
张江南,王 海,赵树林
(青岛农业大学 网络管理中心,山东 青岛 266109)
0 引 言
农业物联网是计算机、互联网、移动通信等信息技术在农业领域的高度集成,是农业信息化、智能化的必要条件。物联网技术应用到农业的生产、经营、管理和服务全产业链中,改变了传统农业模式,加快了农业现代化的发展[1-5]。目前的农业物联网系统大都处在较为偏远的位置,系统分散独立,数据大都是单独存储、数据不流通。由于农业物联网系统想要获取有价值的数据是一个长期、漫长的过程,农业数据采集周期长,传感设备种类和数量繁多,所以需要对农业物联网数据和设备进行有效管理。
文中采用Kaa技术来解决多农业物联网系统的设备和数据的管理问题。Kaa是一种用于物联网开发的多功能的中间件[6],用于实现应用层和感知层之间的通信。目前的农业物联网系统十分独立,前端设备型号、开发语言不统一,并存在兼容性问题。Kaa的使用与硬件本身无关,以软件的形式兼容任何类型的连接设备,所以无论是对现有的系统改造,还是新的系统都有较为广泛的应用前景。目前Kaa的底层设备支持传统的arm系列、树莓派系列,语言支持C、Python和Java等[7-11],普适范围广,基本适用于市面上使用的各类型设备,极适用于传感器种类繁多、前端控制设备各异的农业物联网系统。
1 整体设计
传统的农业物联网系统设计主要包括应用层、网络层和感知层。应用层主要是服务器端的设计,主要包括数据的存储、管理和分析,以及交互界面的设计;网络层是通过各种网络通信方式,实现网络层和应用层之间安全有效的数据传输;感知层是通过各种传感设备,实现前端的信息采集[12-16]。文中通过研究Kaa技术,设计基于Kaa技术的农业物联网系统[17]只包括应用层和感知层的大二层结构。相对于传统农业物联网系统,这种大二层结构不需要考虑传统网络层数据传输存在的安全性和服务器端接收多农业物联网报文的数据解析问题,系统的数据传输需要保证以太网的正常使用。设计的整体架构如图1所示。
系统应用层为“服务器+Kaa server”和物联网平台。在服务器端安装Kaa server组件,把其整体作为整个系统数据接收端、数据的存储中心和中转站。根据系统需求设计农业物联网设备和数据模块,以模块的方式与前端采集设备进行对接,进而实现前端传感设备和数据的管理。服务器端通过提供接口和组件的方式与物联网平台进行对接,用户可以直观获取前端信息,方便对系统的管理。
图1 整体架构
系统感知层为“远端设备+Kaa SDK”,由分散的实验大田、物联网大棚和温室等农业物联网前端感知环境构成,是系统的监测对象。在远端设备的控制器内嵌入服务器端所对应的Kaa SDK组件,传感设备的状态和采集的数据通过组件内的传输通道与远端服务器进行数据传输。
2 详细设计
该研究在远端的服务器内搭建了Kaa server作为数据交换的接收端,根据农业物联网前端采集需求创建采集模块。针对每个模块进行单独的数据传输、存储和管理,并根据数据格式分项存储在搭建在服务器内的sql数据库中,服务器端架构如图2所示。
图2 服务器端架构
系统设计的服务器作为数据的中转站,其他使用者以用户的方式进行使用,由管理员进行统一管理。服务器端通过为农业物联网平台提供API接口的方式,通过与Kaa server中的应用模块进行对接,实现与农业物联网平台的数据交互。
远端传感设备采用树莓派3b+作为控制设备,在其中安装了与服务器端Kaa server相对应的Kaa SDK组件。传感器设备通过与相应的SDK组件内的模块进行对接,实现与服务器端Kaa server的对接,进而实现远端采集设备与服务器端数据的双向传输。
3 系统软件设计
根据系统需求设计软件结构,包括Kaa server、Kaa SDK、农业物联网应用、农业物联网平台、数据库、信息采集模块和控制模块七个部分,如图3所示。
图3 系统软件结构
Kaa server是整个系统的核心,负责系统的数据中转和设备管理,实现整个系统数据的双向传输;Kaa SDK用来实现远端设备和服务器端的连接,负责接收Kaa server发送来的命令和返回相应的数据;农业物联网应用负责具体配置农业物联网的各项参数,包括各个参数的结构、名称、状态和控制指令等;数据存储模块用于根据农业物联网应用分项存储采集到的各种农业物联网数据,当有信息变化时写入或查询数据库;信息采集控制模块采用RS485通信方式,通过modbus-RTU协议向各个传感器发送读取指令,进而获取数据;控制模块通过GPIO接口与控制设备进行连接,通过其输出高低电平控制设备的启停;农业物联网平台主要是用来实现农业物联网系统的展示,方便用户对系统的使用和管理。
传统的农业物联网系统的数据传输过程需要远端控制设备按一定延时向服务器端发送数据报文,服务器端通过接听相应端口并进行报文解析获取相应的数据。该设备通过使用Kaa技术将整个系统从软件层面上连接成一个整体,整个系统由服务器端的Kaa server进行控制,数据传输过程中数据和控制命令全都是单模块传输,无需再进行数据解析。整个系统的流程如图4所示。
图4 系统流程
4 实验结果
为了验证Kaa技术数据传输的稳定性,选取了市面上常用的基于ARM9的TX2440、基于ARM11的S3C2410和树莓派3b作为农业物联网的远端测试设备,服务器端采用Kaa server作为数据的接收端,分别对这3类设备做了1 000次的数据传输测试,测试结果如表1所示。
表1 数据传输测试结果
农业物联网设备的管理是通过Kaa server实现的,通过Kaa server对各类传感设备的各项参赛进行设置,管理员给使用者提供用户的方式进行使用,设备管理界面展示如图5所示。
图5 设备管理界面
5 结束语
根据测试结果可知,Kaa技术可以提供十分稳定的数据传输环境,并可以满足农业物联网感知层和应用层两端的功能需求。文中的目的是设计一种对多农业物联网系统设备和数据进行集中管理的解决方案,通过运用Kaa技术将分散在各地的农业物联网设备和数据进行统一管理,进而实现农业数据的集中存储,为后续的农业大数据分析创造实验环境。相对于各种基于云的农业物联网系统,数据的存储用户的服务器内,由用户来掌控数据源,Kaa技术只是作为服务器与前端设备的中间件,不会受到外界的限制。通过应用Kaa技术,还解决了不同农业物联网系统底端设备兼容性差的缺陷,降低了系统的开发难度和工作量,因此具有一定的应用价值。