ZigBee是基于IEEE802.15.4无线标准研制开发的有关组网、安全和应用软件方面的技术标准,其特点是近距离、低复杂度、自组织、低功耗、低数据速率、低成本。美国TI公司的CC2530芯片集成了51单片机内核,其开发平台具有基于2004/2006/2007/PRO协议栈的开发模板。针对CC2530芯片的ZigBee开发平台可与IAR for MCS-51集成开发环境无缝连接,操作和连接方便。系统中主协调器负责启动整个网络,由USB接口直接供电;终端节点由自带电池供电;主协调器与远程智能监控平台通过USB直接串口连接,并通过CC2530的射频模块实现与终端设备的无线通信。
3.1.2 CC2530开发平台
TI CC2530开发平台采用Z-Stack微操作系统进行应用程序的开发。Z-Stack是由TI公司推出的业界领先的ZigBee协议栈,支持多种平台。Z-Stack包含了网状网络拓扑的几近于全功能的协议栈,采用操作系统的思想来构建,采用事件轮循机制,当各层初始化之后,系统进入低功耗模式;当事件发生时,唤醒系统,开始进入中断处理事件,结束后继续进入低功耗模式。如果同时有几个事件发生,则判断优先级,逐次处理事件。这种软件构架可以极大地降低系统功耗。整个Z-Stack的主要工作流程大致分为系统启动、驱动初始化、OSAL初始化和启动、进入任务轮循几个阶段。
在本系统中,由于传感节点少、传输距离短,选择星型网络的拓扑结构,协调器采用广播的方式发送信息,而终端节点采用单播发送方式数据。CC2530平台支持避免冲突的载波侦听多路存取(CSMA/CA)功能,在无线传感器网络启动后,主协调器处于监听状态,终端节点进行数据的发送,如果侦听信道状态空闲则传送数据包,否则等待并延时,直到信道状态空闲数据包发送成功为止。无线传感器网络中终端节点内部程序流程如图2所示。
3.2 远程智能监控平台
本系统中实现与无线传感器网络中主协调器进行通信的远程智能监控平台是Web系统。连接程序在MyEclipse2013环境下用Java编写,RXTXcomm.jar函数库支持串口通信。页面程序通过JSP实现,可以对波特率及COM端口等进行设置调整,并可以进行远程监控。该平台实现了对无线传感器网络的数据接收,并按照设置好的数据格式进行数据采集,通过Java编写的存储程序存入远程服务器的数据库。接口程序流程如图3所示。
本系统通过一个结构体对各个节点的数据包进行规范,以便于数据采集。数据包格式如表1所示。数据头使用的是“&&”字符,数据尾采用1个“&”。
例如路由节点采集温度时使用如下填充数据的方式,如表2所示。设备名称temp表示设备是温度设备;节点类型ROU表示节点是路由节点;后面紧跟路由器的网络地址;传感器数据值字段采集的是含1位小数的4位温度值。
3.3 Web应用服务系统
利用JSP和前端Ajax框架ExtJs,使用MySQL数据库和Tomcat服务器,开发的Web应用服务系统可以与远程智能监控平台和云服务平台进行快速整合,界面操作简单、美观,且能够大大缩短系统的研发周期,降低开发成本。
该系统实现人性化监控,包括室内环境监控数据显示、终端节点控制以及对数据通过云服务层处理进行室内环境舒适度评分,并列出所在服务系统中的排名。系统界面如图4所示。
系统中只对温度(T)、湿度(H)和光照(I)3个参数进行监测。Web应用服务系统中排名算法为:Ri=|Ti-T|+|Hi-H|+|Ii-I|,其中T、H、I是设定的参考值,再经过与系统中各R值进行比较得出。参数状态及舒适度算法采用模糊理论,对应参数状态如表3所示,热舒适度评判如表4所示,光舒适度评判如表5所示,室内环境舒适度评判如表6所示。