基于IPv6和异构无线传感网络智能网关型的农业物联网系统设计

2018-08-01 07:53廖建尚
江苏农业科学 2018年13期
关键词:服务程序智能网无线网络

廖建尚

(广东交通职业技术学院计算机工程学院,广东广州 510650)

《“互联网+”现代农业三年行动实施方案》[1]提到在农业物联网区域试验工程方面,要大力推进物联网在农业生产中的应用,在国家现代农业示范区率先取得突破,建成一批大田种植、设施园艺、畜禽养殖、水产养殖物联网示范基地。我国是一个农业大国,不同的应用领域,其物联网实施特点不一致,导致了物联网在农业生产中的应用发展较为缓慢。物联网技术在农业生产中的应用研究引起了越来越多的学者关注,其中智能网关在农业物联网系统中是一个较为关键的技术,承担了数据的汇集、封装和传输,目前对农业物联网智能网关的研究还非常少,尤其多网络融合的智能网关研究更少。

智能网关是指一种能够汇集、分析、封装、转发数据与信息的装备与技术。美国、日本在精准农业领域方面已经有了产业化应用,荷兰有较好的农业高效生产体系[2],韩国建有农业科技服务体系,促进了农业物联网技术的发展[3]。我国农业物联网逐渐有了一定的发展,在环境监控、精准农业等方面有一定的应用[4-5],但关于智能网关的研究还比较少。智能网关在智能家居、热力管网系统、水箱控制等领域有了一定的研究[6-9]。

有学者提出了农业物联网系统的设计方法[10-11],但是都没有提到智能网关的设计。赵小强等设计了1种基于ZigBee/3G的物联网网管系统,用于水箱温度的监控,但在应用方面有一定的局限性[12]。张海辉等提出1种基于WinCE系统的可配置无线传感网络WSN(wireless sensor network)网关体系结构ReGA(Re-configurable Gateway Architecture),能实现现场可视化设备和监测综合管理,但其设计平台并不适用在其他Linux等开源系统的应用[13]。

有一些学者对异构型网关进行了研究。王子卿等提出了适用于水产养殖环境监测系统的异构网关,实现了养殖水域采样数据的查询和处理,但仅仅只有一个传感网络,异构网关在应用层的无线传输网络,不适用在复杂的农业环境的监控[14]。谭立志等提出1种基于ARM+FPGA的智能家居异构网关的设计,实现ZigBee网络、Internet网络、无线局域网络(Wi-Fi)、家庭设备、家居环境传感控制网络等多种网络的融合,但是缺乏对IPv的支持,也不适用与数据量大的农业环境[15]。陈美镇等提出了基于Android系统的温室异构网络环境监测智能网关设计,初步实现了温室环境监测,仅仅用于ZigBee、RS-485、Wi-Fi 3种网络的环境数据监测,没有设备的控制功能和IPv6的功能[16]。

还有一些学者对IPv6网关进行了研究。向敏等设计了1款应用于智能电网的IPv6多接入通信网关,但仅仅局限于电网领域[17]。姚崇高等提出了1种基于IPv6的家庭网关设计,但仅局限于家庭环境[18]。霍宏伟等提出将IPv6无线传感器网络以太网接入网关的设计,但缺乏异构网络的构建[19]。

智能网关在农业物联网的研究中有一定进展,但也存在不足,主要体现在农业物联网涉及领域多,如大田种植、设施园艺、畜禽养殖、水产养殖等不同系统。不同的系统采用的信息监控的技术要求不一致,过去单一的IPv6系统和无线传感网络无法满足日益发展的农业系统,难以实现农业物联网的快速和广泛应用。因此,本研究提出了1种基于IPv6和异构型无线传感网络农业物联网智能网关设计方法,采用不同无线网络满足不同的农业系统需求。

1 系统架构及网关设计

