基于Zigbee的温度湿度监测系统的研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于Zigbee 的温度湿度监测系统的研究
王公堂,李艳华,杨宝
(山东师范大学物理与电子科学学院,山东济南250014)
摘要:根据一些环境温度湿度实时监测的需要,采用首个符合Zigbee 标准的CC2430射频芯片,以SHT10为温湿度传感器来设计实现温度湿度的数据采集与传输。
利用TI 公司的Z-Stack 协议栈在IAR 开发环境下,建立一个无线传感器网络。
网络协调器通过RS232串口与PC 通信,实现对温度湿度的无线智能监测关键词:Zigbee ;无线网络;CC2430;温度湿度监测中图分类号:TP274.2
文献标识码:A
文章编号:1674-6236(2013)01-0063-04
Research of temperature and humidity system based on Zigbee
WANG Gong -tang ,LI Yan -hua ,YANG Bao
(College of Physics and Electronics ,Shandong Normal University ,Jinan 250014,China )
Abstract:According to the needs of some real -time monitoring of environmental temperature and humidity ,the CC2430RF chip that first meets Zigbee standard and SHT10sensor are used to design and implement the data acquisition and transmission of temperature and humidity.It uses the Z -Stack protocol of TI Company under IAR development environment to establish a wireless sensor network.The network coordinator communicate with PC by RS232serial port to realize the wireless intelligent monitoring of temperature and humidity.
Key words:Zigbee ;wireless network ;CC2430;monitoring of temperature and humidity
收稿日期:2012-09-17
稿件编号:201209118
基金项目:山东省研究生教育创新计划资助项目(SDYY11115)
作者简介:王公堂(1964—),男,山东济宁人,硕士,副教授。
研究方向:电子测量及智能化仪表。
在生命科学设施、计量校准实验室和电子制造环境,温度和湿度往往需要监测和报警显示,以保障产品和工艺;在农业种植、环境监测和我们的日常生活中,要时刻关心环境变化,只有在适宜的温度和湿度下,才能获得更大的效益。
以往的测温测湿系统都是通过CAN 或RS485等有线方式传送数据,线路复杂布线困难,成本高,老化、容易受雷击等问题影响了其可靠性。
另外,像温度、湿度传感器这样的设备并不需要很大的功耗和数据传输速率。
Zigbee 技术弥补了低成本、低功耗和低速率无线通信市场的空缺,其成功的关键在于丰富而便捷的应用。
Zigbee 技术有自己的无线电标准,在数千个微小的传感
器之间相互协调实现网络通信。
这些传感器只需要很低的功耗,以接力的方式通过无线电波将数据从一个传感器传到另一个传感器,它们的通信效率非常高。
无需布线,可以按照需要增减温度湿度采集节点,自组织网络,并且节点功耗低,生命周期长,使用灵活方便。
因此,采用Zigbee 技术来设计温度湿度监测系统,具有明显的实用价值和现实意义。
1Zigbee 技术及协议栈
Zigbee [1]是一种新兴的短距离、低速率、低成本无线网络
技术,是一个由可多到65000个无线数传模块组成的一个无线数传网络平台。
Zigbee 协议栈[2]对那些涉及Zigbee 的层予以定义。
IEEE 802.15.4标准定义了最下面的两层:物理层(PHY )和介质接入控制子层(MAC )。
Zigbee 联盟提供了网络层和应用层框架的设计,其中应用层的框架包括了应用支持子层(APS )、设备对象层(ZDO )和由制造商制订的应用对象。
Zigbee 支持的设备类型包括FFD (全功能设备)和RFD (半功
能设备)。
FFD 可以和FFD 和RFD 通信,可以为PAN 协调器,路由器和终端设备。
RFD 只能和FFD 通信,只能作为终端设备。
在IEEE802.15.4物理层和MAC 层基础上,Zigbee 网络层提供了一些功能,比如动态网络的建立、地址、路由和发现一跳的邻居节点等。
2系统的组成
该监测系统由Zigbee 协调器、Zigbee 路由器、若干个
SHT10温湿度传感器组成的树状网络结构图。
其中,传感器
节点[3]分布于需要监测的区域,负责对数据的感知和处理,并通过无线射频信号发射给路由器,再通过路由器的转发将数据传给协调器,最终通过RS232串口将数据送入监控主机,监控主机放在监控室,负责数据存储和对数据的进一步处理。
Zigbee 网络中,每个设备拥有两个地址:一个是64位
IEEE 物理地址,每个节点拥有全球唯一的MAC 地址,另一
个是所在PAN 里独有16位网络地址,也称短地址。
网络地
电子设计工程
Electronic Design Engineering
第21卷
Vol.21
第1期No.12013年1月Jan.2013
-63-
《电子设计工程》2013年第1期
图1核心板电路
Fig.1Core board circuit
图2
电源电路
Fig.2Power circuit
址是在节点加入网络时,由其父节点分配给它的。
协调器在建立网络后使用0x000作为自己的短地址。
路由器和终端加入网络后,使用父设备给它分配的短地址来通讯。
工作人员无需到现场,通过查看网络地址即可知道哪一点传来的数据,这样既方便快速又可集中查询、管理数据。
3硬件设计
为了便于系统功能扩展,节点采用模块化设计,分为
核心板、底板、传感器模块3个部分。
核心板负责传感器
的驱动以及数据的传输工作。
它的主控芯片是CC2430[4],是一款真正符合IEEE802.15.4标准的片上Zigbee 产品,具有超低功耗、高灵敏度、出众的噪声及抗干扰能力。
核心板即为CC2430单片机的最小系统板,它将CC2430单片机的P0口、P1口和P2_0—P2_2全部引出,满足模块化设计的需求。
由于CC2430在单个芯片上整合了ZigBee 射频(RF )前端、内存和微控制器。
内部集成了大量必要的电路,因此采用较少的外围电路即实现信号的收发功能,如图1所示。
底板一方面连接核心板与传感器模块,在传感器与芯片
之间进行数据传输,另一方面为整个模块供电和节点与PC 机之间通信的接口,主要由电源电路、单片机接口电路、复位电路等组成。
系统中CC2430芯片需要的电源是3.3V 直流稳压电源,而我们常用的电源电压是5V ,所以需要用DC —
DC 直流转换器1117-3.3将5V 直流电转换为3.3V 直流
电,以供系统正常工作需求。
电源模块电路如图2所示。
传感器模块采用温湿度传感器SHT10,负责采集温度、湿度数据,其工作电压为2.4~5.5V ,测湿精度为±4.5%RH ,25℃时测温精度为±0.5℃。
由于传感器SHT10既可以采集温度数据也可以采集湿度数据。
它用两条串行线与处理器进行数据通信,SCK 数据线负责处理器和SHT10的通讯同步;DATA 三态门用于数据的读写。
将模拟量转换为数字量输出,所以
用户只需按照它提供的接口将温湿度数据读取出来即可。
数据采集完成后Zigbee 无线通信芯片将数据经路由器传输到协调器,这样温湿度采集节点便完成了一次工作周期。
本设计中CC2430的引脚P0_0用于连接SCK ,P0_4用于连接
DATA。
-64-
4系统软件设计
本系统软件设计基于TI 公司推出的CC2430芯片配套
的Z-Stack 协议栈和IAR 集成开发环境。
在TI 免费协议栈的基础上,通过修改其应用层来实现不同的功能。
一般情况下,我们只需要添加三个文件就可以完成一个项目,一个是主文件,存放具体的任务处理函数,一个是这个主文件的头文件,另一个是操作系统接口文件,专门存放任务处理函数数组tasksArr[]的文件。
无需改动Z-Stack 核心代码,大大增加了项目的通用性和易移植性。
我们把Coordinator 、Router 和End Device 这三种设备一起添加到项目中,在“project
==>edit configurations ”中,分别建立“Coordinator ”“Router ”及
“EndDevice ”三种设备的项目设置。
无线传感器网络代码包括协调器代码、路由器代码、传感器节点代码。
这些代码都在同一个工程文件中,通过条件编译的方式将代码分成不同的功能。
4.1协调器节点设计
在一个Zigbee 无线网络中,协调器作为网络的中心节点
最先启动。
复位上电以后,首先进行系统初始化。
完成之后,就会扫描DEFAULT_CHANLIST 指定的信道,最后选择一个合适的信道建立网络,等待有子节点加入时,就会发出入网响应。
子节点加入网络成功后,协调器接收到传来的数据包,解析出数据源的短地址、温度和湿度值并将其传送给PC 显示出来。
其流程图如图3所示。
4.2
子节点设计
路由器和终端设备启动后,将扫描DEFAULT_CHANLIST 指定的频道。
首先进行初始化,然后申请加入网络成功之后,通过JionAsRouter=TRUE?判断是否为路由器。
如果是,则等待终端设备传来的温湿度数据,接收后再转发给协调器。
如果是终端设备,传感器节点[6]在不同工作模式下功耗大不一
样,为了降低功耗,它平时应该处于休眠模式,被唤醒后才将数据发给父节点,发送完后再次进入休眠模式。
通信协议应该简单有效,发送节点信息时使用短地址发送,使得节点的运算开销尽量小,这样可大大延长节点的寿命。
子节点通信流程如图4所示。
传感器节点每隔一段时间采集一次温度、湿度值,然后把数据打包传输给父节点,如果传输成功,节点进入休眠状态;如果传输不成功,就再重新采集数据传输数据,直到成功为止。
温湿度传感器烧写步骤:在项目的应用层(APP )中添加
Humidity.c 和Humidity.h 文件,然后在操作系统接口文件OSAL_SampleApp.c 中的任务数组tasksArr[]添加任务函数osalTaskAdd (Humidity_Init ,Humidity_ProcessEvent ,OSAL_TASK_PRIORITY_LOW ),最后运行程序没有错误后,把程序
烧写到传感器节点即可。
4.3低功耗设计
为了使节点有更长的生存时间,对传感器节点进行休眠
设置。
CC2430芯片采用0.18μm CMOS 工艺生产,工作时的电流损耗为27mA ;在接收和发射模式下,电流损耗分别低于27mA 和25mA 。
CC2430的休眠模式和转换到主动模式时间超短,不会产生很大的时间延迟。
Z-Stack 提供了两种
sleep 模式,LITE 和DEEP (PM2/PM3)。
PM2模式比较省功耗
而且可以被定时唤醒;PM3模式最省电但是只能被外部中断唤醒。
系统在进入低功耗模式前,必须保证没有需要处理的
消息或其他事件。
当系统需要周期性地唤醒执行一些事件时使用PM2模式,如果当前没有任务那么将进入PM3模式。
开启休眠模式如下:首先确认在配置文件f8wConfig.cfg 中的
DRFD_RCVC_ALWAYS_ON 定义为FALSE ;第二步,在IAR
的Options->C/C++Compiler->Defined symbols 中添加编译选项POWER_SAVING ;第三步,在Options->Linker->Linker
command line 里面把f8w2430.xcl 改为f8w2430pm.xcl ;第四
步,查看是否进去低功耗模式,在osal.c 文件中
图4
子节点设计流程图
Fig.4
Flow chart of the descendants design
图3
协调器设计流程图
Fig.3Flow chart of the coordinator
design
王公堂,等基于Zigbee 的温度湿度监测系统的研究
-65-
《电子设计工程》2013年第1期
for farmland data acquisition based on wireless sensor network[J].Transactions of the Chinese Society of Agricultural Engineering ,2009,25(4):176-178.
[7]Torres E ,Rincon -mora G.Energy -harvesting system -in -package microsystem [J].Journal of Energy Engineering ,2008,134
(4):121-129.
[8]赵清华,张玮,李鸿燕,等.无线传感器网络新型能量管理
系统[J].传感器与微系统,2009,28(10):97-99.
ZHAO Qing -hua ,ZHANG Wei ,LI Hong -yan ,et al.Wireless sensor network new energy management system[J].Sensor and Micro System ,2009,28(10):97-99.
osal_start_system ()中以下部分加断点,看是否进入。
#if defined (POWER_SAVING )else {
set_sleep_mode (SLEEP_MODE_PWR_SAVE );osal_pwrmgr_powerconserve ();}#endif
5测试结果
采用一个协调器、一个路由器和3个温湿度传感器节
点测试,各个节点与协调器相距大约50米。
首先打开电源,待协调器建立网络之后,路由器和终端节点就开始申请加入网络。
等待底板上的信号指示灯闪烁后,就表明有节点成功加入网络,终端节点开始周期性地采集周围环境的温度湿度值。
采集一次数据后,指示灯熄灭,说明此时终端节点进入低功耗模式。
协调器通过RS232与PC 相连,通过串口调试助手显示数据,设置波特率为115200b/s ,无校验位,8位数据位,1位停止位。
某一时刻采集到各点的温度湿度值如图5所示(小端格式十六进制显示)。
根据SHT10数据手册,实际温度=0.04×温度值-39.6,实际湿度=-4++0.648×湿度值-7.2×10-4×湿度值2,经计算实际温度约为27.5℃,实际湿度约为51.6%RH 。
6结束语
文中以CC2430为核心实现了温度湿度监测系统的设
计,在传感器SHT10的配合下,完成了对环境温度湿度的无线监测。
在硬件方面为模块化设计,具有扩展性,加上相应的传感器可以测其他因素如光照、气体浓度等,可以监测更多的环境因素;软件方面简化通信协议,并使终端休眠,降低了其功耗,延长了节点使用寿命。
在使用过程中可以通过在
Zigbee 协调器及路由器上添加TI 公司的2.4GHZ 射频前端CC2591来增加网络的覆盖范围[6],或者增加GPRS 模块来进
行更远程的无线监测。
实用性高,可扩展性强,可广泛应用在仓储系统、中央空调系统、温室大棚、精密仪器的实验室和温度湿度条件要求严格的环境中,市场前景广阔。
参考文献:
[1]李文仲,段朝玉.Zigbee 无线出网络技术入门与实践[M].北
京航空航天大学出版社,2007.
[2]Zigbee Alliance.Zigbee Specification.[EB/OL](2008)..
[3]辛颖,谢光忠.基于ZigBee 协议的温度湿度无线传感器网
络[J].传感器与微系统,2006(7):28-29.
XIN Ying ,XIE Guang -zhong.The temperature and humidity wireless sensor network based on ZigBee[J].Transducer and Microsystem Technologies ,2006(7):28-29.
[4]高守玮,吴灿阳.ZigBee 技术实践教程[M].北京航空航天
大学出版社,2008.
[5]张晴晖,李俊萩,张宏翔.基于ZigBee 的环境监测系统的设
计[J].研究与开发,2010,1(29):46-47.
ZHANG Qing -hui ,LI Jun -qiu ,ZHANG Hong -xiang.The design of environment monitoring based on ZigBee[J].The Research and Development ,2010,1(29):46-47.
[6]贺才军,方厚辉,管于球,等.ZigBee 技术在工业监控网络
中的应用[J].计算机系统应用,2010,9(5):181.
HE Cai -jun ,FANG Hou -hui ,GUAN Yu -qiu ,et al.ZigBee
technology application in industrial control network[J].The Computer System Application ,2010,9(5):181.
图5
串口显示数据图
Fig.5Serial data
shown
(上接第62页)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-66-。