0引言
在现代工农业生产中,进行环境的温湿度检测是必不可少的内容。目前,很多场合的测温湿系统采用的还是传统的有线测温湿度设备,传统的多点分布式温湿度测量系统采用有线传输方式,需要在现场进行大量布线,这给系统的布设、维护和更新升级带来诸多不便。
ZigBee是一种新兴的短距离、低复杂度、低功耗、低数据速率、低成本的无线网络技术,主要用于近距离无线连接。它依据IEEE 802.1 5.4标准,在数千个微小的传感器之间相互协调实现通信。它使用2.4GHz波段,采用调频及扩频技术,具有短时延、网络容量大等特点。Z igBee无线网络主要是为工农业现场自动化控制数据传输而建立。本文设计了一种基于无线射频技术的温湿度监测系统,它以射频芯片CC2430为核心,在数字温湿度传感器SHT11的配合下,在ZigBee协议栈的基础上进行应用开发,能够高效地完成环境温湿度的无线监测,可以有效解决复杂布线带来的不便。
1系统原理
本文设计的是基于Z—Staek的无线温湿度数据采集系统,在TI的Z—Stack 1.4.2协议栈的基础上,实现无线组网及通信。即协调器自动组网,终端节点(附带温湿度传感器)自动入网,并采集温湿度数据广播传输,协调器接收到信息后将温湿度数据通过串口发送给PC计算机显示。以此实现基于Z—Stack协议栈的温湿度数据的无线透明传输,其原理框图如图1所示。
本系统主要由五个单元模块构成:数字温湿度传感器、传感器节点、协调器、上位机和能量供应模块组成。数字温湿度传感器模块,负责区域内的温湿度信息采集和数据转换;传感器节点中的微控制器负责控制整个传感器节点的操作和数据存储;ZigBee无线收发模块负责对信号进行处理发送;传感器节点由温湿度传感器SHT11检测得到温湿度信息,并转化为数字信号,传输至CC2430,由CC2430负责对信号进行处理发送。节点电源部分使用两节AA电池,通过一个电压转换芯片BL8555将电压转化成3.3 V.其中协调器是汇聚节点,多个温湿度传感器节点放置于不同的监测区域,每个传感器都会把采集的温湿度送给传感器节点,再由传感器节点把数据通过ZigBee无线传输给协调器,然后协调器统一把数据传送给上位机做进一步处理和显示。
2硬件设计
2.1传感器节点硬件设计
传感器节点主要由数字温湿度传感器、微控制器及无线通信电路组成。传感器节点的主控制器实时采集处理温湿度数据后,将数据传递给CC2430无线通信模块,以实现数据的定时发送。
2.2通信节点硬件设计
协调器负责建立无线网络、发送网络信标、存储网络节点信息、对消息进行路由选择等任务,其硬件组成主要包括处理器、时钟电路、存储器、电平转换电路、天线等部分。在本系统中协调器节点采用CC2430为核心的控制器,它只需少量的外围电路即可实现无线通信功能,硬件电路如图2所示。
3软件设计
本系统基于TI的Z—Stack协议栈,Z—Stack采用操作系统的思想来构建,采用事件轮询机制,当各层初始化之后,系统进入低功耗模式,当事件发生时,唤醒系统,开始进入中断处理事件,结束后继续进入低功耗模式,如果同时有几个事件发生,判断优先级,逐次处理事件。整个Z—Stack的主要工作流程,大致分为系统启动,驱动初始化,OSAL初始化和启动,进入任务轮循几个阶段,Z—Stack系统运行流程如图3所示。
3.1节点软件设计
在本采集系统中,各节点的系统底层采用TI公司的Z—Stack协议栈,各节点的network_specific参数配置相同。协调器首先在某个频段发起一个网络,网络频段的定义放在DEFAULT_CHANLIST配置文件里,并根据ZDAPP_CONFIG_PANID的定义建立PAN ID,并扫描DEFAULT_CHANLI ST指定的所有信道,并选择最佳信道组建网络。传感器节点启动后,扫描DEFAULT_CHANLIST所指定的信道并根据ZDAPP_CONFIG_PANID所定义的PANID自动加入网路。各节点的软件流程如图4,图5所示。
3.2温湿度传感器采集流程图
与CC2430相连DATA、SCK两引脚,通过SCK引脚线可以实现对SHT11的控制,通过DATA引脚线可以传输传感器采集的数据,本系统中温湿度传感器的时钟线与传感器节点CC2430的P0_0线连接,数据线与P0_1线相连,采集中设置SHT11的工作精度为14位温度,12位的湿度测量,总流程图如图6所示,读取温湿度流程图如图7所示。
3.3基于Z—Stack协议栈的温湿度数据无线透明传输的实现
在Z-Stack协议栈中,协调器自启动,节点设备自动入网之后,两者建立无线通信,数据的发送主要有两种方式,一种为周期定时发送信息,另一种需要通过按键事件触发发送FLASH信息,在本设计中采用周期定时广播的方式发送ZigBee节点端采集到的温湿度数据。在Z-Stack中,每个应用任务都通过调用应用层的ProcessEvent()函数来处理任务事件,在ProcessEvent()中有一个事件处理循环,循环检测事件的发生。因此在节点模块端的SampleApp_SendPeriodicMessage周期信息发送函数中添加温湿度采集函数,并通过AF_DataRequest()函数接口实现温湿度数据的无线发送,同样在协调器信息处理函数SampleAPP_MessageCB中,添加温湿度数据处理和发送函数,并在协调器的应用层通过检测AF_INCOMING_MSG_CMD消息事件来判断是否有数据收到,有数据时,将捕获的温湿度数据处理后,以字符串的形式通过串口显示在PC机的终端中。利用超级终端接收到的温湿度数据如图8所示。
4结论
本系统在启动协调器模块后,能实现自动组网,节点端自动入网,并能将采集的温湿度数据广播发送给协调器,协调器接收到信息后通过串口将接收到的温湿度数据发送给PC机,本系统具有低复杂度、低功耗、短时延、网络容量大等特点,并解决了传统的有线传输方式,需要在现场进行大量布线,系统的布设、维护和更新升级的困扰,系统运行稳定、可靠,能精确实现温湿度数据的采集、传输,在实际中有很好的应用价值。