农业物联网系统需要实现2个方面的功能,一是农作物生长环境信息采集与监测,如空气的温湿度、光照度、土壤湿度、二氧化碳浓度、各种微量元素监测等等;二是农作物环境控制,如喷淋、灌溉、遮阳罩的控制等等。本研究提出了1种基于IPv6的智能网关农业物联网架构的设计方法,详细功能如图1所示。农业物联网系统需要实现数据的采集和转发,其中节点的数据采集通过3种无线网络实现。3种无线网络分别是802.15.4、蓝牙和Wi-Fi,并通过智能网关实现和应用层的通信。

2 基于IPv6智能网关设计

农业物联网系统需要在感知层实现农业环境信息采集与监测农业环境控制,感知层实现的环境采集和控制需要通过智能网关和应用层通信。本研究设计了1种IPv6智能网关,集成了3种无线传感网络,用于农业物联网中的多种系统的信息采集和监控。

2.1 智能网关整体设计

IPv6智能网关集成了3种不同的无线网络节点模块,每种无线网络节点模块独立与网关进行通信。802.15.4模块通过串口连接与网关通信,蓝牙模块通过USB连接保证蓝牙无线网络与网关进行通信,Wi-Fi模块通过USB连接保证Wi-Fi无线网络与网关进行通信。为了实现多无线网络融合通信,IPv6网关将3种不同的通信渠道统一中转到TUN虚拟网络设备[20]处理,从而实现3种无线网络同时在IPv6网关上正常通信,整体设计如图2所示。

802.15.4模块通过串口驱动发送感知层数据包到TUN服务,通过TUN服务转换成IPv6数据包,并转发到TUN虚拟网络设备进行统一处理并发送出去;蓝牙模块和Wi-Fi模块通过分别通过蓝牙驱动、Wi-Fi驱动发送感知层数据包到指定的服务程序,该服务通过指定端口将感知层数据包转发给TUN服务,TUN服务将根据端口号生成Socket处理,将发送过来的感知层数据包转换成IPv6数据包,转发到TUN虚拟网络设备进行统一中转。

2.2 智能网关无线网络模块设计

为了实现IPv6异构无线传感网络,智能网关采用了虚拟网络设备TUN。TUN提供与硬件的网络设备完全相同的功能,模拟网络层设备,处理相应数据包如IP数据封包,并向操作系统的网络层发送数据包,从而接收外部数据,同时还实现了字符设备驱动,用于连接应用层和内核层,应用层可以通过TUN设备向用户空间发送数据[20]。为了更好地与各种无线节点通信,本研究设计1种TUN服务程序、Wi-Fi网关服务程序和蓝牙网关服务程序,完成和无线模块间的通信,其中TUN服务程序和设计如图3所示。

2.2.1 802.15.4边界路由器与网关通信设计 边界路由器要收集其他节点的数据,需要先创建1个被称为DODAG的根节点,边界路由器通过感知层通信协议(Perception layer communication protocol,PLCP)获取网络地址后,为自身配置1个IPv6的地址,然后再创建1个新的根节点,其他感知层的节点加入到这个根节点中,实现和节点的无线数据通信。

边界路由器需要将收集的数据发送给网关,设计过程如下:首先802.15.4边界路由器将收集的无线节点数据通过串口驱动把感知层数据包发送给TUN服务,然后TUN服务将其转换为IPv6数据包后转发给TUN虚拟设备,接着由TUN虚拟设备将IPv6数据包上报到Linux内核的IPv6层,最后经过TCP协议发送给APP;反之,应用层APP将IPv6数据包请求发送到智能网关的TUN虚拟设备,TUN服务将TUN虚拟设备发过来的IPv6数据包转换成感知层数据包后通过串口发送给802.15.4边界路由器,最后通过802.15.4无线模块将感知层数据包转发给节点网络的802.15.4模块,从而实现对节点的控制。

