徐宏宇,程 武,張 博
(沈陽航空航天大學(xué) 電子信息工程學(xué)院,遼寧 沈陽 110136)
基于ARM和Android的智能家居控制系統(tǒng)設(shè)計(jì)
徐宏宇,程 武,張 博
(沈陽航空航天大學(xué) 電子信息工程學(xué)院,遼寧 沈陽 110136)
針對(duì)傳統(tǒng)智能家居控制系統(tǒng)采用有線組網(wǎng)、布線繁瑣、系統(tǒng)中的家用電器需要PC進(jìn)行控制、移動(dòng)性較差等問題,提出了一種基于ARM嵌入式處理器和Android技術(shù)的智能家居控制系統(tǒng)的設(shè)計(jì)方案。該方案首先通過ZigBee無線技術(shù)組建家庭內(nèi)的傳感器網(wǎng)絡(luò)和家用電器控制網(wǎng)絡(luò)。然后,以S3C2440處理器為硬件平臺(tái),并搭載了嵌入式Linux操作系統(tǒng)來設(shè)計(jì)家庭網(wǎng)關(guān)。最后,編寫了基于Android系統(tǒng)的APP(應(yīng)用軟件),使用Android系統(tǒng)的智能手機(jī)安裝這個(gè)APP就可以通過3G/4G/WiFi網(wǎng)絡(luò)獲取室內(nèi)的健康狀況并遠(yuǎn)程控制家電。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)布線簡(jiǎn)單,移動(dòng)性好,能夠較好地實(shí)現(xiàn)智能家居系統(tǒng)的本地和遠(yuǎn)程無線控制。
智能家居;ARM;遠(yuǎn)程控制;Android;ZigBee;嵌入式處理器;Linux
隨著人們對(duì)高品質(zhì)生活的不斷探索,對(duì)居住環(huán)境的要求也向著安全舒適并且智能化和自動(dòng)化的方向發(fā)展。智能家居已成為當(dāng)今社會(huì)研究的熱門話題。成本低廉、性能優(yōu)良并且擴(kuò)展性較好的系統(tǒng)是研究人員急需解決的問題。
傳統(tǒng)的智能家居控制系統(tǒng)一般通過有線[1]方式組建并且通過PC控制,這種方式通常需要部署很多線纜。當(dāng)需要增減設(shè)備時(shí)又要重新布線,既影響了室內(nèi)的美觀又增加了開銷;通過PC控制家電,增加了使用者的學(xué)習(xí)成本,便攜性也很差,無論是升級(jí)和維護(hù)都相當(dāng)不便?;谝陨鲜聦?shí),本文結(jié)合ZigBee技術(shù)建立智能家居系統(tǒng)的傳感器網(wǎng)絡(luò)和家電控制網(wǎng)絡(luò)(這兩種網(wǎng)絡(luò)稱之為家庭內(nèi)網(wǎng)),分別用于檢測(cè)室內(nèi)的健康狀況和控制家電[2];然后以ARM嵌入式處理器為核心,建立智能家居系統(tǒng)的網(wǎng)關(guān)樞紐——家庭網(wǎng)關(guān)(向外連接公網(wǎng),向內(nèi)連接家庭內(nèi)網(wǎng));最后,基于Android平臺(tái)開發(fā)智能手機(jī)的客戶端軟件,用戶使用手機(jī)通過無線網(wǎng)絡(luò)就可以遠(yuǎn)程獲取室內(nèi)狀況信息并控制家電。
1.1 系統(tǒng)的功能
用戶通過Android手機(jī)或Internet遠(yuǎn)程連接到家庭網(wǎng)關(guān),實(shí)現(xiàn)對(duì)室內(nèi)的溫度、濕度、光照強(qiáng)度、煙霧濃度的實(shí)時(shí)獲取和對(duì)燈光、音樂播放器、門禁、窗簾等家電的控制[3]。
1.2 系統(tǒng)的總體結(jié)構(gòu)
本文設(shè)計(jì)的智能家居控制系統(tǒng)包括3大部分(如圖1所示),分別是家庭內(nèi)網(wǎng)、家庭網(wǎng)關(guān)和手機(jī)客戶端APP。其中家庭內(nèi)網(wǎng)包含傳感器網(wǎng)絡(luò)和家電控制網(wǎng)絡(luò),分別用于檢測(cè)室內(nèi)狀況,控制家用電器;而家庭網(wǎng)關(guān)則是整個(gè)家庭網(wǎng)絡(luò)的核心,對(duì)外連接到公網(wǎng)上,處理來自用戶手機(jī)端的數(shù)據(jù)和命令請(qǐng)求,對(duì)內(nèi)連接到家庭內(nèi)網(wǎng)上,處理來自傳感器網(wǎng)絡(luò)和家電控制網(wǎng)絡(luò)的數(shù)據(jù);手機(jī)用戶通過手機(jī)APP即可實(shí)時(shí)地遠(yuǎn)程控制家電并實(shí)時(shí)監(jiān)控室內(nèi)安全狀況[4]。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
2.1 家庭網(wǎng)關(guān)的設(shè)計(jì)
家庭網(wǎng)關(guān)的核心是一個(gè)基于TCP/IP協(xié)議的嵌入式Web服務(wù)器,本文采用三星公司的ARM9處理器S3C2440作為硬件平臺(tái)(如圖2所示),該芯片本身集成了包括存儲(chǔ)器接口、通信接口(SPI、RS232、I2C等)和AD等在內(nèi)的豐富的硬件資源,可大大簡(jiǎn)化外圍設(shè)備和處理器的連接程度,提高系統(tǒng)的穩(wěn)定性和可靠性。
圖2 智能家居系統(tǒng)家庭網(wǎng)關(guān)硬件框圖
2.2 家庭內(nèi)網(wǎng)的設(shè)計(jì)
圖3 ZigBee節(jié)點(diǎn)連接框圖
智能家居控制系統(tǒng)的最終環(huán)節(jié)就是室內(nèi)環(huán)境監(jiān)測(cè)、安防監(jiān)測(cè)報(bào)警和家電遠(yuǎn)程控制。所以,家庭內(nèi)網(wǎng)的設(shè)計(jì)包括兩大部分:傳感器網(wǎng)絡(luò)和家電控制網(wǎng)絡(luò)。為了擺脫傳統(tǒng)線纜的束縛,綜合考慮到功耗、復(fù)雜度和速率,系統(tǒng)采用ZigBee技術(shù)搭建傳感器網(wǎng)絡(luò)和家電控制網(wǎng)絡(luò)。ZigBee技術(shù)是一種近距離、低功耗、基于IEEE802.15.4標(biāo)準(zhǔn)的局域網(wǎng)協(xié)議無線通信技術(shù)。其特點(diǎn)是近距離、低復(fù)雜度、自組織組網(wǎng),非常適合用在室內(nèi)環(huán)境下[5]。
市面上基于ZigBee技術(shù)的解決方案有很多,也很成熟。本文中選用的主控模塊其核心部分是Chipcon公司生產(chǎn)的一款符合IEEE802.15.4規(guī)范的2.4 GHz的射頻芯片CC2430。該芯片整合了ZigBee RF前端、內(nèi)存和基于增強(qiáng)型51內(nèi)核的微控制器等。硬件支持載波監(jiān)聽多路訪問/沖突檢測(cè)(CSMA/CA),2~3.6 V的工作電壓有利于系統(tǒng)實(shí)現(xiàn)低功耗?;谠揨igBee模塊搭建的傳感器節(jié)點(diǎn)和家電控制節(jié)點(diǎn)如圖3所示。
各子節(jié)點(diǎn)通過連接到ZigBee協(xié)調(diào)器節(jié)點(diǎn),從而使傳感器節(jié)點(diǎn)和家電控制節(jié)點(diǎn)連接到家庭網(wǎng)關(guān)上,進(jìn)而連接到互聯(lián)網(wǎng)。
系統(tǒng)軟件設(shè)計(jì)包括家庭網(wǎng)關(guān)軟件設(shè)計(jì)、智能終端節(jié)點(diǎn)軟件設(shè)計(jì)和智能手機(jī)APP設(shè)計(jì)三大部分。家庭網(wǎng)關(guān)是以ARM9處理器為控制核心,其軟件設(shè)計(jì)包括移植嵌入式Linux操作系統(tǒng)、Linux下基于TCP/IP協(xié)議的Web服務(wù)器應(yīng)用軟件設(shè)計(jì)和ZigBee協(xié)調(diào)器節(jié)點(diǎn)程序設(shè)計(jì)。智能終端節(jié)點(diǎn)的控制一般使用MCU即可,其應(yīng)用軟件就是一個(gè)循環(huán)的控制程序。智能手機(jī)APP部分是在Android操作系統(tǒng)平臺(tái)下基于Google官方的開發(fā)工具包(Android SDK)進(jìn)行開發(fā)。
3.1 移植嵌入式Linux操作系統(tǒng)
盡管現(xiàn)在Linux內(nèi)核的版本已經(jīng)更新到了4.4,但是在嵌入式Linux領(lǐng)域依然大量使用2.6的內(nèi)核。所以,本設(shè)計(jì)依舊采用2.6內(nèi)核的Linux操作系統(tǒng),然后將它移植到S3C2440平臺(tái)上。
首先,從https://www.kernel.org/pub/linux /kernel下載內(nèi)核源碼,然后解壓源碼,進(jìn)入內(nèi)核源碼的根目錄,修改Makefile文件,設(shè)置對(duì)應(yīng)的目標(biāo)平臺(tái)和交叉編譯器,然后配置并編譯內(nèi)核,編譯成功后會(huì)得到內(nèi)核鏡像文件zImage。最后通過uboot的命令行菜單將鏡像文件燒寫到NAND Flash存儲(chǔ)器中即可。
3.2 基于TCP/IP協(xié)議的Web服務(wù)器設(shè)計(jì)
在ARM+Linux開發(fā)平臺(tái)下,常用的Web服務(wù)器有Httpd、Thttpd和Boa。其中Boa服務(wù)器支持CGI(公共網(wǎng)關(guān)接口),功能較強(qiáng)。為了實(shí)現(xiàn)動(dòng)態(tài)Web技術(shù),本文基于Boa編寫了家庭網(wǎng)關(guān)的服務(wù)器。首先建立服務(wù)器端Socket,然后綁定服務(wù)器的IP地址,并循環(huán)監(jiān)聽服務(wù)器的一個(gè)端口[6]。當(dāng)有客戶端請(qǐng)求連入時(shí),服務(wù)器端會(huì)開啟一個(gè)子進(jìn)程處理請(qǐng)求并完成與客戶端的數(shù)據(jù)通信,具體的軟件設(shè)計(jì)流程如圖4所示。
圖4 智能家居家庭網(wǎng)關(guān)服務(wù)器工作流程圖
3.3 ZigBee協(xié)調(diào)器節(jié)點(diǎn)程序設(shè)計(jì)
在系統(tǒng)中,ZigBee協(xié)調(diào)器節(jié)點(diǎn)主要用于創(chuàng)建無線網(wǎng)絡(luò),分配ZigBee終端節(jié)點(diǎn)的網(wǎng)絡(luò)地址,然后向終端節(jié)點(diǎn)發(fā)送控制命令并接收來自終端節(jié)點(diǎn)的環(huán)境信息,將接收到的數(shù)據(jù)全部上傳至家庭網(wǎng)關(guān)中,最后通過公用以太網(wǎng)傳送至用戶手機(jī)的APP上。協(xié)調(diào)器首先會(huì)進(jìn)行應(yīng)用層的初始化,然后初始化端口并打開全局中斷。接著協(xié)調(diào)器初始化一個(gè)信道并建立一個(gè)ZigBee網(wǎng)絡(luò),這時(shí)ZigBee終端節(jié)點(diǎn)就可以通過認(rèn)證加入到該網(wǎng)絡(luò)中并進(jìn)行數(shù)據(jù)的交換,具體過程如圖5所示。
圖5 ZigBee協(xié)調(diào)器節(jié)點(diǎn)程序流程圖
3.4 智能終端節(jié)點(diǎn)程序設(shè)計(jì)
智能終端節(jié)點(diǎn)是指由ZigBee終端控制的節(jié)點(diǎn),在系統(tǒng)中主要是傳感器節(jié)點(diǎn)和家電控制節(jié)點(diǎn)。ZigBee終端節(jié)點(diǎn)初始化同樣包括應(yīng)用層初始化、I/O端口初始化和打開全局中斷,之后嘗試加入由ZigBee協(xié)調(diào)器創(chuàng)建的無線網(wǎng)絡(luò)中,特別要注意的是:只有與ZigBee協(xié)調(diào)器設(shè)置一致參數(shù)的終端節(jié)點(diǎn)才能加入到網(wǎng)絡(luò)中。成功加入到網(wǎng)絡(luò)后,ZigBee終端節(jié)點(diǎn)會(huì)將其注冊(cè)信息發(fā)送給ZigBee協(xié)調(diào)器,然后ZigBee協(xié)調(diào)器完成對(duì)終端節(jié)點(diǎn)的注冊(cè)[7]。
ZigBee終端節(jié)點(diǎn)每隔一定的時(shí)間(很短),完成一次數(shù)據(jù)的采集,并將該數(shù)據(jù)信息發(fā)送給協(xié)調(diào)器。對(duì)于來自于家庭網(wǎng)關(guān)的家電控制命令,ZigBee協(xié)調(diào)器會(huì)將其發(fā)送給家電終端控制節(jié)點(diǎn),終端節(jié)點(diǎn)則通過中斷的方式獲取該信息并完成對(duì)家電的控制。具體實(shí)現(xiàn)過程如圖6所示。
圖6 ZigBee終端節(jié)點(diǎn)程序流程圖
3.5 智能手機(jī)APP設(shè)計(jì)
用戶對(duì)整個(gè)智能家居控制系統(tǒng)的操作最終是通過智能手機(jī)來完成的。為此,筆者開發(fā)了基于Android智能手機(jī)操作系統(tǒng)平臺(tái)的APP。APP的設(shè)計(jì)包括APP界面前端和后臺(tái)的開發(fā)。其中,APP的前端即UI(用戶界面)設(shè)計(jì),是通過建立一個(gè)XML文件,在這個(gè)XML文件下根據(jù)一定的布局編寫相應(yīng)的控件,然后在MainActivity代碼中將這個(gè)XML文件進(jìn)行綁定即可[8];而APP的后臺(tái)代碼設(shè)計(jì),主要通過開啟一個(gè)子線程,然后在子線程中建立基于TCP/IP協(xié)議的Socket連接,成功連接到家庭網(wǎng)關(guān)后即可通過點(diǎn)擊UI界面上的按鈕等控件來控制家電或者接收來自于室內(nèi)傳感器的數(shù)據(jù),并顯示在手機(jī)界面上。APP的主界面如圖7所示。
系統(tǒng)軟硬件設(shè)計(jì)完成后,在實(shí)驗(yàn)室條件下進(jìn)行了測(cè)試。測(cè)試系統(tǒng)由一個(gè)ZigBee協(xié)調(diào)器、兩個(gè)ZigBee終端節(jié)點(diǎn)(分別是溫濕度傳感器節(jié)點(diǎn)和音樂播放器節(jié)點(diǎn))、一個(gè)由S3C2440平臺(tái)搭建的家庭網(wǎng)關(guān)、一部無線路由器(用于連接Internet)和一部Android智能手機(jī)組成。其中,ZigBee協(xié)調(diào)器與ZigBee終端節(jié)點(diǎn)距離為10 m,相鄰的ZigBee終端節(jié)點(diǎn)距離為15 m;家庭網(wǎng)關(guān)通過網(wǎng)口連接到無線路由器,進(jìn)而連接到互聯(lián)網(wǎng)上。經(jīng)測(cè)試,截取了家庭網(wǎng)關(guān)的后臺(tái)服務(wù)器部分運(yùn)行數(shù)據(jù),如圖8所示??梢钥闯?,系統(tǒng)運(yùn)行穩(wěn)定,信息采集及時(shí)準(zhǔn)確,執(zhí)行結(jié)構(gòu)反應(yīng)迅速,達(dá)到了家庭網(wǎng)絡(luò)化、自動(dòng)化的目標(biāo)。
圖8 家庭網(wǎng)關(guān)后臺(tái)服務(wù)器部分運(yùn)行數(shù)據(jù)示意圖
本文將嵌入式ARM技術(shù)與ZigBee無線通信技術(shù)相結(jié)合,基于Android平臺(tái),開發(fā)了智能手機(jī)的APP進(jìn)行人機(jī)交互。系統(tǒng)功能強(qiáng)大,后期擴(kuò)展性強(qiáng),功耗低,達(dá)到了對(duì)家庭設(shè)備智能化管理和遠(yuǎn)程監(jiān)控的目的,具有較為廣闊的應(yīng)用前景。
[1] 陳發(fā)才,王仁波.基于SC1128電力線載波芯片的智能家居系統(tǒng)設(shè)計(jì)[J].微型機(jī)與應(yīng)用, 2009, 28(20):16-18.
[2] 尹紀(jì)庭,袁佳,焦志曼,等.基于ARM和ZigBee的智能家居控制系統(tǒng)研究與開發(fā)[J].計(jì)算機(jī)測(cè)量與控制, 2013, 21(9):2451-2454.
[3] 葉高揚(yáng),畢冉.基于物聯(lián)網(wǎng)的智能家居系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用, 2014, 31(S1):318-319.
[4] HAN D M,LIM J H. Design and implementation of smart home energy management systems based on ZigBee [J]. IEEE Transactions on Consumer Electronics,2010,56(3):1417-1425.
[5] 徐書芳,王金海,宮玉龍.基于ZigBee的智能家居控制系統(tǒng)的研究與設(shè)計(jì)[J].電子技術(shù)應(yīng)用, 2013, 39(8):81-83.
[6] 關(guān)永,張杰,師怡爽.基于ARM的嵌入式WEB服務(wù)器研究[J].電子器件, 2006, 29(2):42-45.
[7] 紀(jì)金水.基于ZigBee無線傳感器網(wǎng)絡(luò)技術(shù)的系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì), 2007, 28(2):22-25.
[8] 楊威,高文華.基于Android的智能家居終端設(shè)計(jì)與研究[J].計(jì)算機(jī)技術(shù)與發(fā)展, 2013, 23(7):189-192.
Design of smart home control system based on ARM and Android
Xu Hongyu,Cheng Wu,Zhang Bo
(School of Electronic and Information Engineering, Shenyang Aerospace University, Shenyang 110136, China)
Traditional wired smart home control system which using cumbersome system requires household appliances in PC control, less mobile features. This paper presented a new design which based on ARM embedded processor and Android technologies. The method uses ZigBee wireless sensor technology to ste up the family network and home appliances control network. Then, using S3C2440 processor hardware platform which equipped with embedded Linux operating system to design the residential gateway. Finally, the Android APP (application software) is developed, smartphone powered by Android system installed this APP can be available through 3G/4G/WiFi network to indoor health and control home appliances remotely. Experimental results show that the system has a simple wiring, good mobility, and can be used to implement local and remote wireless control of smart home system.
smart home; ARM; remote control; Android; ZigBee; embedded processor; Linux
TP311
A
10.19358/j.issn.1674- 7720.2017.03.009
徐宏宇,程武,張博.基于ARM和Android的智能家居控制系統(tǒng)設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2017,36(3):29-32.
2016-08-06)
徐宏宇(1965-),男,學(xué)士,副教授,主要研究方向:信息獲取與處理、電子技術(shù)與應(yīng)用。
程武(1992-),通信作者,男,碩士研究生,主要研究方向:信息獲取與處理、嵌入式系統(tǒng)與應(yīng)用。E-mail:1637557819@qq.com。
張博(1992-),女,碩士研究生,主要研究方向:信息獲取與處理。