基于ZigBee無線網絡的嵌入式智能家居監(jiān)控系統(tǒng)
0.設計摘要
與普通的家居相比,智能家居(Smart Home)不僅具有傳統(tǒng)的居住功能,能夠提供舒適安全、高品位且宜人的生活空間,還把原來的被動靜止結構轉變?yōu)榫哂心軇又腔鄣墓ぞ?,幫助家庭與外部保持信息交流暢通,優(yōu)化人們的生活方式,甚至為各種能源支出節(jié)約資金家居。無線監(jiān)控問題是當今國際建筑智能化領域的前沿性研究課題。無線傳感網絡的出現克服了家庭中布線的煩瑣,充分體現了智能家居系統(tǒng)的靈活、方便、高效。本項目研究開發(fā)了基于ZigBee技術和Internet技術的智能家居監(jiān)控系統(tǒng),將Internet的遠程監(jiān)控與ZigBee短距離控制相結合,實現系統(tǒng)的家居無線控制和數據采集,避免了綜合布線,可擴展性好。
整個智能家居監(jiān)控系統(tǒng)能夠對家用電器的完成開關量的控制,還能夠對三表(水表、電表、燃氣表)進行無線抄表,最重要的是可監(jiān)測來自家庭安防傳感器(火警、煤氣泄露)的數據,以備物業(yè)等部門監(jiān)控。通過測試后,證實了設計方案的正確性,結果滿足系統(tǒng)設計要求,該設計具有一定的新穎性和實用性。本項目針對目前人們對居住環(huán)境的要求越來越高,同時家用設施的管理和安全亟待改善的迫切需要,設計了一種基于嵌入式無線通信技術的智能家居監(jiān)控系統(tǒng),以便能夠對小區(qū)中各家各戶的各種情況(煤氣泄露、火警等)進行監(jiān)控,而且還可以對家居設施進行控制。此外,物業(yè)管理單位也可以通過此系統(tǒng)為小區(qū)居民提供更為方便、人性的服務。
1.系統(tǒng)原理
本課題首先進行系統(tǒng)總體設計,結合底層ZigBee無線傳感網絡的特點和系統(tǒng)總體網絡監(jiān)控的要求,將該系統(tǒng)設計分為四部分:無線傳輸模塊、數據處理模塊、以太網傳輸模塊、上位機顯示界面。然后對ZigBee協(xié)議標準做了全面地研究分析,同時給出了基于CC2430的無線傳輸模塊的軟硬件設計和星型網絡搭建,并給出了測試結果。接著設計了基于PIC32的數據處理模塊,給出了硬件電路和外圍輔助電路設計方案,并為其移植了實時操作系統(tǒng)uC/OS-II。本設計完成了基于DP43848C的以太網傳輸模塊設計和系統(tǒng)的以太網通信程序的設計,實現了從底層ZigBee無線傳感網絡的數據采集最終到監(jiān)控機的數據傳輸并測試成功。最后在VC++6.0環(huán)境下,應用Windows Sockets套件接口開發(fā)顯示界面對底層采集的數據分類顯示。
圖1 系統(tǒng)設計結構圖
如上圖1所示,本設計主要分為以下部分:
(1)無線傳輸模塊:基于CC2430芯片(包括無線收發(fā)及傳感器)設計無線傳感網絡模塊,并完成各節(jié)點模塊的軟件編寫和節(jié)點間通信調試。
(2)數據處理模塊:基于PIC32芯片設計數據處理模塊,并完成程序編寫,同時在該系統(tǒng)上移植嵌入式實時操作系統(tǒng)uC/OSII。
(3)以太網傳輸模塊:利用網絡接口芯片DP43848C設計以太網通信模塊,并完成通信測試程序編寫。
(4)上位機顯示界面設計:利用VC++6.0基于WindowsSockcts編寫上位機界面程序,使經過數據處理模塊處理后的數據通過以太網上傳到上位機(PC機)界面上,實現統(tǒng)一管理。
1.1.智能家居監(jiān)控系統(tǒng)中的ZigBee無線傳感網絡方案
ZigBee是一組基于IEEE批準通過的802.15.4無線標準研發(fā)的,有關組網、安全和應用軟件方面的技術標準。IEEE無線個人區(qū)域網工作組的IEEE 802.15.4技術標準是ZigBee技術的基礎。它采用跳頻技術,.使用的頻段分別為2.4GHz( ISM ), 868 MHz(歐洲)及915 MHz(美國),而且均為免執(zhí)照頻段,有效覆蓋范圍為1075 m。所支持的數據傳輸速率為10Kb/s--250Kb/s。功耗低,在低耗電待機模式下,兩節(jié)普通5號干電池可以6個月到2年。網絡容量大,每個ZigBee網絡最多可支持255個設備。成本低。由于ZigBee數據傳輸速率低,協(xié)議簡單,所以大大降低了成本。
要從以上這些無線射頻技術中選擇一種作為本設計的無線通信方案,需要考慮的是:該方案是否能夠滿足家庭網絡的成本要求,還有就是功耗和網絡容量能否滿足家庭要求。而這些問題在ZigBee技術面前都將不復存在。在智能家居系統(tǒng)中,將ZigBee無線傳感網絡技術應用于家庭網絡己成為趨勢。這不僅僅是因為ZigBee無線傳感網絡可以提供更大的靈活性、流動性,省去花在綜合布線上的費用和精力,而且更因為它符合家庭網絡的通訊特點。所以本智能家居監(jiān)控系統(tǒng)采用ZigBee技術作為智能家居中無線傳感網絡的設計方案。
本智能家居監(jiān)控系統(tǒng)中的無線傳感網絡采用星型連接,主要包括了一個家庭網關以及若干個無線通信子節(jié)點。家庭網關上有一個無線收發(fā)模塊(主節(jié)點FFD ),而其他的無線通信子節(jié)點則作為End Device安放在家用電器、三表和安防傳感器上,通過這些無線收發(fā)模塊,數據就在主節(jié)點和子節(jié)點之間進行傳輸。智能家居中的無線傳感網絡結構如下圖2 所示。
圖2 智能家居中的無線傳感網絡結構
1.2.智能家居監(jiān)控系統(tǒng)中的有線網絡方案
在單個家庭中的網絡連接可以選用無線傳感網絡,而如果要對整個一棟大樓、一個小區(qū)進行統(tǒng)一化的管理,無線傳感網絡的優(yōu)勢就不那么明顯了,而且對于整個小區(qū)的網絡來說,它所承載的數據流量就很大了,對于無線傳感網絡這種低通信速率網絡來說是不合適的。
以太網是當今現有局域網采用的最通用的通信協(xié)議標準。它連接方便,可屏蔽干擾,通信速率可達10/100/1000Mbps以上,而且成本低廉。目前大部分的小區(qū)都要寬帶網,因此集中網絡管理采用比較流行的而且易于實現的以太網連接具有良好的性價比。
在本課題中,家庭網絡部分采用無線傳感網絡來監(jiān)控,無線采集協(xié)調器再將采集的數據發(fā)送到數據處理模塊,最后經過處理后的數據將通過以太網傳輸到上位機上。從而組成小區(qū)的監(jiān)控系統(tǒng),如下圖3所示。
圖3 小區(qū)監(jiān)控系統(tǒng)
1.3.uC/OS-II的移植
實時系統(tǒng)中任務的執(zhí)行大多數都是由外部事件觸發(fā)的。也就是說,實時操作系統(tǒng)的主要工作就是響應并處理各種外部事件。因此,對于每個外部事件都對應有一個處理這個事件的程序模塊,這些模塊就是任務。在移植前,把問題分析清楚,將問題分割成多個任務,每個任務都是整個應用的一部分,被賦予一定的優(yōu)先級,有自己的一套CPU寄存器和堆??臻g。任務執(zhí)行一次后,設置延時OSTDIy,表明經過OSTDIy個定時器中斷周期后任務再次運行,然后進行任務切換,讓處于就緒態(tài)的優(yōu)先級最高的任務運行。uC/OS-II的任務實際上就是一段程序,在運行該程序時,可以認為CPU就完全屬于該程序本身。在本設計中,所移植的系統(tǒng)建立了8個任務(參照見圖2):
0號任務,用來監(jiān)測安防傳感器(煤氣泄露)。在執(zhí)行該任務時通過ZigBee網絡協(xié)調器選擇與安防傳感器(煤氣泄露)終端節(jié)點通信,采集傳感器數據。
1號任務,用來監(jiān)測安防傳感器(溫度)。在執(zhí)行該任務時通過ZigBee網絡協(xié)調器選擇與安防傳感器(溫度)終端節(jié)點通信,采集傳感器數據。
2號任務,與0號任務對應,將安防傳感器(煤氣泄露)采集的數據最終通過以太網上傳到上位機上。
3號任務,與1號任務對應,將安防傳感器(溫度)采集的數據最終通過以太網上傳到上位機上。
4號任務,用來控制冰箱、空調、電視、燈的電源開關,通常情況下,這些開關型控制,只用一個任務就可以完成,只要在執(zhí)行該任務時,同時通過ZigBee網絡協(xié)調器同時發(fā)送一個16位地址符就可以選擇出所要執(zhí)行開關任務的終端節(jié)點。
5號任務,單獨為窗簾建立一個任務。因為窗簾的控制是一個閉環(huán)控制。
6號任務,為電表、水表、燃氣表的數據采集建立一個任務。因為水表、電表、燃氣表的數據對實時性要求沒有那么高,可以分時采集,在執(zhí)行該任務時,同時通過ZigBee網絡協(xié)調器同時發(fā)送一個16位地址符就可以選擇出所要執(zhí)行數據采集任務的終端節(jié)點,另外,還要為該任務調用一個延時函數,并設置延時時鐘周期數,從而最終實現在三表間輪流數據采集。
7號任務,用來對三表數據上傳到上位機建立任務。對應于任務6,分別將從水、電、燃氣表采集的數據立即上傳。
它們具有各自獨立的堆??臻g和不同的靜態(tài)優(yōu)先級,0號任務優(yōu)先級最高,7號任務優(yōu)先級最低。對于0號任務---3號任務,由于它們是保證家居安全的是不允許中斷響應的,所以在這些任務開始執(zhí)行時,一定要關閉中斷。
1.4.基于Visual C++的上位機顯示界面設計
在整個智能家居監(jiān)控系統(tǒng)的設計當中,上位機(PC機)可以為用戶提供一個友好、交互的人機界面。假如管理人員需要調用小區(qū)中任意一戶的數據記錄時,可以查詢該上位機的存儲的數據即可。這里我們利用Visual C++編寫上位機的管理界面,主要采用了Windows Sockets網絡接口控件,大大簡化了設計難度。
首先,Windows Sockets作為Microsoft Windows的網絡程序設計接口,它是從Berkeley Sockets擴展而來的,以動態(tài)鏈接庫的形式提供給我們使用。重要的是,Windows Sockets是基于TCP/IP協(xié)議的,應用程序調用Windows Sockets的API實現相互之間的通信,而Windows Sockets則是利用下層的網絡通訊協(xié)議功能和操作系統(tǒng)調用實現實際的通訊工作的。
2.軟件流程介紹
2.1智能家居中ZigBee無線傳感網絡中終端節(jié)點流程
網絡建立成功后,需要添加終端設備(終端節(jié)點)進入這個網絡。允許設備同網絡連接的流程圖如圖4所示。終端設備通過發(fā)送NLME-JOIN.request原語來開始執(zhí)行孤點方式同網絡連接,其原語 RejoinNetwork參數設置為TRUE。
圖4 終端節(jié)點加入網絡流程圖
首先,終端設備的網絡層管理實體將請求MAC層對PHY層所規(guī)定的所有有效通信信道進行孤點掃描。通過向MAC層發(fā)送MLME--SCAN.request原語開始進行孤點掃描,其掃描的結果通過MLME--SCAN.confirm原語返回到網絡層管理實體。然后,如果該終端設備掃描到網絡協(xié)調器設備,網絡層管理實體將通過發(fā)送MLME--JOIN.confirm原語向其上層報告請求連接,其原語的狀態(tài)參數設置為SUCCESS,否則設置為NO-NETWORKS。
整個星型網絡的組網的軟件流程圖如下圖5所示。
當網絡協(xié)調器正常工作后,則建立網絡成功。這時候再打開兩個或更多終端節(jié)點,就能讓這些節(jié)點加入網絡。
圖5星型網絡組網流程圖
推薦閱讀:30例經典檢測、監(jiān)測、監(jiān)控系統(tǒng)完整解決方案,從實際應用需求出發(fā)