李永成 ,凌 青 ,吴 刚 ,陈 雷 ,秦琳琳
(1.中国科学技术大学 自动化系,安徽 合肥 230027;2.中国人民解放军63895部队,河南 洛阳 454750)
温湿度监测被广泛应用于工农业生产中,如温室、大棚、矿井等场所都会对环境的温度和湿度进行定时监测,以保证生产要求或植物的最优生长条件。如果采用人工定时测量,不但要耗费大量的人力,而且很难做到实时监控,特别是在某些高温场所还有可能造成安全事故。传感器是监测系统中重要的组成部分,但是随之而来的是布线的复杂和施工的困难,大量的数据线缆还存在着短路和断线的隐患,以及成本高、易老化等问题,这都给系统的调试和维护增加了难度。无线数据通信技术在实际应用中具有组网简单、使用方便、扩展性强的优点。其中被广泛采用的是基于ZigBee协议栈的无线通信技术[1-3]。
ZigBee是IEEE 802.15.4协议的代名词,该标准定义了RF射频以及与相邻设备之间的通信,并在IEEE 802.15.4协议(PHY层和MAC层)之上,添加了网络层(NWK)、应用层(APL)和安全服务提供层,如图 1 所示[4]。
图1 ZigBee协议栈体系结构
与其他无线通信技术相比,ZigBee技术的特点是距离短、复杂度低、自组织、功耗低、数据速率低、成本低和容量高,适用于对无线传感器网络WSN(Wireless Sensor Network)进行远程数据的采集与控制[5]。为此,本文设计出一种基于ZigBee技术的无线传感器网络温室温湿度采集监测系统。
基于ZigBee技术的温室温湿度数据无线采集监测系统通过WSN进行温湿度信息的采集和发送,通过上位机监控软件完成数据的存储,并且对温室中每一个节点的温湿度进行监测,即在监控终端设定温湿度期望值区间,当实际值超出该设定范围时,监控界面显示报警。WSN是由部署在监测区域内大量的微型传感器节点组成,通过无线通信方式形成一个多跳自组织网络。它通过各类集成化的微型传感器协同完成对环境信息的实时监测、感知和采集,并将信息通过无线方式发送到用户终端[6]。网络中只允许有一个采集节点充当网关,但允许存在若干个传感器节点来完成信息的采集。
本系统主要由传感器节点、采集节点和监控终端组成。监控终端由一台PC和监控操作界面组成,负责实时显示、存储与处理数据,并能够在温湿度超过设定范围时报警。传感器节点由CC2430-F128芯片、温湿度传感器和电源模块构成,负责采集环境中的温湿度信息和电压值 (由于温湿度传感器需要最低2.7 V的供电,因此需要对电源电压进行监测以便及时更换电源),并以无线方式发送至采集节点,以便进行离线的分析和处理。采集节点由CC2430-F128芯片和电源板构成,负责建立网络,接收传感器节点的采集信息,并通过RS232串口将信息发送到监控终端。一个典型的基于ZigBee技术的温湿度数据无线监测系统。共布设9个应用于温室采集温湿度信息的传感器节点。
传感器节点由数据处理发送模块、温度传感器、湿度传感器和供电板构成,如图2所示。
图2 传感器节点结构图
数据处理发送模块选用TI公司的CC2430/31-F128芯片,它具有低成本、低功耗的特点,内嵌8 bit的增强型8051单片机、12 bit A/D转换器和2.4 GHz的射频收发器,在接收和发射模式下,电流消耗分别低于27 mA和25 mA[6]。
电源模块由一块供电板和两节AA电池构成,负责给板上的各硬件模块供电。
温度传感器选用AD22103芯片,它的供电电压为3.3 V,适合由电池供电的应用环境。温度量程为0℃~100℃。通过外接1 kΩ电阻,使其输出端与 CC2430的P0.1口(内嵌ADC的输入端口为 P0.0~P0.7)相连,则传感器的输出电压正比于温度值。当温度为0℃时,其输出电压为0.25 V;当温度为100℃时,其输出电压为3.05 V。 温度系数为(Vs/3.3 V)×28 mV/℃,其中 Vs为供电电压。
湿度传感器选用霍尼韦尔公司的HIH5030芯片,其工作电压最低为 2.7 V,典型工作电流为 200 μA,适合于3 V电池供电系统。通过外接1 kΩ电阻,使其输出端与CC2430的P0.0口相连,对应相对湿度的电压输出接近于线性。利用式(1)和(2)(温度补偿公式),即可由输出电压值求出当前湿度值。
其中,式(1)的条件在 25℃环境下,式(2)中 T的单位为℃。
采集节点由一块HFZ-SmartRF母板和CC2430芯片构成。通过该母板为各设备下载程序,并通过RS232串口转USB口与PC连接,用作无线传感器网络与监控终端交互信息的网关。
基于ZigBee技术的温湿度数据无线采集监测系统软件流程可分为组网、绑定和采集并发送信息3个过程,如图3所示。
图3 ZigBee组网及绑定流程
采集节点在初始化后确定自己的逻辑类型为采集节点,由介质访问控制 MAC(Media Access Control)层对工作于 2.4 GHz波段的 16个信道(11~26)进行能量检测扫描,以检测可能的干扰。当网络层(NWK)接收到成功的能量检测扫描结果后,以递增的方式对所测得的能量值进行信道排序,并且抛弃那些能量值超出了允许能量水平的信道,最终在允许选择的信道中选择一个编号最小的信道,并设置网络的个域网络标识符PanID(Personal Area Network ID)。ZigBee设备对象然后由ZDO(ZigBee Device Object)层进行设备及网络的初始化,再由网络层发送网络形成请求信息,由ZDO层返回网络形成确认信息,改变其网络状态,得到其网络地址,并将信息发给应用层 APL(Application Layer),由 APL层处理函数完成建立网络事件。
传感器节点完成初始化后,在APL层确定自己的逻辑类型为终端设备,由MAC层扫描当前存在的网络。若发现有网络存在,由网络层发送网络发现请求信息,由ZDO层返回网络发现确认信息,在ZDO层处理函数中由网络层发送网络加入请求信息,再由ZDO层返回网络加入确认信息,并在其处理函数中更新网络状态,得到该节点网络地址,并将该信息发送到APL层,由APL层处理函数完成加入网络事件。
绑定是在两个设备应用层上的逻辑链接。它只能在互为“补充”的设备间被建立,即当两个设备已经在它们的简单描述符结构中登记为相同的命令ID或簇ID(一个簇实际上是一些相关命令和属性的集合,这些命令和属性一起被定义为一个应用接口,被分配一个唯一的簇ID),且一个为输入一个为输出时,才能建立绑定。绑定允许应用层发送信息而无需带目的地址,由应用支持子层 APS(Application Support Sublayer)从它的绑定表中确定目的地址,然后在信息前端加上该目的地址(一对一绑定)或组地址(一对多绑定)来完成信息的发送。
采集节点建立网络后,通过按键处理函数开启允许绑定模式。传感器节点加入网络后,ZDO层首先在自己内部查找命令ID或簇ID,判断其是否在传感器节点的端点描述符的簇列表中,即查看其在簇列表中的簇号,并判断是输出簇还是输入簇。然后由ZDO层以广播的形式无线发送匹配描述符请求和簇信息到允许绑定的设备(即采集节点)。采集节点接收到该请求后,在ZDO层处理函数中解析接收到的簇信息,并在自己的簇列表中查找有无与之匹配的描述符,若存在同样的簇ID,且与传感节点的簇信息互补,则以无线方式发送匹配描述符响应信息到传感器节点。传感器节点接收到响应信息后,开始建立绑定表,并存储发送过来的采集节点的网络地址,同时无线发送IEEE地址请求到采集节点,采集节点接收到该请求信息后,将IEEE地址响应发送给传感器节点,传感器节点接收到该响应信息后进行地址更新,存储与其建立绑定的采集节点的网络地址和IEEE地址,完成绑定过程。
本系统用到9个传感器节点。在设备启动后,每个节点都会通过上述过程与采集节点进行绑定,即一个采集节点与9个传感器节点建立绑定(一对多的绑定)。
传感器节点与采集节点建立绑定后,会在应用层进行数据的采集。利用系统定时器和内嵌ADC,周期性地采集环境的温度、湿度和电压(方便及时了解节点的供电情况,若电量不足,及时更换电源)信息,同时根据其传感器特性对温度值和湿度值进行校准处理后,利用绑定方式,以无线形式发送给采集节点。采集节点接收到该信息后,对信息进行格式处理,将16进制信息转换成十进制信息,最后通过RS232串口转USB口发送到监控终端。
监控终端界面由当前时间、节点对象选择、温湿度数据接收、数据曲线显示和报警状态组成,如图4所示。
在本应用案例中,监控终端软件用VB6.0开发。VB6.0环境下提供了MsComm控件,该控件提供串行通信的全部功能,可以实现从串口读入数据或写数据到串口,封装了通信过程中的底层操作程序,实现了用户和应用程序之间的异步串行通信,发送和接收数据。
后台数据库采用Microsoft Office中的Access数据库,用以存储和管理所需要的数据。它不仅是一个数据库,而且具有数据管理功能。数据库中包含多个表,每个表可以分别表示和存储不同类型的信息;通过建立各个表之间的关联,从而将存储在不同表中的相关数据有机地结合起来;可以通过创建查询在一个表或多个数据表中检索、更新和删除记录,并且可以对数据库中的数据进行各种计算;通过创建联机窗体,可以直接对数据库中的记录执行查看和编辑操作[7]。
数据接收区利用Adodc控件和DataGrid控件完成对数据的接收、显示并存储到数据库中。
在节点选择框架中,可选择当前查看某一个节点的数据和曲线。
通过VB6.0中的PictureBox控件设计出能够根据数据实时绘制曲线的模块,将温湿度数据以曲线的形式实时描绘出来,并可以连续描绘出一天的温湿度变化曲线,方便对温湿度变化特征进行观察和分析,如图5所示。
在报警状态框架中,可以设定监控环境的温湿度控制范围。当环境中的温湿度在设定范围内时,以绿色灯显示正常状态;当超出设定范围时,以红灯进行报警,以便及时采取控制措施,使其温湿度控制在最优的环境允许范围内,显示界面如图6所示。
本文将CC2430与外接温湿度传感器连接,并利用上位机监控终端实现了基于ZigBee的温湿度数据无线采集监测系统。该系统能够解决在传统传感器应用中的布线问题,降低了成本、维护安全,能实现对环境中多个区域的温湿度的实时无线采集和监测,在工农业等方面具有广阔的应用前景。系统还具有较强的移植性,只要更换采集节点中的传感器就能对其他参量进行采集监测。目前该系统在温室温湿度采集监测上得到了应用。
[1]UNHAWIWAT M,MANOYUT P.Wireless Sensor Network for rubber orchard monitoring and alerting systems[C].2010 Second International Conference on Computer Engineering and Applications, 2010: 156-160.
[2]Zhang Xinrong,Chang Bo.Research of temperature and humidity monitoring system based on WSN and fuzzy control[C].2011 International Conference on Electronics and Optoelectronics (ICEOE 2011), 2011: V4-300-V4-303.
[3]张军,吴建锋.基于无线传感器网络的温湿度检测系统[J].杭州电子科技大学学报,2010,12.
[4]丁飞,张西良.ZigBee技术的硬件实现模式分析[EB/OL].http://www.armsky.net/articles/zigbee/671099428173.html.2008.
[5]高守伟,吴灿阳.ZigBee技术实践教程—基于CC2430/31的无线传感器网络解决方案[M].北京:北京航空航天大学出版社,2009.
[6]李文仲,段朝玉.ZigBee2006无线网络与无线定位实战[M].北京:北京航空航天大学出版社,2008.
[7]孟未来.基于无线传感器网络技术的温湿度数据采集系统的研制[D].沈阳:沈阳工业大学,2007.