基于ZigBee的智能窗系統(tǒng)的設(shè)計(jì)
引 言
物聯(lián)網(wǎng)技術(shù)的進(jìn)步推動著人們對智能家居系列產(chǎn)品需求的增長。無線通信技術(shù)的選用極大程度上決定了產(chǎn)品的性能優(yōu)劣,而 ZigBee 技術(shù)相比藍(lán)牙、WiFi 等具有網(wǎng)絡(luò)容量大、傳輸安全性好、功率低等優(yōu)點(diǎn) [1],適用于智能家居系統(tǒng)
本文旨在設(shè)計(jì)一種基于 ZigBee 的智能窗系統(tǒng),能夠?qū)崟r根據(jù)風(fēng)雨、霧霾情況實(shí)現(xiàn)自動開關(guān)窗戶,方便用戶使用終端APP 控制窗戶,并實(shí)時查看窗戶的開閉狀態(tài)。從現(xiàn)實(shí)意義上看本品不僅可以提高用戶的生活質(zhì)量,更與人們?nèi)找嬖鲩L的生活需要相契合
1 系統(tǒng)總體設(shè)計(jì)
系統(tǒng)框圖如圖 1 所示。智能窗系統(tǒng)由五部分組成,分別為用戶訪問平臺、智能窗云平臺服務(wù)器、網(wǎng)絡(luò)服務(wù)器、ZigBee 協(xié)調(diào)器和終端節(jié)點(diǎn)。用戶訪問平臺指移動客戶端,用戶可通過客戶端實(shí)時查看室內(nèi)外環(huán)境參數(shù)并控制窗戶開閉。智能窗平臺服務(wù)器實(shí)現(xiàn)客戶端對智能窗的遠(yuǎn)程控制指令和環(huán)境參數(shù)的處理與傳輸,并將數(shù)據(jù)信息保存在數(shù)據(jù)庫中。網(wǎng)絡(luò)服務(wù)器負(fù)責(zé)將ZigBee 網(wǎng)絡(luò)中的數(shù)據(jù)與以太網(wǎng)進(jìn)行通信。ZigBee 協(xié)調(diào)器負(fù)責(zé)終端節(jié)點(diǎn)和網(wǎng)絡(luò)服務(wù)器之間的數(shù)據(jù)交互。終端節(jié)點(diǎn)分為采集節(jié)點(diǎn)和控制節(jié)點(diǎn),利用傳感器采集窗外環(huán)境數(shù)據(jù),并通過傳感器網(wǎng)絡(luò)進(jìn)行短距離數(shù)據(jù)傳輸。人體紅外傳感器節(jié)點(diǎn)、煙霧煤氣檢測節(jié)點(diǎn)、光照采集節(jié)點(diǎn)、溫濕度采集節(jié)點(diǎn)、風(fēng)速檢測節(jié)點(diǎn)粉塵檢測節(jié)點(diǎn)等均為采集節(jié)點(diǎn)??刂乒?jié)點(diǎn)指電機(jī)控制節(jié)點(diǎn),用來控制窗戶開閉。同時一個 ZigBee 協(xié)調(diào)器負(fù)責(zé)多個房間不同窗戶的終端節(jié)點(diǎn)。本系統(tǒng)支持上下雙向數(shù)據(jù)傳輸。由感知層至應(yīng)用層時,首先通過各傳感器來采集窗外溫濕度、粉塵濃度光照強(qiáng)度、風(fēng)速等信息數(shù)據(jù),利用 ZigBee 無線技術(shù)來完成數(shù)據(jù)從傳感器到嵌入式網(wǎng)關(guān)的傳輸,再通過 3G/4G/ 有線寬帶網(wǎng)絡(luò)并依據(jù)TCP 協(xié)議,完成數(shù)據(jù)從嵌入式網(wǎng)關(guān)到 Web 服務(wù)器的傳輸,對數(shù)據(jù)進(jìn)行分析并形成信息在安卓客戶端顯示。由應(yīng)用層至感知層時,移動客戶端通過互聯(lián)網(wǎng)發(fā)送指令至智能窗云平臺服務(wù)器,經(jīng)由 3G/4G/ 有線寬帶網(wǎng)絡(luò),將用戶指令發(fā)給嵌入式網(wǎng)關(guān)進(jìn)行通信協(xié)議轉(zhuǎn)換,最后由 ZigBee 網(wǎng)絡(luò)傳送到電機(jī)節(jié)點(diǎn),從而控制窗戶開閉
該系統(tǒng)方便數(shù)據(jù)上下行傳輸,具有安全性好,功耗低組網(wǎng)簡便等優(yōu)點(diǎn) [2],符合智能家居的設(shè)計(jì)要求且節(jié)能環(huán)保
2 系統(tǒng)網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)
本系統(tǒng)網(wǎng)絡(luò)架構(gòu)包括終端節(jié)點(diǎn)、路由器、協(xié)調(diào)器、網(wǎng)絡(luò)服務(wù)器、云服務(wù)器五部分。協(xié)調(diào)器用于開啟網(wǎng)絡(luò)、廣播網(wǎng)絡(luò)信息是連接終端節(jié)點(diǎn)和網(wǎng)絡(luò)服務(wù)器的一個透明中繼。終端節(jié)點(diǎn)負(fù)責(zé)采集數(shù)據(jù)、收集指令,采用兩跳與協(xié)調(diào)器進(jìn)行雙向無線通信路由器用于轉(zhuǎn)發(fā)終端節(jié)點(diǎn)和協(xié)調(diào)器之間的數(shù)據(jù)。由于實(shí)際應(yīng)用需要,常在某一個房間里布置 ZigBee 協(xié)調(diào)器??紤]到要與分布在不同房間窗戶上的終端節(jié)點(diǎn)進(jìn)行通信,而 ZigBee 通信穿透性較弱[3],安裝在不同房間窗戶上的 ZigBee 節(jié)點(diǎn)在傳輸數(shù)據(jù)到協(xié)調(diào)器所在房間時由于信號要穿過墻壁,導(dǎo)致丟包率增大,因此采用樹型拓?fù)浣Y(jié)構(gòu)。ZigBee 協(xié)調(diào)器作為樹型結(jié)構(gòu)的根節(jié)點(diǎn),匯聚不同房間路由器傳送的數(shù)據(jù)。每個房間中設(shè)立一個路由器用于轉(zhuǎn)發(fā)此房間里終端節(jié)點(diǎn)和協(xié)調(diào)器間的數(shù)據(jù),從而克服ZigBee 穿透能力差的缺點(diǎn),降低丟包率。樹型拓?fù)浣Y(jié)構(gòu)具有如下優(yōu)勢
(1) 路由器能有效降低傳輸丟包率 [4]
(2) 網(wǎng)絡(luò)架構(gòu)相對簡單,易于擴(kuò)展
(3) 網(wǎng)絡(luò)響應(yīng)速度較快
(4) 方便維護(hù)
本系統(tǒng)協(xié)調(diào)器與網(wǎng)絡(luò)服務(wù)器通過 RS 232 串口連接,網(wǎng)絡(luò)服務(wù)器接入互聯(lián)網(wǎng),與智能窗云服務(wù)器通過 3G/4G/ 有線寬帶網(wǎng)絡(luò),依據(jù) TCP/IP 協(xié)議建立通信鏈路
3 系統(tǒng)平臺設(shè)計(jì)
3.1 系統(tǒng)硬件設(shè)計(jì)
文中設(shè)計(jì)的智能窗系統(tǒng)硬件由服務(wù)網(wǎng)關(guān)和終端節(jié)點(diǎn)兩部分組成
3.1.1 終端節(jié)點(diǎn)設(shè)計(jì)
在硬件選擇上,出于低功耗的考慮,選取 TI 公司設(shè)計(jì)的CC2530 單片機(jī)作為終端節(jié)點(diǎn)的主控芯片 [5]
終端節(jié)點(diǎn)分為采集節(jié)點(diǎn)和控制節(jié)點(diǎn),其硬件結(jié)構(gòu)框圖如圖 2 所示。采集節(jié)點(diǎn)由傳感設(shè)備、主控芯片、電源模塊和射頻天線組成,用以采集窗內(nèi)外環(huán)境的數(shù)據(jù)信息,并將數(shù)據(jù)上傳給ZigBee 協(xié)調(diào)器。控制節(jié)點(diǎn)由控制設(shè)備、主控芯片、電源模塊和射頻天線四部分組成,負(fù)責(zé)執(zhí)行 ZigBee 協(xié)調(diào)器下發(fā)的控制指令來控制智能窗的開閉
3.1.2 服務(wù)網(wǎng)關(guān)設(shè)計(jì)
作為嵌入式系統(tǒng)的核心,網(wǎng)絡(luò)服務(wù)器的選擇要有綜合性能、可靠性、功耗、成本等方面的考量。因而采用 TI 公司生產(chǎn)的 AM335x 作為主控芯片,它在性能上完全可滿足家庭網(wǎng)關(guān)處理的需要 [6]。ZigBee 模塊采用CC2530 作為主控芯片,作為協(xié)調(diào)器與網(wǎng)絡(luò)服務(wù)器經(jīng)由 RS 232 進(jìn)行數(shù)據(jù)傳輸
服務(wù)網(wǎng)關(guān)結(jié)構(gòu)框圖如圖 3 所示。服務(wù)網(wǎng)關(guān)由主控芯片RJ 45 接口、3G/4G 模塊、電源模塊、CC2530 協(xié)調(diào)器、射頻天線六部分組成。家庭網(wǎng)關(guān)主要負(fù)責(zé)實(shí)現(xiàn)外部網(wǎng)絡(luò)和家居無線網(wǎng)絡(luò)的數(shù)據(jù)交互。其中ZigBee 網(wǎng)絡(luò)由ZigBee 協(xié)調(diào)器負(fù)責(zé)組建,網(wǎng)絡(luò)建立后,收集來自采集節(jié)點(diǎn)的數(shù)據(jù)并通過 RS 232 實(shí)現(xiàn)與主控制器的數(shù)據(jù)交互,通過 RJ 45 接口或 3G/4G 模塊將家庭網(wǎng)絡(luò)接入Internet,實(shí)現(xiàn)遠(yuǎn)程監(jiān)控
3.2 系統(tǒng)軟件設(shè)計(jì)
智能窗系統(tǒng)軟件由終端節(jié)點(diǎn)軟件部分、ZigBee 協(xié)調(diào)器軟件部分和通信協(xié)議等組成。終端節(jié)點(diǎn)軟件部分解決與 ZigBee 協(xié)調(diào)器數(shù)據(jù)的交互問題,ZigBee 協(xié)調(diào)器軟件部分解決與網(wǎng)絡(luò)服務(wù)器的數(shù)據(jù)通信問題,通信協(xié)議的設(shè)計(jì)使得數(shù)據(jù)能準(zhǔn)確可靠地傳輸
3.2.1 終端節(jié)點(diǎn)軟件設(shè)計(jì)
終端節(jié)點(diǎn)上電初始化后,搜尋并加入?yún)f(xié)調(diào)器所建立的網(wǎng)絡(luò),入網(wǎng)成功后開啟串口接收函數(shù) [7],然后開始輪轉(zhuǎn)等待主機(jī)命令。當(dāng)接收標(biāo)志位完成后,根據(jù)數(shù)據(jù)幀類型判斷數(shù)據(jù)來自采集節(jié)點(diǎn)還是 ZigBee 協(xié)調(diào)器。若數(shù)據(jù)來自采集節(jié)點(diǎn),則將數(shù)據(jù)打包添加幀頭、幀尾、數(shù)據(jù)長度以及兩位 CRC 校驗(yàn)位,然后通過 ZigBee 無線網(wǎng)絡(luò)發(fā)送給 ZigBee 協(xié)調(diào)器 ;若數(shù)據(jù)來自ZigBee 協(xié)調(diào)器,則通過 ZigBee 無線網(wǎng)絡(luò)將數(shù)據(jù)幀發(fā)送給控制節(jié)點(diǎn),然后將數(shù)據(jù)幀解幀,將幀頭、幀尾、數(shù)據(jù)長度、兩位CRC 校驗(yàn)位拆除,節(jié)點(diǎn)采用串口通信模式,將解幀后的數(shù)據(jù)發(fā)送給控制模塊,電機(jī)根據(jù)數(shù)據(jù)位內(nèi)容采取對應(yīng)的操作當(dāng)終端節(jié)點(diǎn)未接收到數(shù)據(jù)時,進(jìn)入低功耗模式并繼續(xù)監(jiān)聽等待圖 4所示為終端節(jié)點(diǎn)軟件設(shè)計(jì)流程圖
3.2.2 ZigBee協(xié)調(diào)器軟件設(shè)計(jì)
系統(tǒng)運(yùn)行時,ZigBee 協(xié)調(diào)器主要負(fù)責(zé)啟動網(wǎng)絡(luò)、維持網(wǎng)絡(luò)正常工作以及收集終端采集節(jié)點(diǎn)的數(shù)據(jù)并通過串口與網(wǎng)絡(luò)服務(wù)器通信。ZigBee 協(xié)調(diào)器上電初始化后,根據(jù)設(shè)計(jì)好的參數(shù)建立ZigBee 無線網(wǎng)絡(luò),建網(wǎng)完成后開啟串口接收函數(shù),系統(tǒng)開始輪轉(zhuǎn)查詢是否有數(shù)據(jù)傳入。當(dāng)接收標(biāo)志位完成后,根據(jù)數(shù)據(jù)幀類型判斷數(shù)據(jù)來自智能窗云服務(wù)器還是終端節(jié)點(diǎn)。若數(shù)據(jù)來自云服務(wù)器,則將數(shù)據(jù)打包添加幀頭、幀尾、數(shù)據(jù)長度以及兩位CRC 校驗(yàn)位,然后通過 ZigBee 無線網(wǎng)絡(luò)發(fā)送給終端節(jié)點(diǎn) ;若數(shù)據(jù)來自終端節(jié)點(diǎn),則將收到的數(shù)據(jù)進(jìn)行解幀將幀頭、幀尾、數(shù)據(jù)長度、兩位 CRC 校驗(yàn)位拆除,再通過3G/4G/ 有線寬帶網(wǎng)絡(luò)將數(shù)據(jù)發(fā)送給云服務(wù)器,云服務(wù)器收到數(shù)據(jù)后再實(shí)時推送到移動客戶端上,與用戶交互。ZigBee 協(xié)調(diào)器流程如圖 5 所示
3.2.3 通信協(xié)議的設(shè)計(jì)
本文根據(jù)系統(tǒng)實(shí)際需要設(shè)計(jì)了6 種類型的通信幀,分別為上行數(shù)據(jù)幀、上行應(yīng)答幀、上行信息幀、下行應(yīng)答幀、下行控制指令幀、下行配置指令幀。其中上行數(shù)據(jù)幀是采集節(jié)點(diǎn)向云服務(wù)器發(fā)送的窗內(nèi)外環(huán)境數(shù)據(jù)信息。上行應(yīng)答幀是終端節(jié)點(diǎn)執(zhí)行指令情況的反饋幀,云服務(wù)器可以從此幀知道終端節(jié)點(diǎn)是否正確執(zhí)行了指令。上行信息幀表示將采集節(jié)點(diǎn)實(shí)時的工作狀態(tài)發(fā)送給智能窗云服務(wù)器,從而反映采集節(jié)點(diǎn)是否正常工作下行應(yīng)答幀是云服務(wù)器收到終端節(jié)點(diǎn)信息的反饋幀,終端節(jié)點(diǎn)可由此知道數(shù)據(jù)是否正確傳給了云服務(wù)器。下行控制指令幀表示云服務(wù)器向控制節(jié)點(diǎn)發(fā)送的控制指令。下行配置指令幀表示云服務(wù)器配置采集節(jié)點(diǎn)數(shù)據(jù)采集的頻率和控制節(jié)點(diǎn)開關(guān)的狀態(tài)。通過對不同功能通信幀的制定,數(shù)據(jù)交互更具穩(wěn)定性和準(zhǔn)確性
同時,為了保證通信正常準(zhǔn)確的進(jìn)行,必須設(shè)計(jì)出合理的數(shù)據(jù)幀格式,幀內(nèi)數(shù)據(jù)按 16 進(jìn)制方式存儲。數(shù)據(jù)幀的組成部分包括幀頭、數(shù)據(jù)長度、數(shù)據(jù)區(qū)、校驗(yàn)位和幀尾,其中數(shù)據(jù)區(qū)由數(shù)據(jù)類型、窗戶 ID、設(shè)備類型、設(shè)備 ID、有效數(shù)據(jù) 5 個部分組成,格式見表 1 所列。幀頭表示此數(shù)據(jù)幀采用串口通信協(xié)議,同時作為是否接收此數(shù)據(jù)幀的標(biāo)記,表示為 0xEE,占用一個字節(jié)。數(shù)據(jù)長度指數(shù)據(jù)區(qū)的字節(jié)數(shù),此標(biāo)志對數(shù)據(jù)個數(shù)進(jìn)行識別,以確保數(shù)據(jù)的準(zhǔn)確性,占用一個字節(jié)。類型是信號幀的識別標(biāo)志,分為方向位和數(shù)據(jù)類型位,占用一個字節(jié),其格式如圖 6 所示。
方向位包括上行和下行,數(shù)據(jù)類型包括數(shù)據(jù)幀、信息幀、應(yīng)答幀、控制指令幀、配置指令幀五種。方向位和數(shù)據(jù)類型位的組合,可實(shí)現(xiàn) 6 種不同類型的通信幀的表示。窗戶 ID 表示一個窗戶的編號,占用 2 B。設(shè)備類型表示幀結(jié)構(gòu)要發(fā)送到的終端節(jié)點(diǎn)的設(shè)備類型編號,占用 2 B。設(shè)備 ID 表示對應(yīng)終端節(jié)點(diǎn)的編號,占用 8 B。有效數(shù)據(jù)表示幀中要傳送的有用數(shù)據(jù),長度不定。校驗(yàn)位是對傳送數(shù)據(jù)(除去幀頭和幀尾外的所有字節(jié))的校驗(yàn)碼,接收方通過辨別校驗(yàn)位來檢驗(yàn)是否接收了準(zhǔn)確的數(shù)據(jù),占用 2 B。幀尾表示幀信號的結(jié)束,由 0xFF表示,占用1 B。
4 結(jié) 語
本文設(shè)計(jì)的智能窗系統(tǒng)選用 ZigBee 技術(shù)組建傳感器網(wǎng)絡(luò),并通過 3G/4G/ 有線寬帶網(wǎng)絡(luò)傳輸方式使家庭網(wǎng)關(guān)能接入Internet,實(shí)現(xiàn)云服務(wù)器和終端節(jié)點(diǎn)的通信。用戶只要能接入網(wǎng)絡(luò),便可以登錄客戶端,遠(yuǎn)程實(shí)時監(jiān)控家庭環(huán)境、控制窗戶開閉。文中從系統(tǒng)總體設(shè)計(jì)、網(wǎng)絡(luò)架構(gòu)、軟硬件設(shè)計(jì)以及通信協(xié)議等方面做出了詳細(xì)分析和研究,能達(dá)到對窗戶進(jìn)行遠(yuǎn)程控制以及對窗內(nèi)外環(huán)境進(jìn)行監(jiān)控的目的。