2.2.2 Wi-Fi模块与网关通信设计 Wi-Fi无线网络可以工作在AP(access point)模式和Sta(station)模式下,智能网关的Wi-Fi设置为AP模式下,无线节点是设置为Sta模式,智能网关的Wi-Fi模块将多个无线节点组成一个网络。

Wi-Fi模块需要实现与网关通信,设计了1个Wi-Fi服务程序完成Wi-Fi无线模块和TUN之间通信,应用层APP将IPv6数据包发送给TUN虚拟设备,TUN服务将TUN虚拟设备发过来的IPv6数据包转换成感知层数据包,TUN服务与Wi-Fi网关服务程序建立网络连接后,通过端口将感知层数据包转发给Wi-Fi网关服务程序,Wi-Fi网关服务程序将感知层数据包转发给网关底层的Wi-Fi驱动,最后通过Wi-Fi模块将感知层数据包转发给网络上其他的Wi-Fi模块节点。Wi-Fi网关服务程序如图4所示。

2.2.3 蓝牙模块与网关通信设计 蓝牙模块与网关通信,设计了1个蓝牙服务程序实现蓝牙无线模块和TUN之间的通信,APP应用端将IPv6数据包请求发送给TUN虚拟设备,TUN服务将TUN虚拟设备发过来的IPv6数据包转换成感知层数据包,TUN服务与蓝牙网关服务程序建立TCP连接后,通过指定端口转发给蓝牙网关服务程序,蓝牙网关服务程序通过该端口将感知层数据包转发给网关底层的蓝牙驱动,继而通过蓝牙模块将感知层数据包转发给网络上其他的蓝牙模块节点,其中蓝牙服务程序过程与Wi-Fi类似。蓝牙网关服务程序流程如图5所示。

2.2.4 TUN服务程序软件设计 TUN服务程序实现的功能有:(1)读取串口、Wi-Fi网关服务程序和蓝牙网关服务程序的感知层数据包,并转发到TUN虚拟网络设备;(2)读取TUN网络设备的感知层数据包,并转发到串口、Wi-Fi网关服务程序和蓝牙网关服务程序;(3)将发送过来的感知层数据包转换成IPv6数据包。

TUN服务实现了读串口、Wi-Fi网关服务程序和蓝牙网关服务程序的感知层数据并转发到TUN虚拟设备,同时实现了读取TUN虚拟设备数据并转发到串口、Wi-Fi网关服务程序和蓝牙网关服务程序,详细设计如图6所示。

2.3 异构无线通信模块设计

感知层的3类无线节点接收到传感器模块采集的数据之后,将数据通过串口发送到节点处理器的IPv6层,然后将IPv6层的数据包封装成感知层数据包,再通过串口发送给节点的无线模块,无线模块将感知层数据包传输给网关无线模块;同时,节点无线模块接收智能网关无线模块发过来的感知层数据包,并通过串口发送给STM32处理器[21]的IPv6层处理,从而实现异构无线网络对农业环境数据采集和设备控制。其设计如图7所示。

3 与智能网关通信的感知层设计

3.1 感知层通信协议

为实现感知层和智能网关通信,本研究设计了1套感知层通信协议PLCP,用于点对点的串行通信,定义了在串行线路上将数据包封装成帧,PLCP定义了起始符和结束符:S和E,中间包含若干个数据包。表1是PLCP的数据帧格式,处理器通过串口给无线模块发送数据时,需遵循PLCP协议。

表1 PLCP的帧格式

无线模块无线接收到数据之后,也将数据按照PLCP协议封装数据,通过串口发送给STM32。无线模块的作用是将数据进行收、发。无线模块可以理解成STM32的无线网卡。STM32与无线模块通过串口进行通信。为了方便无线模块设置网络参数、接收和发送数据,本研究定义了1套无线模块的节点通信协议实现节点对无线模块的通信与控制。表2是节点通信协议的详细功能表。

