隨著時(shí)代的發(fā)展,人們將更多的注意力放在了生活環(huán)境的安全性、舒適性和便利性上,從而出現(xiàn)了智能家居的概念。智能家居控制系統(tǒng)使人們可以對(duì)家居內(nèi)的任意電器進(jìn)行數(shù)字化控制,利用計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)通訊技術(shù)將與家居生活有關(guān)的各種設(shè)備有機(jī)地結(jié)合在一起,進(jìn)行集中管理,讓家居生活更加舒適、安全、有效。本文以ZigBee技術(shù)對(duì)智能家居內(nèi)部進(jìn)行無(wú)線網(wǎng)絡(luò)組網(wǎng),通過ZigBee無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的設(shè)計(jì),實(shí)現(xiàn)節(jié)點(diǎn)對(duì)各種傳感器信息的采集、傳輸和控制功能。
1 Zigbee技術(shù)
ZigBee技術(shù)是一種強(qiáng)調(diào)極低耗電、極低成本的短距離無(wú)線網(wǎng)絡(luò)技術(shù),遵循IEEE802.15.4標(biāo)準(zhǔn)。它專注于低速率傳輸控制,網(wǎng)絡(luò)容量大,時(shí)延短,提供數(shù)據(jù)完整性檢查,加密算法采用AES-128,網(wǎng)絡(luò)擴(kuò)充性強(qiáng),有效覆蓋范圍為10~75 m,具體依據(jù)實(shí)際發(fā)射功率的大小和各種不同的應(yīng)用模式而定,基本上能夠覆蓋普通的家庭環(huán)境,通信頻率采用2.4 GHz免執(zhí)照頻段。
ZigBee是一組基于IEEE802.15.4無(wú)線標(biāo)準(zhǔn)研制開發(fā)的,有關(guān)組網(wǎng)、安全和應(yīng)用軟件方面的技術(shù)標(biāo)準(zhǔn)。IEEE802.15.4僅定義了MAC層和物理層協(xié)議,而ZigBee聯(lián)盟則對(duì)其網(wǎng)絡(luò)層和應(yīng)用層進(jìn)行了標(biāo)準(zhǔn)化。ZigBee聯(lián)盟還開發(fā)了安全層,以保證這種便攜設(shè)備不會(huì)意外泄漏其標(biāo)識(shí),而且這種利用網(wǎng)絡(luò)的遠(yuǎn)距離傳輸不會(huì)被其他節(jié)點(diǎn)獲得。
2 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
無(wú)線傳感器網(wǎng)絡(luò)系統(tǒng)主要由傳感器、CC2430無(wú)線模塊構(gòu)成,結(jié)構(gòu)圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
無(wú)線傳感器網(wǎng)絡(luò)采用樹狀結(jié)構(gòu),網(wǎng)絡(luò)中有一個(gè)協(xié)調(diào)器,負(fù)責(zé)整個(gè)網(wǎng)絡(luò)中數(shù)據(jù)的處理、轉(zhuǎn)發(fā)以及網(wǎng)絡(luò)的管理。終端節(jié)點(diǎn)(傳感器節(jié)點(diǎn))上電復(fù)位后,會(huì)搜索協(xié)調(diào)器節(jié)點(diǎn),當(dāng)能夠搜索到協(xié)調(diào)器時(shí),直接申請(qǐng)加入網(wǎng)絡(luò)。當(dāng)終端節(jié)點(diǎn)搜索不到協(xié)調(diào)器時(shí),這時(shí)就會(huì)通過路由器節(jié)點(diǎn)找到協(xié)調(diào)器來加入網(wǎng)絡(luò)。
加入網(wǎng)絡(luò)后保持待機(jī)狀態(tài),當(dāng)有數(shù)據(jù)需要發(fā)送時(shí),按照組網(wǎng)時(shí)的路徑來收發(fā)數(shù)據(jù)信息。協(xié)調(diào)器通過串口與PC機(jī)相連,利用超級(jí)終端實(shí)現(xiàn)發(fā)送命令或者顯示數(shù)據(jù)。
3 硬件電路設(shè)計(jì)
本文設(shè)計(jì)的無(wú)線傳感器網(wǎng)絡(luò)系統(tǒng)的硬件結(jié)構(gòu)主要由協(xié)調(diào)器模塊,路由器模塊,傳感器模塊,串口轉(zhuǎn)換模塊,供電模塊以及PC機(jī)等組成。其中協(xié)調(diào)器、路由器、傳感器3個(gè)模塊作為主要的無(wú)線通信模塊,由主控芯片CC2430作為數(shù)據(jù)處理以及無(wú)線收發(fā)器。其系統(tǒng)硬件電路結(jié)構(gòu)示意圖如圖2所示。
圖2 系統(tǒng)硬件電路結(jié)構(gòu)示意圖
3.1 主控芯片
選用CC2430芯片作為無(wú)線收發(fā)器和數(shù)據(jù)處理及控制器。CC2430在單個(gè)芯片上整合了ZigBee射頻前端、內(nèi)存和微控制器。它采用增強(qiáng)型8051MCU、32/64/128 kB閃存、8 kBSRAM等高性能模塊,還包含模擬數(shù)字轉(zhuǎn)換器、幾個(gè)定時(shí)器、AES-128協(xié)同處理器、看門狗定時(shí)器。32 kHz晶振的休眠模式定時(shí)器、上電復(fù)位電路、掉電檢測(cè)電路以及21個(gè)可編程I/O引腳。
3.2 無(wú)線模塊設(shè)計(jì)
1)協(xié)調(diào)器模塊
協(xié)調(diào)器節(jié)點(diǎn)由電壓轉(zhuǎn)換模塊、按鍵模塊、LCD模塊、LED指示燈、時(shí)鐘、處理器CC2430、天線等部分組成。CC2430的工作電壓為3~3.3 V,所以要用電壓轉(zhuǎn)換模塊把電壓從5 V降低到3.3 V左右;LED指示燈用來顯示協(xié)調(diào)器節(jié)點(diǎn)網(wǎng)絡(luò)狀態(tài)信息(如是否組網(wǎng)成功);LCD模塊是用戶和傳感器網(wǎng)絡(luò)的交互界面,用來顯示功最長(zhǎng)能菜單,用戶通過按鍵來選擇功能菜單。其電路圖如圖3所示。
圖3 節(jié)點(diǎn)電路圖
2)傳感器模塊與路由器模塊
傳感器模塊亦即是終端節(jié)點(diǎn)模塊,由傳感器、處理器CC2430、天線、LED指示燈、時(shí)鐘等部分組成。LED指示燈由P1.0、P1.1口控制。傳感器模塊就是在協(xié)調(diào)器模塊的基礎(chǔ)上去掉了LCD,而加入了傳感器。傳感器選用了DHT11溫濕度傳感器,與P0.0口相連,來負(fù)責(zé)數(shù)據(jù)采集。路由器模塊與傳感器模塊的硬件電路相同,只是在編程實(shí)現(xiàn)功能上有所不同。
4 無(wú)線網(wǎng)絡(luò)系統(tǒng)軟件設(shè)計(jì)
在ZigBee網(wǎng)絡(luò)中,只有那些可以成為ZigBee協(xié)調(diào)器的設(shè)備才能建立新網(wǎng)絡(luò)。協(xié)調(diào)器首先執(zhí)行信道掃描,如果發(fā)現(xiàn)了一個(gè)合適的信道,協(xié)調(diào)器就要為新網(wǎng)絡(luò)選擇一個(gè)PAN ID,然后協(xié)調(diào)器進(jìn)入*狀態(tài),隨時(shí)響應(yīng)其他節(jié)點(diǎn)的入網(wǎng)請(qǐng)求。
ZigBee網(wǎng)絡(luò)有兩種設(shè)備類型:全功能節(jié)點(diǎn)(FFD)和半功能節(jié)點(diǎn)(RFD)。RFD為終端節(jié)點(diǎn),F(xiàn)FD可以作為協(xié)調(diào)器或路由。軟件設(shè)計(jì)包括網(wǎng)絡(luò)協(xié)調(diào)器程序以及路由器、終端節(jié)點(diǎn)程序。它們均包括初始化程序、協(xié)議棧配置、組網(wǎng)方式配置程序、各處理層設(shè)置程序以及發(fā)射程序和接收程序。初始化程序主要是對(duì)CC2430、協(xié)議棧、UART串口等進(jìn)行初始化;發(fā)射程序?qū)⑺杉臄?shù)據(jù)通過CC2430調(diào)制并通過DMA直接送至射頻輸出;接收程序完成數(shù)據(jù)的接收、遠(yuǎn)傳及返回信息處理。主程序流程如圖4所示。
圖4 主程序流程圖
主程序主要分為2部分,網(wǎng)絡(luò)協(xié)調(diào)器程序以及路由器、終端節(jié)點(diǎn)程序。
對(duì)于網(wǎng)絡(luò)協(xié)調(diào)器主程序,首先初始化CC2430,然后初始化協(xié)議棧。之后程序建立一個(gè)新的網(wǎng)絡(luò),確定網(wǎng)絡(luò)的ID號(hào)和頻道號(hào)。之后程序開始進(jìn)入監(jiān)測(cè)狀態(tài)。如果有新的設(shè)備請(qǐng)求加入網(wǎng)絡(luò),則為其分配網(wǎng)絡(luò)地址,批準(zhǔn)其加入網(wǎng)絡(luò)。同樣,協(xié)調(diào)器接收終端設(shè)備無(wú)線發(fā)送來的信息,并通過串口發(fā)送給上位機(jī),或者從上位機(jī)得到命令,發(fā)送過終端設(shè)備。
對(duì)于路由器、終端節(jié)點(diǎn)程序,首先初始化CC2430,然后初始化協(xié)議棧。之后程序開始搜索網(wǎng)絡(luò),當(dāng)附近存在網(wǎng)絡(luò)時(shí),則申請(qǐng)加入網(wǎng)絡(luò)。之后程序進(jìn)入待機(jī)休眠狀態(tài)。如果終端傳感器有信息要發(fā)送,或者接收到協(xié)調(diào)器的命令,則喚醒設(shè)備,進(jìn)行無(wú)線發(fā)送或接受。當(dāng)事件處理完時(shí),重新進(jìn)入待機(jī)休眠狀態(tài)。
5 系統(tǒng)實(shí)現(xiàn)
系統(tǒng)的功能主要包括以下幾個(gè)方面:建立樹狀網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu);查詢網(wǎng)絡(luò)中各節(jié)點(diǎn)信息和傳感器數(shù)據(jù),如電池電量、節(jié)點(diǎn)溫度信息等;控制節(jié)點(diǎn)的開關(guān)功能。
本系統(tǒng)使用了4個(gè)無(wú)線網(wǎng)絡(luò)節(jié)點(diǎn),這樣能夠組成一個(gè)基本的無(wú)線網(wǎng)絡(luò)。并且根據(jù)情況做了多種組網(wǎng)測(cè)試:
1)1個(gè)協(xié)調(diào)器節(jié)點(diǎn),3個(gè)終端節(jié)點(diǎn);
2)1個(gè)協(xié)調(diào)器節(jié)點(diǎn),1個(gè)路由器節(jié)點(diǎn),2個(gè)終端節(jié)點(diǎn);
3)1個(gè)協(xié)調(diào)器節(jié)點(diǎn),2個(gè)路由器節(jié)點(diǎn),1個(gè)終端節(jié)點(diǎn)。
在2)和3)情況下,根據(jù)節(jié)點(diǎn)與協(xié)調(diào)器節(jié)點(diǎn)之間距離、各節(jié)點(diǎn)彼此之間距離的不同,又會(huì)產(chǎn)生多種組網(wǎng)方式。例如2)情況下,終端節(jié)點(diǎn)離協(xié)調(diào)器近的話,會(huì)直接與協(xié)調(diào)器連接;而當(dāng)搜索不到協(xié)調(diào)器時(shí),就會(huì)通過路由器來連接。圖5為3)情況下的一種網(wǎng)絡(luò)結(jié)構(gòu)。
圖5 節(jié)點(diǎn)管理界面
圖5所示為C51RF-WSN網(wǎng)絡(luò)監(jiān)控軟件所截圖,通過此軟件,可以實(shí)時(shí)查看網(wǎng)絡(luò)狀態(tài),并能向各個(gè)節(jié)點(diǎn)發(fā)送命令信息,例如查看網(wǎng)絡(luò)狀態(tài),查看信號(hào)質(zhì)量,電池電量,采集數(shù)據(jù)信息等。
智能家居系統(tǒng)的終端節(jié)點(diǎn)可以包括許多內(nèi)容,從而實(shí)現(xiàn)一些子系統(tǒng)。例如:照明系統(tǒng),調(diào)溫系統(tǒng),報(bào)警系統(tǒng),家電控制系統(tǒng)等。在我們?cè)O(shè)計(jì)的無(wú)線網(wǎng)絡(luò)系統(tǒng)中,實(shí)現(xiàn)了遠(yuǎn)程控制燈開關(guān)照明;利用DHT11溫濕度傳感器實(shí)現(xiàn)終端節(jié)點(diǎn)的溫濕度監(jiān)測(cè),其信息能夠在PC機(jī)上很好的顯示出來。
圖6所示為傳感器所測(cè)2個(gè)路由器節(jié)點(diǎn)與1個(gè)終端節(jié)點(diǎn)的溫濕度信息。
圖6 溫濕度信息
6 結(jié)束語(yǔ)
針對(duì)我國(guó)智能家居快速發(fā)展的背景,本文對(duì)基于ZigBee技術(shù)的智能家居組網(wǎng)進(jìn)行了軟硬件設(shè)計(jì)。ZigBee無(wú)線傳感器網(wǎng)絡(luò)系統(tǒng)以CC2430無(wú)線射頻芯片為核心,節(jié)省了成本,并且終端節(jié)點(diǎn)小巧,放置靈活,功耗極低,提高了監(jiān)控能力,再加上采用樹狀網(wǎng)絡(luò)結(jié)構(gòu)使得通信更加可靠,易于控制,非常方便實(shí)用,并且成本低廉。因此,ZigBee技術(shù)將會(huì)有廣闊的應(yīng)用前景。