李延 張發(fā)生
摘要:針對布設線纜監(jiān)測室內溫濕度的傳統(tǒng)方式存在的布線復雜、成本較高、維護難及擴展性較差等不足,結合Zigbee及嵌入式開發(fā)技術,提出一種基于Zigbee協議棧的ZStack室內溫濕度監(jiān)測系統(tǒng)設計方案。系統(tǒng)使用射頻芯片CC2530、處理器STC89C52和溫濕度傳感器DHT21,具有結構簡單、可靠性與擴展性好、布點靈活等特點,為ZStack應用開發(fā)及智能家居環(huán)境調控的研究及實現提供重要的理論及應用基礎。
關鍵詞關鍵詞:Zigbee;ZStack;溫濕度監(jiān)測;智能家居
DOIDOI:10.11907/rjdk.143967
中圖分類號:TP319
文獻標識碼:A文章編號文章編號:16727800(2015)002009403
基金項目基金項目:
作者簡介作者簡介:李延(1990-),男,湖南邵陽人,中南林業(yè)科技大學計算機與信息工程學院碩士研究生,研究方向為智能檢測與自動控制。
0引言
在物聯網時代,智能家居發(fā)展已成為一種趨勢,而溫度、濕度與人們的日常生活息息相關,影響著安全、舒適的生活體驗。因此,對這些環(huán)境參量進行監(jiān)測和調節(jié)在智能家居生活中必不可少。采用鋪設電纜的傳統(tǒng)方式,當需要監(jiān)測和控制的對象較多時,布線繁瑣、維護和升級困難,成本高、靈活性差等一系列的問題就凸顯出來\[13\]。
ZigBee技術是一種新興的短距離、低復雜度的雙向無線網絡技術,具有能耗低、成本低、網絡容量大、時延短和安全等特點\[4\]。此外,ZigBee還具備自組織網絡的功能,能實現網絡自我功能恢復。ZigBee技術以其經濟、可靠、高效等優(yōu)點在物聯網中有著良好的應用前景\[5\]。
1系統(tǒng)總體設計方案
系統(tǒng)使用單片機STC89C52作為節(jié)點控制器,使用數字溫濕度傳感器DHT21(AM2301)構建節(jié)點傳感器單元,使用TI無線射頻芯片CC2530搭建無線網絡節(jié)點??紤]到家庭住房較密集、面積較大等特點,以及Zigbee節(jié)點網絡容量大的特性,整個系統(tǒng)采用星型拓撲結構的連接方式。為驗證方案的可行性,本設計選用3個終端節(jié)點,分別安裝在室內3個不同方位。
如圖1所示,3個終端節(jié)點作為監(jiān)測節(jié)點,實時檢測房間內的溫濕度,并將其定時傳送至協調器。協調器節(jié)點通過串口與PC機相連,接收到溫濕度數據后通過串口將其發(fā)送至PC機。在PC上設置好串口號、波特率等參數后,即可在串口調試窗口上顯示出協調器接收到的溫濕度數據。
2硬件設計
2.1終端節(jié)點硬件設計
如圖2所示,終端節(jié)點由控制模塊、傳感器模塊、無線模塊和電源模塊組成??刂颇K采用高性能、低功耗的8位微控制器STC89C52,按照一定的時序讀寫數字溫濕度傳感器DHT21來獲取區(qū)域內的溫濕度,單片機獲得溫濕度后通過串口將具體的數據發(fā)送給射頻芯片CC2530,再由射頻收發(fā)器終端節(jié)點將溫濕度值發(fā)送給協調器。
圖2終端節(jié)點硬件
2.2協調器節(jié)點硬件設計
網絡協調器承擔著網絡組建、網絡管理以及收集監(jiān)測節(jié)點的數據并上傳給PC機的任務,是一個ZigBee全功能設備。在本系統(tǒng)中,協調器節(jié)點的硬件電路比較簡單,射頻芯片采用TICC2530,同時使用PL2303模塊(STC下載器)連接協調器和PC機。
2.3主要模塊
(1)無線模塊。
本系統(tǒng)使用TI公司的CC2530無線射頻芯片。該芯片使用的8051CPU內核是一個單周期的8051兼容內核,它有3個不同的存儲器訪問總線(SFR、DATA 和CODE/XDATA),以單周期訪問SFR、DATA和主SRAM。它還包括一個調試接口和一個擴展中斷單元。另外,CC2530具有電源管理功能,可以實現工作模式的切換,從而保證了芯片的低功耗性能。芯片內部提供了一個IEEE 802.15.4兼容的無線收發(fā)器,RF內核控制模擬無線模塊,提供了MCU和無線設備之間的一個接口,可以發(fā)出命令、讀取狀態(tài)、自動操作和確定無線設備事件的順序。此外,無線設備還包括一個數據包過濾及地址識別模塊。
(2)傳感器模塊。
DHT21數字溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度復合傳感器。它應用數字模塊采集技術和溫濕度傳感技術,確保產品具有極高的可靠性與卓越的長期穩(wěn)定性。該產品具有品質卓越、響應快、抗干擾能力強、性價比高等優(yōu)點。外接3個接口分別為VCC、SDA和GND,SDA用于微處理器與DHT21之間的通訊和同步。
3軟件設計
單片機STC89C52的軟件開發(fā)平臺選擇Keil uVision4,Zigbee協議棧ZStack的應用開發(fā)平臺選擇IAR Embedded Workbench。其中,ZStack的應用開發(fā)需先下載并安裝ZStack軟件包(使用ZstackCC25302.5.1a)。
3.1ZStack協議棧
ZStack是TI公司推出的Zigbee2007協議棧,是Zigbee協議的具體實現,它相當于一個小型的操作系統(tǒng),包括14個文件目錄:App、HAL、MAC、MT、NWK、OSAL、Profile、Securitey、Services、Tools、ZDO、ZMAC、ZMain、Output。TI ZStack協議??傮w上由硬件抽象層HAL、操作系統(tǒng)抽象層OSAL和Zigbee協議層組成\[6\]。HAL層提供Timer、I/O、UART等硬件資源的API,OASL層負責任務管理。用戶可以使用協議棧提供的API 進行應用程序開發(fā),在開發(fā)過程中完全不必關心ZigBee協議的具體實現細節(jié)\[7\]。Z-Stack系統(tǒng)采用任務輪詢的機制,各層任務初始化之后便進入查詢等待的低功耗模式,如果有事件發(fā)生,系統(tǒng)便被喚醒,中斷并處理發(fā)生的事件,處理完后再次進入低功耗模式。若幾個事件同時發(fā)生,系統(tǒng)便根據事件的優(yōu)先級依次進行處理\[7\]。協議棧工作流程如圖3所示。
3.2ZStack無線收發(fā)程序設計
對于Zigbee部分軟件設計,采用基于協議棧ZStack的應用開發(fā)方式,節(jié)點無線收發(fā)的程序設計按照節(jié)點種類的不同分為兩類,即終端(監(jiān)測節(jié)點)程序設計與協調器程序設計。兩類程序的架構基本一致,由于功能實現要求不同,存在一定差異,主要表現在以下方面:
(1)通訊方式設置。
Zigbee的通訊方式主要有3種:點播、組播、廣播。點播,顧名思義是點對點通信,也就是2個設備之間的通訊,不容許有第三個設備收到信息;組播就是將網絡中的節(jié)點分組,組員發(fā)出的信息只有組號相同的組員才能收到;廣播就是1個設備上發(fā)出的信息所有設備都能接收到。
本系統(tǒng)由于終端之間并不要求通訊,只是與協調器相互通信,因此將所有的終端監(jiān)測節(jié)點都設置為點播方式,目標地址設置為協調器的網絡地址:
SampleApp_Point_DstAddr.addrMode=
(afAddrMode_t)Addr16Bit;
SampleApp_Point_DstAddr.addr.shortAddr=0x0000;
而對于協調器來說,為便于協調和管理所有的子節(jié)點,宜采用廣播的方式讓所有的子節(jié)點都能收到信息,因此將地址信息設置為:
SampleApp_Periodic_DstAddr.addrMode =
(afAddrMode_t)AddrBroadcast;
SampleApp_Periodic_DstAddr.addr.shortAddr = 0xFFFF;
(2)串口通信。
串口通信的程序設計包括串口初始化、串口發(fā)送和串口接收,其中初始化部分包括配置串口號、波特率、流控、校驗位等。比如,在工程配置選項中的C/C++ Compiler一欄選擇preprocessor,然后在Defined symbols下的白色書寫框中輸入定義的符號,如果輸入ZTOOL_P1,編譯后系統(tǒng)則選擇串口0進行相關的操作;若輸入ZTOOL_P2,則選中串口1。在mt_uart.h文件中編寫串口初始化宏參數,例如#define MT_UART_DEFAULT_BAUDRATE、HAL_UART_BR_115200,將波特率設置為115200bps。
ZStack協議棧上開發(fā)的串口應用可以分為接收部分和發(fā)送部分,接收部分是終端節(jié)點通過串口接收單片機采集到的溫濕度數據,而發(fā)送部分則是協調器通過串口將數據發(fā)送給PC機,具體如下:
接收部分(見圖4):終端節(jié)點的Zigbee模塊通過串口接收單片機采集到的溫濕度數據,并通過RF將其發(fā)送至協調器節(jié)點。
發(fā)送部分(見圖5):協調器節(jié)點的Zigbee模塊將監(jiān)測終端傳來的數據呈送給PC機,以方便用戶通過PC機了解當前室內所有房間溫濕度情況。
(3)事件及處理方式。
終端監(jiān)測節(jié)點主要功能是將數據定時上報給協調器。終端事件來源于串口接收到的數據,將其無線發(fā)送給設置好的目標地址(協調器);協調器的事件則來源于無線接收到一幀數據,其處理方式是通過串口發(fā)送給PC機。
圖4接收部分流程圖5發(fā)送部分流程
3.3數據采集單元
終端監(jiān)測節(jié)點數據采集單元由單片機STC89C52和數字溫濕度傳感器DHT21組成,單片機使用單總線的方式控制DHT21輸出溫度和濕度,輸出數據的格式為:
40bit數據=16bit濕度+16bit溫度+8bit校驗
如圖5所示,在獲取5字節(jié)數據之后即可從中得到溫度和濕度值。
for(i=0;i<5;i++)
Sensor_Data\[i\]= Read_SensorData();
其中,Sensor_Data\[0\]、Sensor_Data\[1\]存儲的是濕度量,Sensor_Data\[2\]、Sensor_Data\[3\]存儲的是溫度量,因此,溫濕度分別為:
humidity = Sensor_Data\[0\]*256+Sensor_Data\[1\];
temperature=Sensor_Data\[2\]*256+Sensor_Data;若接收到的前32bit數據為:0000000111110101_0000000100011010,那么,humidity = 1*256+245=501,temperature = 1*256+26=282,得到最終相對濕度和溫度。
4結語
針對傳統(tǒng)溫濕度監(jiān)測中布設線纜方式存在的布線復雜、成本高、維護不便以及擴展性能較差等不足,本文提出了一種基于ZStack的室內溫濕度監(jiān)測系統(tǒng)的設計方案,并給出了主要模塊的軟硬件設計框圖和流程圖。本設計結合了Zigbee和嵌入式技術,為Zigbee的應用開發(fā)以及智能家居的智能調控提供了理論和實踐指導。
參考文獻參考文獻:
\[1\]新浪地產.智能家居行業(yè)的現狀與困境\[EB/OL\]. http://dichan.sina.com.cn/zt/zhinengjiaju.
\[2\]NAZMIYE BALTAOZKAN, BENJAMIN BOTELER, OSCAR AMERIGHI.European smart home market development: public views on technical and economic aspects across the United Kingdom,Germany and Italy\[J\]. Energy Research&Social Science,2014(3):6577.
\[3\]姚凱旋. 基于ARM的智能家居系統(tǒng)的研究與設計\[D\]. 太原:太原理工大學,2012.
\[4\]NAVEEN SASTRY,DAVID WAGNER.Security considerations for IEEE 802.15. 4 networks\[C\]. In Proceedings of the 3rd ACM Workshop on Wireless Security,2004:3242.
\[5\]闞鳳龍. ZigBee無線通信技術在智能家庭中的應用研究\[J\]. 科技廣場,2008(8):5859.
\[6\]高守瑋,吳燦陽.ZigBee 技術實踐教程\[M\].北京:北京航空航天大學出版社,2009:229230.
\[7\]張奇松,尹航. ZSTACK剖析及其在無線測溫網絡中的應用\[J\]. 計算機系統(tǒng)應用,2009,18(2):103105.
責任編輯(責任編輯:陳福時)