STM32向无线模块只能发送?M、!P、!C和!S 4个指令,无线模块向STM32可以发送!M、!P、!C和!R 4个指令。发送指令时,同样需要遵循PLCP的通信协议,如用?M指令可以查询无线模块MAC地址,其格式如表3所示。

表2 PLCP节点通信协议

表3 ?M指令发送帧格式

3.2 感知层的核心设计

为了实现感知层设计,本研究在STM32处理器上引入Contiki操作系统[22-23],利用Contiki系统的多任务机制,实现无线传感器网络中的数据采集和设备控制。Contiki实现了1种轻量级的名为protothread的线程模型,该模型类似于线程概念,多个线程共享同一个任务,并提供1种可选的任务抢占机制、基于事件和消息传递的进程间通信机制。

Contiki系统任务需要进行一系列初始化,包括硬件初始化和进程初始化,根据网络需要选择Wi-Fi、蓝牙或者802.15.4 3种无线网络中的其中1种并进行初始化,设置MAC地址和初始化PLCP以及IPv6数据队列缓冲区初始化,接着启动TCP/IP网络进程,初始化RPL[24],加入无线网路,最后启动自定义进程。本研究设计了1套事件机制,定时产生1个事件,通过轮询进入到特定的进程,并对事件进行处理,实现数据采集和设备控制。节点核心设计的流程如图8所示。

3.3 采集类节点软件设计

采集类传感器主要包括光敏传感器、温湿度传感器、二氧化碳传感器等,这类传感器主要是用于采集大棚环境信息。以光敏传感器为例,对采集类传感器进行软件设计,在初始化传感器后,用定时器设定采集的时间,然后等待事件的到来,不断轮询传感器事件,有选择地采集和上传数据,并接受应用层通过智能网关发送来的数据进行解析,采集数据和上传至网关,具体设计如图9所示。

3.4 控制类节点软件设计

控制类传感器主要包括继电器传感器、电机传感器、排气扇传感器和水泵传感器等,这类传感器主要用于控制设备的状态。控制类传感器实现对农业设备的控制和工作状态的采集,初始化传感器后,用定时器设定采集的时间,然后等待事件的到来,不断轮询传感器事件,有选择地进行设备控制和状态采集,另外也可以接收应用层通过智能网关发来的控制命令,先进行解析,然后进行设备控制和状态采集,具体设计如图10所示。

4 测试与分析

以广东省广州市南沙区某地农业园区为例说明具体应用。将660 m2的大棚作为实际部署环境,把每个大棚按约 22 m×10 m的大小分割成3个区域。整个园区配置1台服务器、若干台路由器和交换机,每个大棚的3个区域分别配置802.15.4无线网络、Wi-Fi无线网络、蓝牙无线网络,另外节点的配置包括每个区域配置2个温湿度传感器节点、2个光敏传感器节点、2个土壤温湿度传感器节点、2个大棚侧窗开启节点、2个灌溉模块节点、2个排气模块节点,对系统进行智能网关测试和应用验证。

4.1 智能网关测试

智能网关组网测试,选择9个不同的传感器,分成3组,分别组成802.15.4无线网络、Wi-Fi无线网络、蓝牙无线网络,组网情况如图11所示。从图11可以看出,智能网关分别和3个不同的子智能网关实现组网,3个子智能网关也能成功组建无线网络,验证了智能网关的正确性。

4.2 应用验证

通过Android设计的移动终端和PC终端软件,从应用层采集农业环境的数据和设备控制,实现对全部节点信息的数据采集和设备控制,设置采集节点的采集周期为30 s,系统测试温室大棚环境数据。

对大棚温度、湿度、光照度的采集,图12是数据采集的效果图,图中是2017年3月7日09:31获取的数据,其中大棚温度21 ℃,湿度是61%,光照度为14 660 lx。图13-A、图13-B、图13-C分别为大棚温度、湿度和光照度在2017年2月14日至2017年3月5日的历史记录情况。每天当中,白天光照度和温度较高,且温度和光照度逐渐上升,湿度会逐渐下降,下午到晚上温度和光照度逐渐下降,湿度逐渐增加,符合当地时节的情况。

