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