基于XBee無線技術(shù)的智能家居監(jiān)控系統(tǒng)硬件設(shè)計(jì)和軟件設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
智能家居系統(tǒng)控制方式主要是有線網(wǎng)絡(luò)和無線網(wǎng)絡(luò)兩種方式。有線方式,顧名思義就是需要通過布電纜來組網(wǎng)。此種組網(wǎng)方式比較傳統(tǒng),歷史悠久,技術(shù)發(fā)展相對(duì)成熟,可靠性高,但由于其需要實(shí)體布線所帶來的布線繁瑣,線路容易損壞,可擴(kuò)展性和可移動(dòng)性差等不可避免的問題,有線網(wǎng)絡(luò)方式將逐漸被無線網(wǎng)絡(luò)方式取代。無線網(wǎng)絡(luò)則憑借著其良好可移動(dòng)性和擴(kuò)展性以及勿需額外布線和不受距離控制等優(yōu)點(diǎn),從而靈活流動(dòng)地對(duì)可控點(diǎn)進(jìn)行控制,這樣的特點(diǎn)更加符合家庭網(wǎng)絡(luò)的通信需求,因此基于無線網(wǎng)絡(luò)技術(shù)的智能家居系統(tǒng)越來越受到人們的關(guān)注。目前,無線網(wǎng)絡(luò)技術(shù)已經(jīng)深入到人類生活的各個(gè)方面。無線方式種類繁多,應(yīng)用較為廣泛的無線技術(shù)有藍(lán)牙、紅外技術(shù)、超寬帶等等。各種技術(shù)各有自身特點(diǎn),當(dāng)中以新興的ZigBee技術(shù)的出現(xiàn)填補(bǔ)了低速率端無線通信技術(shù)的空缺,能很好地解決智能家居系統(tǒng)的設(shè)計(jì)遇到的問題。ZigBee技術(shù)是一種幾乎能夠應(yīng)用到所有行業(yè)的低數(shù)據(jù)率的無線通信技術(shù)。
XBee無線技術(shù)是一款基于IEEE 802.15.4標(biāo)準(zhǔn)的無線協(xié)議且與ZigBee協(xié)議兼容的無線模塊。作為一種新興的無線通信技術(shù),它是一種省電、遠(yuǎn)距離、時(shí)延短、低功耗的數(shù)傳模塊,主要應(yīng)用于智能家居,遠(yuǎn)程控制,無線抄表,無線檢測(cè)等方面。本文主要以智能開/關(guān)窗簾為例,說明智能家居與普通家居不同在于不僅具有傳統(tǒng)普通家居的居住功能,更引人注意的由于采用了XBee無線技術(shù),使得智能家居具有智慧能動(dòng)性,優(yōu)化升級(jí)生活方式。
2 系統(tǒng)功能基于XBee無線技術(shù)的智能家居主要通過無線遙控模塊(XBee模塊)實(shí)現(xiàn)對(duì)家居環(huán)境的監(jiān)控。本文的智能窗簾控制系統(tǒng)是按照點(diǎn)對(duì)點(diǎn)通信方式進(jìn)行設(shè)計(jì)。利用專用軟件X-CTU配置任意一個(gè)XBee模塊為協(xié)調(diào)器coordinator API端的作為控制端,它實(shí)現(xiàn)的功能是發(fā)送數(shù)據(jù)給任意一個(gè)配置為終端router API端的XBee模塊,控制各個(gè)終端節(jié)點(diǎn)的工作,并通過RS232串口連接到上位機(jī)監(jiān)控界面,從而實(shí)現(xiàn)對(duì)各個(gè)終端節(jié)點(diǎn)的遠(yuǎn)程控制。本文主要實(shí)現(xiàn)智能窗簾的開與關(guān),其系統(tǒng)功能框圖如圖1所示。
圖1 系統(tǒng)功能框圖
3 硬件設(shè)計(jì)智能窗簾硬件主要采用一個(gè)帶有RS232串口或USB接口轉(zhuǎn)接電平轉(zhuǎn)換器的工控機(jī)(平板電腦),Arduino控制器,繼電器,電動(dòng)窗簾(含導(dǎo)軌)等。其中,通信的最關(guān)鍵部分就在于通信模塊的設(shè)計(jì)。本文的通信模塊的設(shè)計(jì)主要采用了由無線通信元件制造商MaxStream生產(chǎn)的一款mini型ZigBee收發(fā)模塊XBee Series 2模塊。 XBee模塊需兩塊,一塊是安裝在PC機(jī)(上位機(jī))控制發(fā)送端,一塊是作為Arduino控制器的無線接收端,具體硬件需求清單見表1所示。
表1硬件需求表
3.1上位機(jī)控制發(fā)送端硬件設(shè)計(jì)
上位機(jī)切換窗簾的三個(gè)開關(guān)狀態(tài)(打開窗簾、關(guān)閉窗簾、停止窗簾),按著一定的通信協(xié)議通過串口發(fā)送控制信息給與上位機(jī)USB相連的XBee模塊(協(xié)調(diào)端節(jié)點(diǎn)A),然后通過無線網(wǎng)絡(luò)發(fā)送控制信息到Arduino無線接收端的XBee模塊(終端節(jié)點(diǎn)B)。上位機(jī)主要實(shí)現(xiàn)切換、判斷和發(fā)送三個(gè)功能。協(xié)調(diào)端節(jié)點(diǎn)A端指令主要內(nèi)容包括終端節(jié)點(diǎn)B模塊的地址,要發(fā)給終端節(jié)點(diǎn)B模塊的信息等內(nèi)容。
為了實(shí)現(xiàn)協(xié)調(diào)端節(jié)點(diǎn)A、終端節(jié)點(diǎn)B兩個(gè)XBee模塊互相發(fā)送消息。利用XBee USB適配器對(duì)XBee模塊進(jìn)行配置,通過軟件X-CTU將其中的一個(gè)模塊節(jié)點(diǎn)配置成coordinator API(協(xié)調(diào)端節(jié)點(diǎn))模式,其他的均配置成router API(終端節(jié)點(diǎn))模式,確保這兩個(gè)節(jié)點(diǎn)在同一個(gè)網(wǎng)絡(luò)內(nèi)。這樣兩個(gè)節(jié)點(diǎn)之間就能按照XBee的通信協(xié)議進(jìn)行數(shù)據(jù)傳輸。
3.2 Arduino控制器的無線接收端硬件設(shè)計(jì)
Arduino控制器是一塊基于開始原始代碼的Simple i/o平臺(tái),并且具有開發(fā)語言和開發(fā)環(huán)境都很簡(jiǎn)單、易理解的特點(diǎn)。它使用高速的微處理控制器(ATMEGA328),可簡(jiǎn)單地與各類傳感器、電子元件連接。
Arduino主要性能描述:
? Digital I/O 數(shù)字輸入/輸出端共0-13。
? Analog I/O 模擬輸入/輸出端共0-5。
? 輸入電壓:接上USB時(shí)無須外部供電或外部5V-9V直流電壓輸入。
? 輸出電壓:5V直流電壓輸出和3.3V直流電壓輸出和外部電源輸入。
利用Arduino控制器的上述特性,本文在接收端處將終端節(jié)點(diǎn)XBee模塊直接與Arduino控制器相連,當(dāng)該XBee收到控制信息后,Arduino控制器則輸出5v直流電壓供后接繼電器吸合,從而控制智能窗簾開與關(guān)。
圖2 Arduino控制器
4 軟件設(shè)計(jì)針對(duì)基于XBee無線技術(shù)的智能窗簾功能,通過程序遠(yuǎn)程控制實(shí)現(xiàn)該功能的軟件設(shè)計(jì)主要包括兩部分:一部分是代步智能機(jī)器人上平板電腦(上位機(jī))中的無線發(fā)送模塊的程
序,另一部分是遠(yuǎn)程數(shù)據(jù)控制器Arduino(下位機(jī))中的無線接收模塊的程序。前者采用面向?qū)ο蟮目梢暬Z言VC++編寫,后者采用Arduino語言編寫。
用戶通過操作上位機(jī)控制界面按鈕(打開窗簾、關(guān)閉窗簾、停止窗簾),遠(yuǎn)程控制窗簾電機(jī)的正反向旋轉(zhuǎn),實(shí)現(xiàn)對(duì)智能窗簾的開關(guān)操作。當(dāng)鼠標(biāo)移動(dòng)到某個(gè)區(qū)域時(shí),調(diào)用相應(yīng)的控制指令,再通過控制系統(tǒng)實(shí)現(xiàn)遠(yuǎn)程控制電動(dòng)窗簾的運(yùn)動(dòng)。其中,窗簾開關(guān)到頭時(shí),自動(dòng)撤銷驅(qū)動(dòng)信號(hào),使窗簾運(yùn)動(dòng)停止。窗簾需要??吭谌我鉅顟B(tài)時(shí),在窗簾運(yùn)動(dòng)中按界面停止窗簾按鈕即可。
4.1上位機(jī)控制界面的軟件實(shí)現(xiàn)
上位機(jī)和XBee(coordinator API端)之間的通信是通過串口通信來完成。
首先使用ND命令查找網(wǎng)絡(luò)中的節(jié)點(diǎn)信息,發(fā)送的數(shù)據(jù)位:0x7E 00 04 08 09 4E 44 5C,確保協(xié)調(diào)端節(jié)點(diǎn)和終端節(jié)點(diǎn)在同一個(gè)網(wǎng)絡(luò)。
其次,利用無線網(wǎng)絡(luò)XBee模塊之間的通信協(xié)議,coordinator API端向router API端發(fā)送自己定義的相關(guān)字符(以打開窗簾為例發(fā)送字符K),具體數(shù)據(jù)如表2所示。
表2 發(fā)送數(shù)據(jù)
按照以上的通信協(xié)議,上位機(jī)PC機(jī)上開發(fā)了一個(gè)基于Windows系統(tǒng)的人機(jī)交互的控制界面,用來相應(yīng)鼠標(biāo)的移動(dòng)和點(diǎn)擊,主要負(fù)責(zé)與用戶進(jìn)行交互,同時(shí)反饋家電狀態(tài)信息,控制界面如圖3所示。
圖3 控制界面
如圖3所示,智能窗簾的監(jiān)控界面是由六個(gè)按鍵和兩個(gè)文本框構(gòu)成。其中,通訊模式方框中的模式切換按鍵用來切換智能家居的控制方式是物聯(lián)網(wǎng)模式或是GSM模式,文本框中用來顯示當(dāng)前的控制方式。智能開關(guān)方框中左邊兩個(gè)按鍵是控制電燈的工作狀態(tài),右邊三個(gè)按鍵是控制窗簾的工作狀態(tài)。短信模式方框中是顯示短信的具體內(nèi)容。本文主要介紹的是無線網(wǎng)絡(luò)物聯(lián)網(wǎng)模式下的智能窗簾的控制,因此GSM控制方式此處不做介紹。
4.2無線接收端的軟件實(shí)現(xiàn)
無線接收端主要由Arduino控制器、作為router API端的XBee模塊(終端節(jié)點(diǎn))、繼電器和電動(dòng)窗簾構(gòu)成。當(dāng)終端節(jié)點(diǎn)收到相應(yīng)字符,Arduino控制器則輸出5v。具體軟件流程圖如圖4所示(以打開窗簾為例進(jìn)行說明)。
圖4下位機(jī)軟件模塊設(shè)計(jì)
5 結(jié)束語本文完成了智能代步機(jī)器人智能家居監(jiān)控系統(tǒng)的硬件設(shè)計(jì)和軟件設(shè)計(jì),并進(jìn)行了調(diào)試,驗(yàn)證了所設(shè)計(jì)系統(tǒng)的有效性和實(shí)用性。其創(chuàng)新點(diǎn)在于將Xbee模塊引入傳統(tǒng)的家電通信控制,相對(duì)于以往的有線家電通信控制,省去了綜合布線難度,同時(shí)節(jié)約了成本,增加了可控點(diǎn)的靈活性。本文只給出了一個(gè)點(diǎn)對(duì)點(diǎn)的一個(gè)實(shí)例,按著這種思路,稍加擴(kuò)展就可實(shí)現(xiàn)大面積智能家居。隨著無線通信技術(shù)的發(fā)展和成熟,無線通信在未來的智能家居技術(shù)中必然會(huì)得到越來越廣泛的應(yīng)用,具有廣闊的應(yīng)用前景。