4.3 测试分析

由测试结果可知,农业大棚环境信息的数据采集传感器可以正确获取数据,并根据强度大小来决定是否启动环境控制设备,尤其是光照控制、温湿度控制、灌溉控制的效果明显,从而实现了智能农业环境的平衡控制,验证了IPv6和异构型无线网络型智能网关的有效性和正确性。

5 结论

本研究设计了1种基于IPv6和异构型无线网络智能网关型的农业物联网系统设计,结合TUN服务实现了3种无线网络(802.15.4无线网络、Wi-Fi无线网络和蓝牙无线网络)与网关的通信设计,并对无线模块通信进行异构无线网络融合设计,为了更好地采集数据和控制设备,定义了感知层通信协议并完成了感知层的核心层设计、采集类节点软件设计以及控制类节点软件设计。经过测试验证,基于IPv6和异构型无线网络农业物联网智能网关可以实时采集农业大棚的空气温度、空气湿度、土壤湿度等环境信息,并根据阈值的实时控制来调节大棚环境,使大棚农作物生长在一个最好的环境中,促进作物健康生长,达到良好的效果。本研究有如下特点:(1)基于IPv6的农业物联网智能网关,为每个节点部署了IPv6地址,满足日益壮大的环境采集要求,更有效地采集数据和设备控制,有利于农业物联网的广泛应用;(2)智能网关实现了多种异构无线传感网络,可以应用在农业的多个领域,为农业应用提供更有效的服务,也为进一步农业物联网技术集成平台建设提供技术支持。

智能网关适应各种行业领域的应用和增加农作物的生长智能分析是本课题今后的研究重点。

[16]陈美镇,王纪章,李萍萍,等. 基于Android系统的温室异构网络环境监测智能网关开发[J]. 农业工程学报,2015,31(5):218-223,225.

[17]向 敏,黄盛刚,田 力,等. 基于IPv6的多接入智能电网网关设计[J]. 中国电力,2016,49(5):123-128.

[18]姚崇高,王佳丹,彭亚雄. 基于IPv6的家庭网关设计[J]. 计算机技术与发展,2007,17(3):207-209,213.

[19]霍宏伟,牛延超,郜 帅,等. 一种IPv6无线传感器网络以太网接入网关的设计[J]. 传感技术学报,2007,20(2):398-403.

[20]龙湘君,邵 栋,荣国平. 基于TUN/TAP与UDP打洞技术的虚拟局域网[J]. 计算机应用与软件,2011,28(7):224-226.

[21]Zhao X,Zhou B,Fan Z,et al. Research on image acquisition and wireless transmission based on STM32[C]// International Conference on Information Science and Technology. IEEE,2015:334-338.

[22]董 坤,陈 波,赵中全. 基于Contiki和有源RFID的设备管理系统的实现[J]. 电子技术应用,2016,42(3):57-60.

[23]Dunkels A,Gronvall B,Voigt T. Contiki-a lightweight and flexible operating system for tiny networked sensors[C]//IEEE International Conference on Local Computer Networks,2004:455-462.

[24]Thubert P,Winter T,Brandt A,et al. RPL:IPv6 routing protocol for low power and lossy networks[J]. Internet Requests for Comment,2012,6550(5):853-861.

猜你喜欢
服务程序智能网无线网络
SylixOS系统的中断嵌套机制研究与实现
基于C#的进程守护程序的设计
5G赋能智能网联汽车
滤波器对无线网络中干扰问题的作用探讨
智能网联硬实力趋强
迎战智能网联大爆发
无线网络的中间人攻击研究
基于SJA1000的CAN总线智能网桥设计
水利工程施工监理服务程序及质量控制
数说无线网络:覆盖广 流量大 均衡差