衣翠平,柏逢明
(长春理工大学 电子信息工程学院,长春 130022)
粮库的温湿度直接影响储存粮食的质量,如果温湿度超标会出现发热、霉变等情况。大部分粮库温湿度都是采用有线的方式,铺设大量电缆,采用单片机多机通讯的方式检测,而面对粮库面积大且布局分散布线困难、现场信息分散等问题。用短距离无线通信方式可实时检测温湿度,低成本、低功耗、效率高。本文利用基于Zigbee技术构建无线传感器网络,对粮库温湿度进行实时采集、处理、传输和显示数据。
无线传感器网络由部署在检测区域内大量的廉价传感器节点组成,通过无线通信方式形成的一个自组织的网络系统,目的是协作地感知,采集和处理网络覆盖区域中感知的对象信息,并发送给观察者。因此,ZigBee技术和传感器结合就能够组建ZigBee无线传感器网络,实现一点对多点,两点间的通信,主要用于温湿度监控、工业监控、楼宇自动化等多个领域。
ZigBee技术最突出的特征是低成本、低功耗,主要特征如下:(1)低功耗;(2)低成本;(3)体积小,易于大规模布建;(4)可靠性高;(5)协议简单,通用性。
ZigBee协议层从下向上分别为物理层(PHY)、媒体控制层(MAC)、网络层(NWK)、应用层(APL)。其中MAC和PHY由 IEEE 802.15.4标准定义,ZigBee联盟定义了NWK和APL。一般ZigBee网络支持星型、树型和网状型网络拓扑结构,每个ZigBee网络必须有一个协调器作为父节点,其他的路由节点和终端节点作为子节点加入网络。
由于粮库节点固定不动,组网相对简单,且数据的传输量不大,因此采用只含有协调器和终端节点的星型网络拓扑结构就能够完成数据的正常通信。
粮库无线传感器网络的结构框架如图1所示,传感器节点负责对粮库温湿度的采集,并将采集的数据信息发送到终端节点;终端节点负责通过Zig-Bee协议将从传感器节点接收的数据发送到中心节点,并完成中心节点命令的传送;中心节点负责建立ZigBee网络,并发送和接收指令,通过RS232串口通信与PC机进行数据通信;PC机负责集中显示和控制粮库的温湿度状况。
图1 系统整体结构框图Fig.1 System general structure
为了增加中心节点的数据存储和处理能力,选用带256K Flash的射频芯片,而且有标准的8051增强型处理器,因此选用CC2530作为本设计的主芯片。
CC2530是Zigbee新一代SOC芯片真正的片上系统解决方案,支持IEEE 802.15.4标准/ZigBee RF4CE、Zigbee网络、家居及楼宇自动化、工业测控等领域,也是目前众多ZigBee设备产品中表现最为出众的微处理器之一。
作为片上系统,CC2530集成了增强型高速8051内核处理器,8KB的RAM,多达256KB的闪存以及支持更大的应用;8通道12位A/D转换器、2个USART接口,21个通用的GPIO等;支持2.0~3.6V供电电压,具有3种电源管理模式:唤醒模式0.2mA、睡眠模式1μA、中断模式0.4μA;具有较高的无线接收灵敏度和抗干扰性,传输距离大于75m,最高传输速率250kbps,CC2530外围电路如图2所示。
图2 CC2530外围电路图Fig.2 CC2530 peripheral circuit
由于CC2530内部已经集成了许多必要电路,因此只需较少的外围电路就能实现信号的收发功能。其中,采用无巴伦的阻抗匹配电路,整个结构满足匹配电阻(50欧)的要求。XTAL1为32MHZ的无源晶振,由1个32MHZ的石英谐振器和2个电容(C221和C231)组成,XTAL2为32.768KHZ的时钟晶振,由1个32.768KHZ的石英谐振器和2个电容(C321和C331)组成。LED1、LED2直接与I/O的P1.0和P1.1连接,用于确定节点是否在网络中。
当检测到温湿度时,CC2530对数据先进行预处理,为传输数据做好准备。然后通过LCD显示出来并通过天线发送给中心节点。结构框图如图3所示,传感器部分采集粮库温湿度数据;CC2530通信模块存储和处理传来的数据,并与协调器进行无线通信,电源模块采用锂电池供电。当传输完毕后,控制器进入睡眠模式,使控制器进入低功率模式来延长电池寿命。
图3 温湿度采集终端节点设计框图Fig.3 The design diagram of temperature and humidity collection terminal node
传感器模块是终端节点重要组成部分,负责监测和传输粮库温湿度数据,包括传感器工作电路、信号放大电路。SHT15是瑞士Sensirion公司推出的一款数字温湿度传感器芯片,该传感器不仅包含基于湿敏电容器的微型相对湿度传感器和基于带隙电路的微型温度传感器,湿敏电容一般是用高分子膜制成的,当环境湿度发生变化时,湿敏电容的介电常数发生变化,使其电容量发生变化,其电容变化量与相对湿度成正比[5];带隙电路是基于带隙结构PN结电压正比于绝对温度的感湿器件[6]。而且含有14位的A/D转换器,可靠的CRC传输校验,两线数字串行接口SCK和DATA,通过I2C总线与微处理器接口通信。SHT15的供电电压为2.4V~5.5V,平均功耗28uA,温度测量范围:-40℃~ +123.8℃,湿度测量范围:0~100﹪RH,温度测量精度:±0.3℃,湿度测量精度:±2.0﹪RH。当SHT15测量和通信完成后,会自动使能进入睡眠模式。
SHT15与CC2530之间通过串行总线I2C进行通信,DATA三态门用于数据的读取,SCK用于CC2530与SHT15之间的通讯同步。SHT15上电后,经过11s时间进入休眠状态,只有当CC2530微处理器发出测试命令后,SHT15才被唤醒进行工作。
表1 温湿度变化数据超出精度范围的最短△TTab.1 Minumum△T of temperature and humidity data beyond precision scope
为了提高终端节点电池寿命且粮库温湿度瞬间很少变化,终端节点需定时采集数据。如果温湿度变化没有发生大的变化时,那么较快的采集数据导致电池电量的消耗。另一方面,较短的时间采集可能导致系统检测不出数据的重大变化或者不能有效地控制温湿度。以粮库内不同位置的五个传感器节点为例,持续24h内读取了五组温湿度数据。合适的采集时间间隔是在最短的时间内观察到温湿度数据变化超出数字传感器的精度范围(±2.0﹪RH和±0.3℃)。表1例举了5个传感器温湿度数据超出精度范围的最短时间。从表中数据中可以看出,最短温度变化是13min,最短湿度变化是2min。根据尼奎斯特定理准则和2min的最短时间,在此采集时间间隔是每分钟一次。也就是终端节点每隔一分钟采集数据并发送,大大节省电池消耗,降低了传输数据的误差,增加了系统的稳定性和准确性。
中心节点(协调器)作为无线传感器网络的核心,实现粮库温湿度数据的收发,并通过RS232串口通信将数据发送到上位机,建立友好的人机界面,实现整个系统的可控性和可视性。节点设计采用模块化功能设计,使中心节点完全可以组成一个可以独立工作的监测系统。中心节点框图如图4所示,CC2530通信模块作为中心节点的关键部分,接收和存储传感器节点发来的数据,并发送网络指令给传感器节点,同时与PC机进行数据交换;LED显示网络节点工作状态;电源模块提供工作电压是3.3V,为了提高电压芯片内部电压精度,输入电压采用调制后的3.3V稳压电源。
图4 中心节点设计框图Fig.4 The design diagram of center node
系统的软件设计能够实现系统的功能,通过对系统的硬件部分进行软件编程,来实现ZigBee网络的建立;温湿度数据的采集;各节点数据的传输最后显示在PC机上。本系统利用的协议栈是TI的Z-STACK。ZigBee协议栈运行在一个OSAL(操作系统抽象层)上,该操作系统是基于任务调度机制,通过对任务的事件触发来完成任务调度,各种不同的任务在不同的层次上运行,通过层的服务来完成数据传输的任务。
图5 主程序流程图Fig.5 The main program flowchart
软件采用模块化的设计方法,当温湿度超过粮库温湿度设定的上限值(或低于下限值)则进行声光报警,并及时做出相应的处理。主程序流程如图5所示
终端节点主要采集温湿度数据并发送给协调器,并接收来自协调器的相关命令。
从节点上电后,首先硬件初始化和协议栈初始化,搜索临近的可用网络并申请加入,成功加入后进入省电模式。当没有数据传输请求时,进入睡眠模式,之后采取中断唤醒的工作机制。当有数据传输请求时,进入工作模式,进行温湿度采集并发送,发送完成后进入下一轮的数据采集。终端节点软件流程图如图6所示。
图6 终端节点软件流程图Fig.6 Terminal node flowchart
中心节点负责建立一个ZigBee无线网络,本设计所组建的是一个星型网络拓扑结构,与其它终端节点进行数据传输,在网络中起到协调器的作用。
图7 中心节点软件流程图Fig.7 Center node flowchart
主节点上电后,首先初始化CC2530芯片及ZigBee协议栈,搜索信道和空闲信道评估,选择信道并建立ZigBee网络。当有节点申请加入网络时,准许加入并分配一个16位的网络短地址,等待采集数据的命令,然后将接收的所有数据包通过串口通信发送到PC机上,以便更容易地进行数据分析和数据存储。中心节点软件流程图如图7所示。
表2 温湿度数据信息Tab.2 Temperature and humidity data information
本系统采用星型网络拓扑结构,终端节点每隔1分钟采集一次数据并发送给协调器,协调器再通过串口将数据发送到PC机上,串口设置为COM1,波特率设置为19200bps,数据为8bits,无奇偶校验,停止位1bit。启动串口调试助手,在实验室利用空调升降温测得温湿度数据,与实际温湿度进行比较。
图8 温度对比图Fig.8 Temperature comparsion diagram
图9 湿度对比图Fig.9 Humidity comparsion diagram
利用MATLAB对测得的温湿度与实际的温湿度数据以折线图的形式比。如图8和图9所示
温湿度对比图可以看出星型网络能够实现数据采集和传输的功能。测量的结果准确性高,从数据信息中可看出温度误差不超过±0.7℃,湿度误差不超过±%2RH。
本文通过设计基于ZigBee技术的CC2530无线温湿度检测系统方案,研究了15个传感器节点的温湿度,实现了粮库内的多点检测和无线传输数据,利用MATLAB对数据进行了分析和处理,结果达到了预想的要求。该系统结构简单,功耗低,检测效率高,抗干扰性好,且能够长时间稳定工作,具有较高的实用价值和经济价值。
[1]包长春,李志红,张立山,等.基于ZigBee技术的粮库监测系统设计[J].农业工程学报,2009,25(9):197-201.
[2]方乒乓,傅洪亮,路良友.粮仓监测系统中无线ZigBee的应用与实现[J].山东通信技术,2010,30(2):7-10.
[3]李新.基于CC2530的ZigBee网络节点设计[J].PLC&FA,2011:97-99.
[4]马巧娟,郑萍,王晓光,等.基于ZigBee和LABVIEW的多点无线温湿度采集系统设计[J].中国仪器仪表,2009,4:49-52.
[5]张盛福,张鹏.提高湿敏电容测量精度的方法[J].仪表技术与传感器,2003,8:34-35.
[6]吴斯敏,邹雪城,余国义.一种嵌入Bicmos带隙电路的过温保护电路[J]. 舰船电子工程,2003,8:151-153.
[7]韩成浩,李柏峰,高晓红,等.智能小区温湿度检测系统设计[J].长春理工大学学报:自然科学版,2009,32(3):494-497.