0引言
随着全球水资源供需矛盾的日益加剧,节水农业巳成为当今具有世界意义的焦点问题之一,世界各国都十分重视发展节水农业。以色列、日本、美国等国家都已采用先进的节水灌溉制度。通过采用遥感、遥测监测土壤墒情和作物生长等新技术,对灌溉区用水进行监测预报,实现灌溉区水资源的动态管理,不但成功地提高了农业产量,同时也节约了大量灌溉用水。国内部分地区也采用了一定的土壤墒情监控系统[1],但现有系统一般采用有线组网形式,并通过工业总线来实现数据传输(如RS232协议,RS485协议等)。这种组网形式存在布线困难、系统安装调试周期长、使用复杂、需要专业人士进行日常维护等缺点.因而严重阻碍了其进一步推广和应用。
本文提出的采用Zigbee技术并结合现代传感器技术,同时通过无线组网的形式实现对土壤墒情的监控,从而开发了基于zigbee的土壤墒情监控系统。本系统将测控节点分布安设在灌溉区的各个地方,然后利用WSN将采集的数据传输给中心节点,再经过中心节点分析采集的数据,然后控制灌溉控制系统的状态,从而实现灌溉区灌溉的“精细灌溉”。相比于有线方式的土壤墒情监控系统,基于Zigbee的土壤含水监控系统具有如下优势:
(1)采用无线传输方式,受灌溉区环境约束小:
(2)系统具有微功耗特性;
(3)通信节点成本低;
(4)网络组建方便、快速;
(5)网络结构灵活,采用自组织方式,可动态路由转发以实现联网通信,当扩太监控范围时,网络可以自动接纳新增节点,而无需苛刻的日常维护和管理:
(6)网络容量大,覆盖面广;
(7)安全性高;
(8)通信时延短。
1 zigbee协议简介
zigbee是一种新兴的短距离、低复杂度、低功耗、低数据速率、低成本的无线网络技术。主要用于近距离无线连接。该技术依据IEEE802.15.4标准,可在数千个微小的传感器之间相互协调以实现通信。Zigbee(由Zigbee Alliance所主导)标准一般需定义网络层(Network Layer)、安全层(Security Layer)、应用层(Application Layer)以及各种应用产品的资料(Profile);而由国际电子电机工程协会(IEEE)所制订的802.15.4标准,则只定义了物理层(PHY Laver)及媒体存取层(Media Access Control Layer;MAC Layer)。zigbee有数据传输速率低、功耗低、成本低、网络容量大、时延短、安全、有效范围小、工作频段灵活等特点。其主要应用领域包括工业控制、消费类电子设备、汽车自动化、家庭和楼宇自动化、医用设备控制等。
2系统整体设计
基于Zigbee的土壤墒情监控系统由大量测控节点组成,这些节点通过Zigbee技术来构成一个WSN网络。这些节点按其实现的功能可以分为中心节点、全能节点和终端节点。其中中心节点是网络的中心,它是整个WSN网络组建的发起者,并对整个网络进行管理和维护;全能节点在网络中起路由作用,并控制灌溉阀门的开关,全能节点也具有测量能力,能测量节点所在位置的土壤含水情况。而终端节点则是整个网络的末端,与全能节点和中心节点相比,终端节点只具备测量功能,而不带电机控制电路。
一般情况下,根据灌溉工具在灌溉区的实际灌溉能力,可将灌溉区划分为若干个小灌溉块,这些小灌溉块通常可由1个全能节点和若干个终端节点组成一个小型的星型网络,然后由全能节点控制小灌溉块的供水阀门,并由终端节点负责采集该灌溉块各个区域的土壤墒情。各个小灌溉块之间的全能节点、终端节点与中心互连,以构成一个WSN网络,网络中只起路由功能的全能节点.可以保证网络通信的可靠性。网络组建成功后终端节点将定时采集土壤湿度数据,并将数据直接上传给中心节点,同时也可以利用WSN网络的多跳功能将数据传输给上级的全能节点,然后通过若干个全能节点地接力,将数据传送给中心节点。中心节点对信号进行分析后,再将分析结果发送给该小灌溉块的全能节点,并通过全能节点来控制阀门以调节灌溉用水的用量。基于
zigbee的土壤墒情监控系统示意图如图1所示。
3系统硬件设计
无线传感器网络节点的硬件设计是组建WSN网络的基础,节点的硬件设计主要包括电源、数据传输和处理、传感器、电机驱动等模块。
电源模块主要用于为系统提供可靠和稳定的电源,其中全能节点和终端节点的供电方式有所区别,终端节点是分布式设置在灌溉区域内的,所以,一般采用电池供电。而全能节点一般需要持续上电,且功耗比较大,所以,在设计上可采用灌溉管道控制系统来供电。
其次就是数据传输和处理模块。本系统的核心控制芯片选用Jennic公司生产的Zigbee模块JN5121模块,该模块集成了控制电路和射频电路,并兼容2.4GHzIEEE802.15.4。同时在内部还集成了一个51核,此外,还具有96KB的RAM和64KB的ROM、4路12位ADC、2路11位DAC、2个UART接口、21路IO以及SPI和I2C总线接口等。通过调用该公司提供的API函数可实现对该模块的操作,井可组建一个具有自组织、多跳动态路由机制的无线传感器网络。
传感器模块主要负责连接各类传感器,包括水分传感器,温湿度传感器。
电机驱动模块主要用于驱动外部的灌溉阀门的电机。通过电机驱动系统和JN5121模块,便可以实时控制灌溉阀门的开关。
图2所示是该系统节点的硬件框图。
4 WSN网络平台的组建
4.l节点初始化及入网流程
WSN网络中各类节点的软件流程如图3所示。不同节点的软件差异主要在于Zigbee协议栈的初始化。由于中心节点是网络的建立者,故在整个WSN网络中必须最先启动。在初始化Zigbee协议栈时,通过调用afmemeAddSimpleDesc()函数,可在该函数中完成信道选择并确定PAN ID,从而完成网络组建。全能节点和终端节点则可在初始化Zigbee协议栈时,通过调用afmeAddSimpleDesc ()函数,将待入网的节点初始化为全能节点或是终端节点,然后扫描所有可用信道以寻找与自身PAN ID匹配的网络。当扫描到匹配网络后,待入网节点将向中心节点发送人网请求数据帧,当接收到中心返回的入网确认信号后,表明节点已入网成功。
4.2 BOS系统的任务调度机制
BasicOperating System(BOS)是一个简单的非抢占式任务调度系统,各个任务都具有相同的优先级别,只有当一个任务运行结束后才能调用其他任务。BOS系统的运行流程如图4所示。
BOS系统可控制执行Zigbee Task和DefaultUser Task,其中zigbee Task 可作为单独任务被执行,APS(Applcation Sub—layer)和ZDO(ZigbeeDevice Objecls)都在Zigbee Task执行。DefaultUser Task则在BOS系统初始化时被创建。BOS系统初始化时,最多可以定义两个user Task,根据功能实现的需要,可以在Default User Task中定义应用程序。Hardware Peripheral Event和MACSub-Layer等属于随即事件,可以中断的形式在Optional Task中处理。
4.3网络拓扑管理
网络部署后,中心节点就要建立拓扑表,并建立一个节点的父子关系。拓扑发现分为两个阶段,首先是骨干网络发现,在此阶段,中心节点将自己的网络级别设置为0级节点,然后在中心节点广播域内的所有节点均发送分组,分组包含发送节点的类型和网络级别,当中心节点广播域内的所有节点收到中心节点发送的分组后,终端节点将忽略该分组信息,全能节点则将自己的网
络级别设置为分组中的网络级别加1,即为第1级,然后将自己的节点类型和网络级别作为新的发现分组广播出去。当一个节点收到第i级节点的广播分组后,记录发送这个广播分组的节点的级别,井设置自己的级别为(i+1)。这个过程将一直持续下去,直到网络内的每个全能节点都具有一个级别。如果节点已经建立了自己的级别,就忽略其它的级别发现分组。第二阶段是终端节点发现。在此阶段,各个全能节点在自己的广播区域内向它所有的终端节点发送分组包,终端节点收到分组后,会设置自身为该全能节点的附属节点,并将自己的网络信息发送给全能节点。当终端节点建立好附属级别后,将忽略其他全能节点发送的分组。完成网络发现后,所有节点将把自身的节点类型和网络级别发送给中心节点,这样,中心节点就可以建立一张当前的网络拓扑图。此后,当有新节点加入网络时,中心节点就可在网络中寻找该节点并更新拓扑表,并添加节点。而当有节点删除时,中心节点也会更新拓扑表.并删除该节点。
4 4网络数据传输
JN5121模块可以采用KVP和MSGNl种数据包格式来传输数据本系统采用的数据包格式为MSG格式,即通过afdeDataRequest()和JZA—u8AIMsgObject()两个函数来实现节点间的数据传输,其中afdeDataRequest()函数用于实现节点数据发送,JZA—u8AfMsgObject()则负责数据接收,JzA_u8AfMsgObject()函数属于BOS系统中的Zigbee Task任务,因此,在BOS运行期问,系统会不断查询任务信息。当接收到新数据时,系统将调用JZA—u8AfMsgObject()函数,并在JZA_u8AfMsgObject()函数中对数据包进行解析和处理。
5系统功耗控制
系统节点的低功耗设计采用器件低功耗设计和精确的电源管理策略。其中器件低功耗设计主要是选择低功耗器件,并在空闲时,通过软件方式使器件进入低功耗或休眠模式。精确的电源管理策略则是采用选择供电的方式,通过CPU来控制设备的供电时间。本系统设计就是采用器件低功耗设计同时,也根据节点需要完成功能,来为节点制定精确的电源管理。本系统设计终端节点为定时采集方式,从而大大缩短了终端节点的工作时间,使终端节点大部分时间都处于低功耗或休眠模式,本系统的终端节点电池的工作时间可以长达12个月到24个月。但是,全能节点必须一直处于工作状态,因此,相对于终端节点,全能节点功耗比较高,故应尽量简化全能节点的电路设计,并采用外部供电的方式,由灌溉控制系统来为其供电。
6系统调试
本文给出的基于Zigbee的土壤墒情监控系统组装完毕后,经测试,系统运行稳定。Zigbee无线通信系统的通信成功率达98 .392%,土壤水分传感器的采集精度可达1%。通过低功耗设计,其终端节点的待机电流大约为17μA,工作电流大约为30mA。在一天24小时内,本系统中的节点每60分钟采集一次数据,采集工作时间是17s(测试得到),系统在24小时内工作0.113h,待机23.887h.理论功耗为(0.113×30+0.017×23.887)3.796mAH。对于一节普通的800mAH的碱性电池,其终端节点可以持续工作7个月。全能节点由灌溉区的灌溉控制系统供电,可以保证全能节点全天持续工作。实际上,系统持续工作时间取决于很多外部因素,例如:电池种类、容量和应用场合等。在实际应用中,合理配置终端节点的工作时间,也可以提高节点的工作时间。
7结束语
本文介绍了以JN512l模块为核心,基于Zigbee的土壤墒情监控系统的设计与实现方法,同时针对系统的节点硬件设计、网络组建、数据通信和低功耗设计等问题,给出了详细的解决方案,并成功实现了WSN网络的组建。实验证明,基于zigbee的土壤墒情监控系统可以在很大程度上提高对农业土壤墒情的监控能力,同时,采用无线数据传输方式,也加强了系统的灵活性和可靠性。更有利于系统的推广应用。本系统可实现无人职守工作,并可省去人工操作,从而可在真正意义上实现灌溉自动化。