1. 引言
目前,设施农业中已经有涌现出一大批成熟的农业物联技术方案,其特点是使用基于工作在2.4 Ghz频段的蓝牙、ZigBee、WiFi等传感网络技术。但是在野外,农业物联技术还没有一个很好的解决方案。与设施农业不同的是,野外的农业生产具有以下几方面的特点 [1] :
第一:缺少电源,因此野外设备需要电池或太阳能供电,这就要求设备功耗尽可能低 [2] 。2.4 Ghz短距离通信技术发射功耗高,且协调器、路由节点均需要长时间开机,导致其总体功耗过大,不能满足野外农业传感设备低功耗的需求 [3] 。第二:野外地形条件复杂(如山地、丛林等),工作在2.4 Ghz频段的短距离通信技术信号穿透力和绕射能力差,因此在传输距离上表现不佳 [4] 。第三:为了解决2.4 GHz信号在野外穿透力和绕射能力差的问题,有人提出在传感网络每一个节点上加装GPRS的方案。该方案确实能解决前述问题,但是其弊端在于功耗和成本过高 [5] 。
基于上述问题,本文采用177 M数传通信技术设计一款应用于野外农业的农田信息采集与控制终端设备,该设备具有功耗低、信号穿透性和绕射能力强、成本低的特点。基于177 M数传通信技术的节点设备发射功耗低于基于2.4 G通信技术和GPRS的节点设备,而且在本网络中还可实现传感节点定时休眠/唤醒,进一步降低功耗,能很好的解决野外农业传感设备的功耗问题。在野外,177 M信号的穿透性和绕射能力更好,相同发射功率条件下,传输距离是2.4 Ghz信号的3~6倍(具体数据不同厂家产品各不相同)。鉴于177 M数传通信有以上几大优点,则可以在一定程度上降低成本。在农业物联应用中,数据采集不能以点带面,因此需要的传感节点数量庞大,故而传感节点的成本是其主要成本产生点,降低传感节点成本,能够大幅降低农业物联设备的成本。
我国设施农业所占的比例小,平原与山地的面积比为三比八,且农业是一项投入大见效慢的事业,成本管控意义重大。因此,基于177 M数传通信技术的智慧农业物联信息采集与控制设备将具有广泛的应用空间和巨大的经济效益。
本文详细介绍了177 M数传通信技术的无线传感网络结构以及通信协议和流程,并给出了数据采集与返控终端硬件设计与嵌入式系统软件的相关设计方案以及安装和调试的方法。从设备的测试及使用的结果来看,本文提出的工程化的高可靠、低功耗、复杂异构的农业传感网高效路由算法及跨网跨层协同设计方法,可以解决不同通信网之间数据自由流动问题。设计的异构自组织传感器网络系统,通过前端的多要素信息采集自组织传感器网络将土壤墒情、光照、温度、湿度、二氧化碳等多种实时数据采集后,通过GPRS通信网络将收集到的数据传送到数据管理中心。整个数据通信链路满足不同通信环境的需求,同时,又要保证多种异构通信之间数据的自由流动,控制命令准确实时完成对农业设施的有效控制。
2. 无线传感网通信协议
2.1. 无线传感网络结构
在智慧农业物联网中,无线传感网络是各种农业生产相关信息采集以及控制命令上传下达的核心通道 [6] 。
图1给出了一个典型农业物联应用的方案,虚线圆圈中的部分为基于177 M农业传感器网络的一种应用。该方案传感网络的拓扑图如图2所示。各个功能节点直接与网关节点通信,将采集到的数据通过网关节点传送到Internet或者移动网络,也可以使用Internet和移动网络的终端,通过网关节点向各功能节点下达反控指令 [7] 。
Figure 1. An intelligent agricultural internet of things structure
图1. 一种智慧农业物联网结构
在现场由于供电和功耗的考虑,无线网络节点的通信跳高限定在3000米以内。图2的方案适合半径3000米左右复杂地形应用。如果农地面积更大,可采取如图3所示的网络结构。图3增加了路由节点,整个传感网络覆盖的区域更加大。为了简单可靠,降低路由节点处理路由数据的消耗,每一个网段只有一个路由节点。每个路由节点只需要分清这是发给自己的信息,还是需要转发的信息就可以了,没有路由上选择的额外开销,程序实现起来方便、简单。
2.2. 通信协议
由于177M数传通信是一种半双工窄带通信技术,因此如ZigBee、Ant那样划分许多信道分别用于与不同终端节点通信是不能实现的 [8] 。因此,这里采用查表的方式让网关节点循环与各个终端节点通信。在网关节点中地建立一张路由表,表中依次记录了节点的编号、该节点地址和其所属网段路由地址如表1所示。网关节点按照节点查询表中节点编号的顺序查表,分别与各节点进行循环通信。在通信时,网关采用时间片轮转的方式进行通信,每个通信时间片到,则断开此通信连接,与下一节点通信 [9] 。整个通信系统采用32位地址,分成四段如表2所示,且以点分十进制的方式表示如表2中地址字段所示,每
Figure 2. The star topology of sensor network
图2. 传感网络星型拓扑图
Figure 3. The tree topology of sensor network
图3. 传感网络树型拓扑图
一段取值从0~255,这样一个网络的节点地址可以从几十个到数百个不等,能够满足所有的农业应用。
无线传感网络数据通信的帧格式定义如表3所示。各字段含义如下:
帧头:表示数据帧起始符,固定为0Xaa55。
目的地址:目标终端节点的地址。
源地址:信息发送节点的地址。
命令类型:表明该帧的类型(如:数据帧、控制命令帧等)。
命令参数:当命令为应答命令(错误命令码)时,命令参数为所应答的命令。
数据长度:表示<数据>字段的长度,高位在前。
数据:具体传输的数据。
检验码:前面所有字段数据的校验码,使用CRC16表示,高位在前。
2.3. 通信流程
按照图2所示网络结构的网络通信流程如图4所示。首先,网关节点通过查表方式向指定终端节点发送数据请求或控制命令,并为该通信连接分配时间片。数据是以广播的方式发送的,每个节点都可收到数据,但是只有数据帧中目的地址与该节点地址相同的终端节点才会做出反应,向网关发送采集数据或命令执行状态信息(成功、失败或未知错误)。如果终端节点响应超时,网关节点会重新发送数据请求或控制命令,如果在时间片用尽时仍未收到响应,网关节点将放弃本次通信,断开通信连接,然后查表进行与下一节点的通信。
按照图3所示网络结构的网络通信流程如图5所示,其通信流程与图4相似,只是中间多了路由节点,网关节点向指定终端节点发送数据帧,路由节点首先将数据帧中的目的地址取出与本地网络号进行对比,如果相同,说明该终端节点在本网段中,路由节点直接将数据传送给指定终端节点;如果不同,路由节点将按照路由表,送往相应的默认路由节点,发往下一网段。
Figure 4. Network communication process of terminal node and gateway
图4. 终端节点与网关的网络通信流程
Figure 5. Network communication process of terminal node and routing node and gateway
图5. 终端节点与路由节点和网关的网络通信流程
不论在图2还是图3所示网络结构中,如果传感网络工作于超低功耗模式,传感节点将通过内部定时器,根据网关节点查表通信的顺序定时唤醒/休眠。整个网络每隔一定时间由网关节点统一校时。
3. 数据采集与返控制终端硬件设计原理
终端主要完成农业气候信息采集和对设施的自动控制 [10] 。其主要采集的气候要素有相关温湿度、pH值、光和有效、总辐射等数,同时实现喷灌、施肥等农事作业的自动完成。其传感器功能模块图见图6。
4. 嵌入式系统软件设计
本系统从实时采集当前环境中的多项参数出发,因此需要实时操作系统来管理和调度,选用uC/OS-II操作系统,整个uC/OS-II的详细工作流程做如下说明:
1) 初始化变量:对需要用到的全局变量、数据结构进行声明及定义,创建最低优先级空闲任务OSTasklde,建立必须的数据链表如常用的任务控制块链表、事件控制块链表等 [11] 。
2) 创建任务:在整个底层嵌入式软件中一共建立了七个任务,分别是TASKGSMUART、TASKDataPro、TASKMsgTASKTCP、TASKZIGBEE、TASKInitGSM和TASKState、其任务优先级依次递减。
3) 进入多任务管理阶段:任务启动,寻找任务就绪表中优先级最高的任务,并把此任务的指针加载到程序指针中,并强制中断返回 [12] 。
4) 任务调度:任务运行前的准备,通过指针找到优先级最高的任务TASKGSMUART,并实现任务切换,任务调度是操作系统内核的主要服务,也体现了裸机程序跟多任务程序的最大不同 [13] 。
5) 用户任务:用户自定义任务,根据建议会优先调度优先级高度的任务,并且创建其它优先级相对低的自定义任务,如果遇到主动让出CPU、延时、请求临界资源、中断并使任务挂起。
在整个任务联系图中主(Main)函数流程图如图7所示。
5. 安装和调试
硬件安装需要将太阳能电池板固定在支架上并选择好方向以此来最大限度的吸收太阳光,嵌入式控制电路包装在防水的铝盒子里面,把传感器的接口线和电源接口线都引出,蓄电池直接放在大的铝盒子里,太阳能控制器和继电器放在一块,太阳能电池板的接线通过支架杆和太阳能控制器连接,再把预先准备好的传感器按照相应的接口接上就行,其硬件安装完成的实物图如图8所示。
Figure 6. Function module of sensor node
图6. 传感器节点功能模块图
Figure 7. Network communication process of terminal node and routing node and gateway
图7. 终端节点与路由节点和网关的网络通信流程
软件安装显得比较简单,只需要把编写好的软件发布到服务器上,告诉用户服务器的地址,用户需找一台能上网的电脑,在电脑上打开浏览器软件,在地址栏输入URL地址,输入正确的口令就可以进入系统。
硬件连接和软件安装完成后,给整个硬件系统上电,就可以实时采集环境中的数据。在计算机上的软件就可以看到相应的数据如图9所示。
Figure 8. The picture of hardware physical
图8. 安装好的硬件实物图
为保证设备的对于不同环境的适用性,我们选择了多个实验地点对设备进行测试。从图中我们可以清晰的看出,每台设备的名称、放置地点,数据的采集和存储的时间,以及设备的使用状态等信息,这大大方便了用户对野外信息的采集分析及管理。
6. 结束语
嵌入式硬件控制电路采用了分模块设计,使各个模块各尽其能又做到统一管理,前端实时采集环境中的各个参数,利用高度集成和低功耗的嵌入式微处理器进行对数据的处理。在此基础上,系统预留了很多扩展接口,如果需要对环境中的新参数进行采集,只需接上相应接口的传感器,操作非常便捷,为系统的维护和扩展打下基础。
参考文献