林婷婷 陳 華
(新疆大學(xué)電氣工程學(xué)院 新疆 烏魯木齊 830049)
?
基于Cubieboard和ZigBee的智能家居系統(tǒng)設(shè)計(jì)
林婷婷陳華
(新疆大學(xué)電氣工程學(xué)院新疆 烏魯木齊 830049)
摘要針對(duì)傳統(tǒng)智能家居系統(tǒng)受Internet的地域限制和控制的局限性,開發(fā)成本高,功耗大的問題,設(shè)計(jì)并實(shí)現(xiàn)了一種基于Cubieboard和ZigBee的智能家居系統(tǒng)。圍繞Cubieboard來搭建系統(tǒng)的嵌入式網(wǎng)關(guān)和服務(wù)器,通過移植ZigBee協(xié)議棧到Cubieboard來組建智能家居的無線傳感網(wǎng)絡(luò)和控制網(wǎng)絡(luò),實(shí)現(xiàn)各模塊之間的無線通信。同時(shí)設(shè)計(jì)網(wǎng)頁和客戶端,將平板電腦、筆記本和智能手機(jī)作為系統(tǒng)的監(jiān)控終端,實(shí)現(xiàn)對(duì)智能家居系統(tǒng)的實(shí)時(shí)遠(yuǎn)程監(jiān)控。通過完成整套軟硬件平臺(tái)的搭建,并試調(diào)程序,完成并實(shí)現(xiàn)了預(yù)期的智能家居系統(tǒng)設(shè)計(jì)。
關(guān)鍵詞智能家居CubieboardZigbee控制網(wǎng)關(guān)遠(yuǎn)程控制終端Android
DESIGNING SMART HOME SYSTEM BASED ON CUBIEBOARD AND ZIGBEE
Lin TingtingChen Hua
(College of Electrical Engineering,Xinjiang University,Urumqi 830049,Xinjiang,China)
AbstractIn view of the problems of traditional smart home system such as being subject to geographical restrictions of Internet and the limitation in control, as well as high-cost in development and high power consumption, we designed and implemented a smart home system which is based on Cubieboard and ZigBee. We built the embedded gateway and server of the system around Cubieboard, constructed the wireless sensor network and control network of smart home by transplanting ZigBee protocol stack to Cubieboard, and realised the wireless communication between each module. At the same time we designed the webpages and the client, and used the tablet PCs, laptops and smartphones as monitoring terminals of the system, thus achieved the real-time remote monitoring on smart home system. By the completion of building whole set of hardware and software platform and testing the program, we accomplished and realised the expected smart home system design.
KeywordsSmart homeCubieboardZigbeeControl gatewayRemote control terminalAndroid
0引言
隨著科技的日新月異,人們生活水平不斷提高,人們對(duì)生活質(zhì)量的日益重視,普通的生活家居已經(jīng)不能夠滿足廣大居民對(duì)生活方式現(xiàn)代化和居住環(huán)境舒適化與安全化的要求,如何實(shí)現(xiàn)家居智能化已成為現(xiàn)代家居發(fā)展的方向。因此智能家居系統(tǒng)應(yīng)運(yùn)而生。由于國家對(duì)物聯(lián)網(wǎng)的支持,使得智能家居具有巨大的發(fā)展空間。
智能家居是以住宅為平臺(tái),利用先進(jìn)的計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)通信技術(shù)、綜合布線技術(shù)和無線技術(shù),提供友好的智能家居遠(yuǎn)程管理界面,將與家居生活有關(guān)的各種子系統(tǒng)有機(jī)地結(jié)合在一起[1],提供舒適安全、高品位的家庭生活空間,將原來被動(dòng)靜止的家居生活轉(zhuǎn)變成能動(dòng)智慧的生活方式,提供全方位的信息交換功能。智能家居系統(tǒng)是實(shí)現(xiàn)家居智能化的設(shè)施,隨著智能家居的不斷發(fā)展[2],開發(fā)一種低功耗且方便操作的家居控制系統(tǒng)成為現(xiàn)在智能家居發(fā)展的一種趨勢。
本系統(tǒng)主要圍繞Cubieboard來搭建,通過移植ZigBee協(xié)議棧到Cubieboard來組建智能家居的無線傳感及控制網(wǎng)絡(luò),在此基礎(chǔ)上實(shí)現(xiàn)居室環(huán)境的感知、家用電器的開關(guān)控制以及防盜報(bào)警等功能。平臺(tái)設(shè)計(jì)盡可能采用通用模塊以及標(biāo)準(zhǔn)協(xié)議,在降低智能家居系統(tǒng)組建成本的同時(shí),降低搭建難度,讓智能家居物聯(lián)技術(shù)盡快走進(jìn)人們的生活中來。
1系統(tǒng)總體設(shè)計(jì)
智能家居系統(tǒng)是實(shí)現(xiàn)家居智能功能的設(shè)施,最初的家居控制的設(shè)計(jì)只是簡單的控制家中的如電視、電冰箱、空調(diào)、熱水器、照明設(shè)備等的家用電器,而新的智能家居是一個(gè)更大范圍的控制,大致可以分為:中央控制系統(tǒng),安全防范系統(tǒng),智能照明系統(tǒng),電器控制系統(tǒng),環(huán)境控制系統(tǒng),多媒體共享系統(tǒng),綜合布線系統(tǒng)和高層逃生系統(tǒng)。
智能家居系統(tǒng)的基本組成結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
本設(shè)計(jì)旨在降低成本,利用筆記本、平板電腦和智能手機(jī)等這些普通家庭中已有的資源作為系統(tǒng)的監(jiān)控終端。采用集成了開源操作系統(tǒng)的Cubieboard計(jì)算機(jī)來取代傳統(tǒng)的PC機(jī)作為網(wǎng)關(guān),由于其擁有豐富的標(biāo)準(zhǔn)接口,可以用鍵盤、鼠標(biāo)、電視機(jī)等作為網(wǎng)關(guān)的輸入輸出設(shè)備,并且網(wǎng)關(guān)內(nèi)安裝有支持BS模式訪問的Web服務(wù)器和支持CS模式訪問的服務(wù)器APP,在手持終端上安裝客戶端[3],服務(wù)器和客戶端可通過因特網(wǎng)或WiFi局域網(wǎng)登錄家居網(wǎng)關(guān)Web頁面,交互數(shù)據(jù),提取信息從而控制家電。同時(shí)本設(shè)計(jì)還可實(shí)現(xiàn)視頻傳輸,實(shí)現(xiàn)家居系統(tǒng)的遠(yuǎn)程監(jiān)控,實(shí)現(xiàn)更加友好的人機(jī)交互界面。家庭內(nèi)所用數(shù)據(jù)以及家用電器的設(shè)備狀態(tài)在一段時(shí)間內(nèi)都可儲(chǔ)存在本地的微型數(shù)據(jù)庫中。本文設(shè)計(jì)的智能家居系統(tǒng)的網(wǎng)絡(luò)采用的是無線組網(wǎng)方式,在一些常用的無線方式中,ZigBee比藍(lán)牙技術(shù)簡單,網(wǎng)絡(luò)容量大,比WiFi功耗低,比射頻通信技術(shù)完善,故本設(shè)計(jì)采用的是ZigBee無線通信方式。網(wǎng)關(guān)通過與之相連的ZigBee協(xié)調(diào)器收集數(shù)據(jù)和下傳命令。同時(shí)ZigBee協(xié)調(diào)器擔(dān)任著組織建立并管理其他ZigBee模塊所組成的通信網(wǎng)絡(luò)的功能。
2主要系統(tǒng)硬件設(shè)計(jì)
2.1網(wǎng)關(guān)硬件設(shè)計(jì)
智能家居網(wǎng)關(guān)是家居智能化的心臟,通過它來實(shí)現(xiàn)信息的采集、輸入和輸出,集中控制、聯(lián)動(dòng)控制、遠(yuǎn)程控制等功能。為了解決早期使用的普通PC機(jī)網(wǎng)關(guān)存在的能力過剩、功耗高、 很難實(shí)現(xiàn)長期可靠的運(yùn)行等缺點(diǎn),本設(shè)計(jì)采用的是中國珠海Cubietech技術(shù)團(tuán)隊(duì)開發(fā)的Cubieboard來取代pc機(jī),它是一款類似“樹莓派”(Raspberry Pi)的以ARM為核心的卡片式廉價(jià)計(jì)算機(jī)[4]。
Cubieboard功耗低,體積小,接口全,除具備常用的基本接口外還多出了UART、IIC、SPI等家用PC沒有的接口。除了PC機(jī)的Ubuntu系統(tǒng)外,它還能運(yùn)行嵌入式系統(tǒng)Android。軟硬件平臺(tái)均開放便于開發(fā)同時(shí)擁有自己的技術(shù)論壇,故本文選用Cubieboard作為智能家居系統(tǒng)網(wǎng)關(guān)[5]。
對(duì)于Cubieboard現(xiàn)有的板載接口來說,它只能組成一個(gè)多媒體計(jì)算機(jī)而無法完成網(wǎng)關(guān)任務(wù),為了完成本文所需要的網(wǎng)關(guān)任務(wù)需要從96PIN擴(kuò)展接口中引出需要的通信接口為Cubieboard設(shè)計(jì)一塊擴(kuò)展底板,這樣就能給選用的Cubieboard板載接口加入GSM模塊以及Zigbee協(xié)調(diào)器。本文GSM模塊選用西門子公司的TC35i工業(yè)模塊,此模塊可完成GSM音頻、短信通信以及GPRS上網(wǎng)功能。ZigBee模塊選擇德州儀器公司CC2530芯片,設(shè)計(jì)中采用板載天線、低功耗小體積貼片結(jié)構(gòu),便于進(jìn)一步集成。根據(jù)TC35i模塊和ZigBee模塊開發(fā)手冊(cè)可知,TC35i模塊所需的供電電壓為4.2 V,在此條件下各端口電壓工作在3.3 V。ZigBee供電電壓為2 V至3.6 V。由Cubieboard引出接口說明知,Cubieboard可提供5 V和3.3 V兩種電壓電源,其中3.3 V電源可為ZigBee模塊供電,TC35i則需要額外的穩(wěn)壓電路。本文選用LM2941S可編程穩(wěn)壓芯片搭建4.2 V穩(wěn)壓電路。如圖2所示。LM2941S輸入電壓為直流5至26 V,輸出電壓通過兩個(gè)電阻的比值決定,圖2上圖為LM2941S電壓編程模型,輸出電壓Vout=Vref×(1+(R1/R2)),手冊(cè)中Vref取1.24,由此通過調(diào)整R1和R2電阻的比值即可決定電壓輸出值,本文取值R1=4.7 K,R2=2 K。LM2941S還提供一個(gè)電源輸出控制引腳,此引腳接高電平則有電源輸出,接低電平則關(guān)斷輸出。因此可使用Cubieboard的一個(gè)引腳作為TC35i模塊的電源開關(guān)控制引腳,具體電路如圖2下圖所示。
圖2 4.2V穩(wěn)壓電路
又TC35i模塊上電之后還需要在IGT管腳施加一個(gè)100ms長度的低電平才能啟動(dòng)工作,因此需要給TC35i設(shè)計(jì)一個(gè)上電點(diǎn)火電路。本文點(diǎn)火電路圍繞MAX810進(jìn)行搭建如圖3所示。TC35i模塊工作時(shí)需要連接SIM卡才能接入GSM網(wǎng)絡(luò),因此擴(kuò)展板需要SIM卡接口電路,如圖4所示。
圖3 TC35i上電點(diǎn)火電路
圖4 SIM卡接口電路
最后擴(kuò)展板上還需要分別將Cubieboard的串口與TC35i模塊和ZigBee模塊相連,并提供一個(gè)PC監(jiān)控串口,方便測試,本文選擇UART3連接ZigBee模塊,UART4連接TC35i模塊,詳細(xì)串口電路如圖5所示。
圖5 串口電路
2.2其他組件模塊
傳感組件主要由ZigBee通信終端與傳感器組合設(shè)計(jì)而成,傳感器負(fù)責(zé)采集數(shù)據(jù),ZigBee通信終端負(fù)責(zé)將數(shù)據(jù)發(fā)送至ZigBee主節(jié)點(diǎn),其組成模型如圖6所示。
圖6 ZigBee終端節(jié)點(diǎn)硬件組成結(jié)構(gòu)簡圖
控制組件一般分為兩類:一類是電源開關(guān)控制,另一類是紅外遙控控制。控制模塊如圖7所示。
圖7 控制模塊組成結(jié)構(gòu)簡圖
3主要系統(tǒng)軟件設(shè)計(jì)
智能家居系統(tǒng)軟件按照處理器區(qū)分可分為網(wǎng)關(guān)和ZigBee終端兩部分。
3.1網(wǎng)關(guān)的設(shè)計(jì)
網(wǎng)關(guān)的軟件開發(fā)工作主要是在Android環(huán)境下開發(fā)Android應(yīng)用程序,因此在軟件開發(fā)工作進(jìn)行前首先要搭建軟件開發(fā)環(huán)境,網(wǎng)關(guān)應(yīng)用需要調(diào)用底層驅(qū)動(dòng)函數(shù),需要提高應(yīng)用程序的訪問權(quán)限,因此需要自行配置編譯Android系統(tǒng)鏡像,為提高編譯效率,在此選用linux系統(tǒng)下的開發(fā)套件。
網(wǎng)關(guān)程序的主要功能分為以下三部分:1) 與掛載于Cubieboard串口上的ZigBee模塊和TC35i模塊進(jìn)行串口通信;2) 與運(yùn)行于智能手機(jī)或平板上的Android客戶端進(jìn)行網(wǎng)絡(luò)通信;3) 將接收到的數(shù)據(jù)進(jìn)行相應(yīng)的處理。網(wǎng)關(guān)程序的流程如圖8所示。
圖8 網(wǎng)關(guān)程序流程圖
3.2ZigBee終端軟件設(shè)計(jì)
本設(shè)計(jì)采用的是星形網(wǎng)組建ZigBee通信網(wǎng)絡(luò),該網(wǎng)絡(luò)包含一個(gè)ZigBee網(wǎng)絡(luò)協(xié)調(diào)器和若干終端節(jié)點(diǎn)。協(xié)調(diào)器程序運(yùn)行[6]流程如圖9所示。
圖9 協(xié)調(diào)器程序運(yùn)行流程
終端節(jié)點(diǎn)在啟動(dòng)時(shí),首先要執(zhí)行一系列初始化準(zhǔn)備工作,例如設(shè)置信道、網(wǎng)絡(luò)標(biāo)識(shí)符、發(fā)送地址等參數(shù)。為后續(xù)初始化工作做好準(zhǔn)備,配置代碼如下:
basicRfConfig.panId = PAN_ID;
//設(shè)置網(wǎng)絡(luò)標(biāo)識(shí)
basicRfConfig.channel = RF_CHANNEL;
// 設(shè)置信道
basicRfConfig.ackRequest = TRUE;
//打開ACK回復(fù)功能
basicRfConfig.myAddr = SEND_ADDR;
//設(shè)定本機(jī)地址
執(zhí)行完配置項(xiàng)后開始調(diào)用硬件芯片初始化的相關(guān)函數(shù),初始化硬件資源,接下來初始化并啟動(dòng)操作系統(tǒng),開始任務(wù)調(diào)度,這部分代碼由TI官網(wǎng)提供編程框架,初始化函數(shù)封裝在Zmain.c、OSAL.c文件中。實(shí)現(xiàn)終端節(jié)點(diǎn)設(shè)計(jì)功能的應(yīng)用(任務(wù))由用戶編寫。
用戶應(yīng)用編寫流程如下:
首先在官方代碼框架下加入該任務(wù)的任務(wù)初始化函數(shù),主要完成用戶任務(wù)ID設(shè)定、綁定標(biāo)志位設(shè)定、初始化并注冊(cè)該任務(wù)層的端口描述符、設(shè)置和注冊(cè)該任務(wù)的響應(yīng)事件等工作,為該任務(wù)的執(zhí)行做好準(zhǔn)備。在該任務(wù)執(zhí)行時(shí)會(huì)從非易失性存儲(chǔ)器中讀取配置信息,將ZigBee設(shè)備配置為終端節(jié)點(diǎn)。
ZigBee設(shè)備作為終端節(jié)點(diǎn)啟動(dòng)后,如果網(wǎng)絡(luò)存在將給ZDO(ZigBee設(shè)備對(duì)象)一個(gè)發(fā)現(xiàn)網(wǎng)絡(luò)的反饋信息,然后由網(wǎng)絡(luò)層加入網(wǎng)絡(luò)請(qǐng)求,如果入網(wǎng)成功,則會(huì)給一個(gè)加入網(wǎng)絡(luò)的反饋信息。根據(jù)這一特性,在用戶任務(wù)配置代碼后加入網(wǎng)絡(luò)搜索、加入申請(qǐng)代碼。
加入網(wǎng)絡(luò)后終端節(jié)點(diǎn)會(huì)尋找ZigBee網(wǎng)絡(luò)內(nèi)的協(xié)調(diào)器進(jìn)行綁定,如果綁定成功,就開始執(zhí)行采集、發(fā)送功能函數(shù)。
4Android設(shè)備客戶端軟件設(shè)計(jì)
由于Android操作系統(tǒng)的開放性和可移植性,它被用在大部分電子產(chǎn)品中(如智能手機(jī),電腦,電視,機(jī)頂盒,導(dǎo)航儀等),故本設(shè)計(jì)控制終端設(shè)備選擇的是具有Android操作系統(tǒng)的智能手機(jī)等電子產(chǎn)品。 Android設(shè)備應(yīng)用程序的所用編程語言為Java語言,所用編譯工具為google公司提供的eclipse集成開發(fā)環(huán)境[7]。Android軟件堆層實(shí)際就由一個(gè)應(yīng)用程序框架、Linux內(nèi)核和一個(gè)C/C++庫三部分集合而成。
要實(shí)現(xiàn)無線監(jiān)控的目的,首先要搭建Android應(yīng)用程序的開發(fā)環(huán)境,再設(shè)計(jì)與實(shí)現(xiàn)Android客戶端的界面,實(shí)現(xiàn)和服務(wù)器的socket連接之后獲取智能家居安防中的各個(gè)傳感器的信息。
在設(shè)計(jì)Android UI的每一個(gè)獨(dú)立組件時(shí),其元素都是使用的源于Viewgroup的各種布局管理器設(shè)計(jì)分布到界面上。Android的SDK包含很多的布局類,本文設(shè)計(jì)的用戶界面主界面實(shí)現(xiàn)使用LinearLayout、RelativeLayout兩個(gè)布局類[8]。如圖10為Android設(shè)備客戶端主界面圖,用戶進(jìn)入登錄成功后進(jìn)入如圖所示的用戶主界面主要包含連接按鈕和照明控制按鈕、環(huán)境感知按鈕等,所有功能模塊的工作都是通過應(yīng)用程序網(wǎng)絡(luò)通信功能來實(shí)現(xiàn)Android設(shè)備與家庭網(wǎng)關(guān)的數(shù)據(jù)傳輸。以環(huán)境感知按鈕為例如圖11所示,用戶選擇環(huán)境感知按鈕就可以進(jìn)入此界面,獲取當(dāng)時(shí)的環(huán)境參數(shù)。
圖10 Android設(shè)備客戶端主界面圖
圖11 環(huán)境感知界面
網(wǎng)絡(luò)通信模塊是Android應(yīng)用程序至關(guān)重要的一部分,主要實(shí)現(xiàn)和服務(wù)器的socket連接(如圖12所示),與智能網(wǎng)關(guān)進(jìn)行雙向網(wǎng)絡(luò)通信,Java語言擁有豐富的針對(duì)網(wǎng)絡(luò)進(jìn)行編程的函數(shù),在設(shè)計(jì)使用時(shí)只需對(duì)函數(shù)進(jìn)行調(diào)用和重載即可,例如,調(diào)用:
socket = new Socket(serverIpAddress,port);
DataOutputStream os
=newDataOutputStream(socket.getOutputStream());
DataInputStreamis
=newDataInputStream(socket.getInputStream());
就可方便地實(shí)現(xiàn)與網(wǎng)絡(luò)上指定IP、指定端口的服務(wù)器進(jìn)行通信。
圖12 Android客戶端socket的執(zhí)行過程
5結(jié)語
在這個(gè)科技日新月異的時(shí)代,人們對(duì)生活的便利度和舒適度要求日益提高,智能家居產(chǎn)品順應(yīng)人們的需求,終究會(huì)廣泛應(yīng)用到人們的日常生活中去。本設(shè)計(jì)實(shí)現(xiàn)了對(duì)傳統(tǒng)智能家居的改進(jìn),利用Cubieboard計(jì)算機(jī)來取代PC機(jī)作為網(wǎng)關(guān),利用ZigBee無線通信取代了傳統(tǒng)的有線通信模式,實(shí)現(xiàn)了ZigBee技術(shù)與 Cubieboard計(jì)算機(jī)的有效結(jié)合,實(shí)現(xiàn)了將平板電腦、筆記本和智能手機(jī)作為系統(tǒng)的監(jiān)控終端,準(zhǔn)確實(shí)時(shí)地對(duì)家用電器信息等集中管理和監(jiān)控,實(shí)現(xiàn)了預(yù)期的設(shè)計(jì)目的。
參考文獻(xiàn)
[1] 張桂青,鹿曼,汪明,等.智能家居的“春天”來了[J].計(jì)算機(jī)科學(xué),2013,40(6A):398-402.
[2] 李治斌,鄧小芳,張余明,等.基于Zig Bee技術(shù)的智能調(diào)光開關(guān)設(shè)計(jì)[J].傳感器與微系統(tǒng),2014,33(1):60-63.
[3] 張麗靜,郭禹伶,高志強(qiáng),等.基于Android平臺(tái)的智能家居遠(yuǎn)程客戶端設(shè)計(jì)[J].河北電力技術(shù),2014,33(1):25-27.
[4] 老鬼阿定.開源硬件掀起一波創(chuàng)新大潮[N].計(jì)算機(jī)世界,2013-11-11.
[5] 袁麓,劉丹斌,安國超.面向廣電物聯(lián)網(wǎng)的智能家居系統(tǒng)及其網(wǎng)關(guān)的研究[J].中國有線電視,2014(S1):395-399.
[6] 熊瓊,師衛(wèi),騰生強(qiáng).基于ARM cortexTM-A8與Android的智能家居系統(tǒng)[J].電視技術(shù),2014,38(9):85-88.
[7] 陳儒敏,侯思名,顏江.基于開源軟硬件的智能家居系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代計(jì)算機(jī),2013(28):71-73.
[8] Reto Meier.Android 4 高級(jí)編程[M].3版.余建偉,趙凱,譯.北京:北京大學(xué)出版社,2013:85-90.
中圖分類號(hào)TP393
文獻(xiàn)標(biāo)識(shí)碼A
DOI:10.3969/j.issn.1000-386x.2016.02.017
收稿日期:2014-07-04。林婷婷,碩士生,主研領(lǐng)域:智能家居。陳華,副教授。