楊曉迪,廖 昕,刁 琦,古麗米拉·克孜爾別克
(新疆農(nóng)業(yè)大學(xué) 計算機與信息工程學(xué)院,新疆 烏魯木齊 830000)
基于ZigBee的智能家居控制系統(tǒng)設(shè)計
楊曉迪,廖 昕,刁 琦,古麗米拉·克孜爾別克
(新疆農(nóng)業(yè)大學(xué) 計算機與信息工程學(xué)院,新疆 烏魯木齊 830000)
針對傳統(tǒng)智能家居采用有線組建布線繁瑣,增減設(shè)備需要重新布線,影響美觀,且升級和維護均不方便。本文將ZigBee無線通信技術(shù)及嵌入式ARM技術(shù)結(jié)合在一起,設(shè)計了一種既能利用PC機又能利用手持終端對家居進行控制的智能家居控制系統(tǒng)。以現(xiàn)有嵌入式ARM微處理器的開發(fā)和控制水平,開展基于ZigBee的網(wǎng)點部署的研究,以無線網(wǎng)實施家居電器的控制和管理。測試表明,該系統(tǒng)具有良好的實用性、可靠性和可擴展性。
智能家居;無線通信;嵌入式;ZigBee
隨著社會經(jīng)濟的快速發(fā)展、人們生活水平的不斷提高,以及信息技術(shù)、控制技術(shù)、計算機技術(shù)的發(fā)展,人們渴望更加安全、健康、舒適和便利的家居環(huán)境。智能家居(smart home)概念應(yīng)運而生并逐漸進入人們的生活。同時,隨著各級政府大力開展“智慧城市”項目的建設(shè),智能家居作為其主要組成部分已成為當(dāng)今研究的熱點問題。成本低、性能好且擴展性好是研究人員亟待解決的關(guān)鍵問題[1-2]。
智能家居系統(tǒng)是以家庭住宅為基礎(chǔ),利用計算機技術(shù)、通信技術(shù)和控制技術(shù)實現(xiàn)對家庭相關(guān)設(shè)備的集成和監(jiān)控,從而形成便利性、安全性、高效性、自動化、個性化的智能居住環(huán)境[3]。傳統(tǒng)的智能家居系統(tǒng),通常是以有線的方式來組建系統(tǒng),存在著系統(tǒng)布線繁瑣、不便安裝、增減設(shè)備需要重新布線、維護成本高而且影響美觀等缺點[4]?;ヂ?lián)網(wǎng)和智能手機的迅速發(fā)展和普及,人們對智能化應(yīng)用的接受度大大提高,家庭Wi-Fi的使用也越來越普遍,成為移動設(shè)備連接互聯(lián)網(wǎng)的主要方式。當(dāng)今Android系統(tǒng)的盛行以及嵌入式技術(shù)的成熟給智能家居的發(fā)展提供了強大的技術(shù)動力,其應(yīng)用前景非常廣闊。讓智能手機成為智能家居的一部分是智能家居系統(tǒng)未來發(fā)展的必然趨勢[5-11]。
基于以上的事實,文中考慮將ZigBee技術(shù)與嵌入式技術(shù)相結(jié)合,利用ZigBee技術(shù)實現(xiàn)電腦與家電無線通信,將手持終端如Android智能手機通過Wi-Fi連接電腦,設(shè)計軟件實現(xiàn)既能用PC機又能用手持終端監(jiān)測環(huán)境數(shù)據(jù)并控制家電狀態(tài)。因此,本系統(tǒng)具有研究的社會價值和經(jīng)濟價值,符合當(dāng)前的實際應(yīng)用需要。文中旨在開發(fā)出一套智能家居的基礎(chǔ)版本,為以后的智能項目提供一個模板的支持,項目中的終端設(shè)備沒有采用實際的設(shè)備,而是采用LED燈來代替設(shè)備的工作狀態(tài)。
整個智能家居系統(tǒng)主要由ZigBee模塊、傳感器、繼電器、PC機、ARM板、Wi-Fi模塊和Android智能手機等構(gòu)成,系統(tǒng)結(jié)構(gòu)如圖1所示[12-14]。
系統(tǒng)分為感知層、傳輸層和顯控層3個部分。
感知層包括溫濕度傳感器、煙霧傳感器、繼電器等,傳感器用于獲取家居環(huán)境的相關(guān)參數(shù),系統(tǒng)通過繼電器開關(guān)控制家電的工作狀態(tài)。
傳輸層由ZigBee模塊和Wi-Fi模塊構(gòu)成,用來進行感知層和顯控層之間的數(shù)據(jù)傳輸。
系統(tǒng)運行后,傳感器獲取的家居環(huán)境的相關(guān)數(shù)據(jù)經(jīng)過ZigBee終端傳輸?shù)絑igBee協(xié)調(diào)器上,然后通過串口將數(shù)據(jù)傳輸?shù)?PC上,Android智能手機和ARM Cortext A8處理器通過TCP/IP連接PC的Wi-Fi,使得用戶可以使用手機或手持終端查看和遙控家居狀態(tài)。
顯控層由 Android智能手機、PC、ARM Cortext A8處理器等組成,用戶可以通過安裝的軟件查看家居環(huán)境相關(guān)參數(shù)并控制家用電器的狀態(tài),從而達(dá)到監(jiān)控室內(nèi)家居的目的。
圖1 智能家居系統(tǒng)結(jié)構(gòu)圖
系統(tǒng)硬件主要分為數(shù)據(jù)采集平臺和監(jiān)控平臺兩大部分。
數(shù)據(jù)采集平臺采用德州儀器 (TI) 公司的CC2530芯片作為ZigBee組網(wǎng)無線芯片,同時還包括多種傳感器。CC2530為IEEE 802.15.4標(biāo)準(zhǔn)的低成本、低功耗單片高集成度芯片,集成了一個高性能射頻收發(fā)模塊和一個低功耗8051單片機,支持TI公司Z-Statck協(xié)議棧。擁有豐富的接口資源,便于外圍拓展開發(fā)。處理器CC2530讀取傳感器數(shù)據(jù),通過天線把數(shù)據(jù)傳輸?shù)絑igBee協(xié)調(diào)器上[15]。采集平臺硬件結(jié)構(gòu)如圖2所示。
圖2 采集平臺硬件結(jié)構(gòu)圖
監(jiān)控平臺分為PC端和手持終端。PC端主要包括Windows電腦、CC2530處理器和網(wǎng)關(guān)。電腦端采用Microsoft Visual Studio的MFC框架開發(fā)的溫濕度等顯示與開關(guān)控制界面。手持終端采用S5PV210處理器,同時包括SRAM、Nand Flash、Wi-Fi、LCD以及多種外圍電路。S5PV210處理器是基于 ARM Cortext A8架構(gòu)的處理器,SRAM作為系統(tǒng)運行的內(nèi)存,Nand Flash中存放u-boot、Linux內(nèi)核、文件系統(tǒng)、驅(qū)動程序、應(yīng)用程序等,Wi-Fi是無線信號收發(fā)模塊,用于傳輸溫濕度以及控制命令等數(shù)據(jù)。監(jiān)控平臺硬件結(jié)構(gòu)如圖 3所示。除此之外,還可以用Android智能手機通過Wi-Fi與網(wǎng)關(guān),從而實現(xiàn)便捷的監(jiān)控家居設(shè)備。
圖3 監(jiān)控平臺硬件結(jié)構(gòu)圖
系統(tǒng)的軟件主要包括數(shù)據(jù)采集模塊和數(shù)據(jù)顯示與控制模塊。采集模塊包括溫度采集子程序,濕度采集子程序,煙霧檢測子程序,繼電器控制子程序。數(shù)據(jù)顯示與控制模塊包括溫度顯示子程序,濕度顯示子程序,氣體數(shù)值顯示子程序,以及串口通訊程序。
3.1 ZigBee無線傳感網(wǎng)絡(luò)程序設(shè)計
3.1.1 ZigBee工作流程
ZigBee協(xié)議棧工作流程如圖4所示。主函數(shù)先執(zhí)行初始化工作,包括硬件、網(wǎng)絡(luò)層、任務(wù)等初始化,然后執(zhí)行操作系統(tǒng)。主要為操作系統(tǒng)的初始化和運行部分。
圖4 主函數(shù)工作流程圖
3.1.2 操作系統(tǒng)初始化
操作系統(tǒng)初始化包括任務(wù)初始化等6個初始化函數(shù)。任務(wù)初始化流程為分配內(nèi)存、設(shè)置內(nèi)存空間單元值、任務(wù)優(yōu)先級從高到低依次排序、創(chuàng)建任務(wù)。創(chuàng)建任務(wù)時需初始化應(yīng)用設(shè)備的網(wǎng)絡(luò)類型,設(shè)備類型的改變都要產(chǎn)生一個事件,所以在設(shè)備初始化的時候一定要把它清空。那么它就會去檢測整個環(huán)境,看是否能重新建立或者加入存在的網(wǎng)絡(luò)。如果信息保存在非易失存儲器中,當(dāng)設(shè)備斷電或者某種意外重啟時,只需要恢復(fù)其網(wǎng)絡(luò)狀態(tài),而不需要重新建立網(wǎng)絡(luò)連接。創(chuàng)建任務(wù)時還需要設(shè)置發(fā)送數(shù)據(jù)的方式和目的地址尋址方式并登記所有的按鍵事件。
3.1.3 運行操作系統(tǒng)
運行操作系統(tǒng)流程為掃描哪個事件被觸發(fā)了并置相應(yīng)的標(biāo)志位,得到待處理的最高優(yōu)先級任務(wù)索引號,進入臨界區(qū),提取需要處理的任務(wù)中的事件,清除本次任務(wù)的時間,退出臨界區(qū),通過指針調(diào)用任務(wù)處理函數(shù),進入臨界區(qū),保護未處理的事件,退出臨界區(qū)。
1)串口程序的配置
CC2530配置串口的一般步驟為:配置IO,使用外部設(shè)備功能,配置P0_2、P0_3作為串口;配置相應(yīng)串口的控制和狀態(tài)寄存器,設(shè)置為UART方式;配置波特率為115200。開總中斷允許接收中斷。
2)溫濕度數(shù)據(jù)獲取子程序的設(shè)計
溫濕度的獲取用到串口和P0_7。DHT11溫濕度程序采用模塊化的編程思想,只需要調(diào)用溫濕度讀取函數(shù)即可,相當(dāng)方便,移植到其他平臺也非常容易。讀取出的溫濕度轉(zhuǎn)換成字符串傳輸?shù)斤@控器上顯示。
3)氣體傳感器數(shù)據(jù)獲取程序設(shè)計
當(dāng)傳感器所處環(huán)境中存在可燃?xì)怏w時,傳感器的電導(dǎo)率隨空氣中可燃?xì)怏w濃度的增加而增大。使用簡單的電路即可將電導(dǎo)率的變化轉(zhuǎn)換為與該氣體濃度相對應(yīng)的輸出信號。程序使用CC2530的P0_6作為檢測引腳。當(dāng)濃度高于設(shè)定值時,P0_6為低電平,正常狀態(tài)時為高電平。
3.2 客戶端管理軟件設(shè)計
系統(tǒng)支持兩種客戶端:Windows客戶端和Android系統(tǒng)客戶端。
基于C++語言開發(fā)的Windows客戶端軟件,可直接安裝在Windows操作系統(tǒng)的PC上運行,通過ZigBee無線傳輸監(jiān)控家居狀態(tài)?;贏ndroid系統(tǒng)設(shè)計的手持終端軟件,直接安裝在Android智能手機上或通過安裝在Android操作系統(tǒng)的ARM處理器,可在戶內(nèi)任何地方通過Wi-Fi監(jiān)控家居狀態(tài)。
3.2.1 串口通訊子程序
此程序是Windows客戶端的一個模塊,Windows客戶端通過串口獲取ZigBee協(xié)調(diào)器的數(shù)據(jù)。
串口的操作函數(shù)有兩種操作方式:同步操作和異步操作。同步操作時,API函數(shù)阻塞直到完成以后才能返回(在多線程方式中,雖然不會阻塞主線程,但是仍然會阻塞監(jiān)聽線程);而異步操作方式,API函數(shù)會立即返回,操作在后臺進行,避免線程的阻塞。客戶端程序讀取串口的數(shù)據(jù),采用異步的方式。
在打開通訊設(shè)備句柄后,需要對串口進行一些初始化配置工作。這需要通過一個DCB結(jié)構(gòu)來進行。DCB結(jié)構(gòu)包含了諸如波特率、數(shù)據(jù)位數(shù)、奇偶校驗和停止位數(shù)等信息。在查詢或配置串口的屬性時,都要用DCB來做緩沖區(qū)。
在用異步方式寫串口時,雖然 ReadFile和WriteFile在完成操作以前就能返回,但超時仍然起作用的。在這種情況下,超時規(guī)定的是操作的完成時間,而不是ReadFile的返回時間。ReadFile函數(shù)只要在串口輸入緩沖區(qū)中讀入指定數(shù)量字符,就算操作完成,WriteFile函數(shù)不但要把指定數(shù)量的字符拷入到輸出緩沖,而且要等這些字符從串口送出后才算完成操作。
3.2.2 顯示程序設(shè)計
智能家居Windows客戶端軟件在電腦上運行,只要雙擊程序打開即可。它從串口讀取ZigBee協(xié)調(diào)器上的數(shù)據(jù),使用一個線程在循環(huán)讀。對每分鐘的溫濕度的數(shù)據(jù)取平均值,然后上報顯示。其實在MFC中對于線程的使用要非常謹(jǐn)慎。如你的數(shù)據(jù)處理都是在主線程完成的,窗口句柄是屬于線程的,如果擁有窗口句柄的線程退出了,使得另一個線程處理這個句柄,系統(tǒng)就會出現(xiàn)問題。雖然使用全局變量和static變量做線程間的共享數(shù)據(jù),很方便,但使用不慎,會對程序造成安全隱患。應(yīng)盡量使用參數(shù)傳遞對象,并且被傳遞的對象,應(yīng)該只包括必須的成員變量。
智能家居Android客戶端的開發(fā),最重視交互界面的開發(fā),交互界面是用戶感知產(chǎn)品的最直觀通道。產(chǎn)品能否被用戶所接受,很大程度上取決于交互設(shè)計的成敗。對于交互的設(shè)計我們的理念是:操作簡單,顯示直觀。對于交互中的重要信息,要進行視覺的強化,在界面中要占據(jù)顯著的位置。
使用SmartRF Flash Programmer燒寫Hex固件到ZigBee節(jié)點,將傳感器等硬件設(shè)備接好,安裝PC機控件,先給協(xié)調(diào)器上電,再打開軟件,運行結(jié)果如圖5所示。
圖5 PC客戶端軟件界面
手機打開Wi-Fi并連接好后,進行網(wǎng)絡(luò)設(shè)置,輸入電腦IP地址后即可連接,手機顯示連接成功后,會自動刷新數(shù)據(jù)。如圖6所示。
圖6 Android客戶端軟件界面
文中設(shè)計了基于ZigBee的智能家居控制系統(tǒng),利用傳感器對室內(nèi)環(huán)境數(shù)據(jù)進行測量,利用ZigBee技術(shù)將數(shù)據(jù)無線傳輸至服務(wù)器,在PC端開發(fā)了人機交互界面,顯示傳感器測量的環(huán)境數(shù)據(jù)和家居狀態(tài),可以通過界面按鈕改變家居狀態(tài)。開發(fā)了基于Android系統(tǒng)設(shè)計的手持終端軟件,可以安裝在Android智能手機上,在戶內(nèi)任何地方通過Wi-Fi監(jiān)控家居狀態(tài)。手機不在的情況下也可以安裝在Android操作系統(tǒng)的ARM架構(gòu)的設(shè)備上代替手機,通過觸摸屏監(jiān)控家居狀態(tài)。經(jīng)過測試,系統(tǒng)穩(wěn)定可靠,具有安裝方便,無需布線,也無需對室內(nèi)電線作任何改動,可擴展性強的特點,具有很強的實用性,適合家庭住宅、公寓、公司寫字樓等場所推廣使用,具有很好的市場前景。但是作為一個完善的系統(tǒng)需要考慮到用戶的各種需求,可以在此系統(tǒng)的基礎(chǔ)上通過后續(xù)的開發(fā)來實現(xiàn)更多的功能。
[1]高鵬,鄭超,任岐鳴,等.ARM和ZigBee的智能家居監(jiān)控網(wǎng)絡(luò)設(shè)計[J].計算機測量與控制,2014(10): 3206-3209.
[2]蔣玉娥,劉桂江.一種應(yīng)用ZigBee技術(shù)的智能家居環(huán)境監(jiān)測方案[J].安慶師范學(xué)院學(xué)報:自然科學(xué)版,2014(4):74-78.
[3]王一棋,何麗莉,胡成全,等.基于ZigBee和Internet的無線智能家居網(wǎng)關(guān)系統(tǒng)[J].吉林大學(xué)學(xué)報:理學(xué)版,2015(2):302-306.
[4]潘穎輝.基于Android和嵌入式Web技術(shù)的智能家居系統(tǒng)設(shè)計[J].東北師大學(xué)報:自然科學(xué)版,2015(1):71-76.
[5]何遙.未來智能家居的特點與趨勢[J].中國公共安全,2014(21):152-156.
[6]王暉.物聯(lián)網(wǎng)時代智能家居的發(fā)展趨勢[J].智能建筑,2013(2):17-19.
[7]吳佳興,李愛國.基于云計算的智能家居系統(tǒng)[J].計算機應(yīng)用與軟件,2013(7):240-243,314.
[8]張桂青,鹿曼,汪明,等.智能家居的“春天”來了[J].計算機科學(xué),2013(S1):398-402.
[9]呂莉,羅杰.智能家居及其發(fā)展趨勢[J].計算機與現(xiàn)代化,2007(11):18-20,23.
[10]張永剛,王斌.物聯(lián)網(wǎng)技術(shù)在智能家居中的應(yīng)用[J].智能建筑與城市信息,2012(2):27-30.
[11]申斌,張桂青,汪明,等.基于物聯(lián)網(wǎng)的智能家居設(shè)計與實現(xiàn)[J].自動化與儀表,2013(2):6-10.
[12]郭穩(wěn)濤,何怡剛.智能家居遠(yuǎn)程監(jiān)控系統(tǒng)的研究與設(shè)計[J].計算機測量與控制,2011(9):2109-2112.
[13]馬季.智能家居遠(yuǎn)程監(jiān)控系統(tǒng)的研究與實現(xiàn)[D].中國海洋大學(xué),2009.
[14]彭俊杰,賀輝,朱平安,等.Zigbee based new approachtosmarthome [J].Journal of Shanghai University(EnglishEdition),2010(1):12-16.
[15]馬菁菁.Zigbee無線通信技術(shù)在智能家居中的應(yīng)用研究[D].武漢理工大學(xué),2007.
The design of smart home control system based on ZigBee
YANG Xiao-di,LIAO Xin,DIAO Qi,GuLimila·kezierbieke
(School of Computer and Information Engineering,Xinjiang Agricultural University of China,Urumqi 830000,China)
Traditional smart home wiring cumbersome wired formation,changes in equipment needs rewiring,affect the appearance,upgrades and maintenance are not convenient.This will combine the ZigBee wireless communication technology and embedded ARM technology together,designed both to use a PC,but also on the use of hand-held terminal to control home smart home control system.To develop and control the level of existing embedded ARM microprocessor,to carry out research based on ZigBee network deployment,the implementation of a wireless network control and management of household electrical appliances.Test results show that the system has good usability,reliability and scalability.
smart home;wireless communication;ARM;ZigBee
TN919.6+4
:A
:1674-6236(2017)06-0140-04
2016-03-12稿件編號:201603149
楊曉迪(1991—),女,河北遷安人,碩士研究生。研究方向:智能計算與應(yīng)用。