徐宏宇,程 武,張 博
(沈陽航空航天大學(xué) 電子信息工程學(xué)院,遼寧 沈陽 110136)
基于ARM和Android的智能家居控制系統(tǒng)設(shè)計
徐宏宇,程 武,張 博
(沈陽航空航天大學(xué) 電子信息工程學(xué)院,遼寧 沈陽 110136)
針對傳統(tǒng)智能家居控制系統(tǒng)采用有線組網(wǎng)、布線繁瑣、系統(tǒng)中的家用電器需要PC進行控制、移動性較差等問題,提出了一種基于ARM嵌入式處理器和Android技術(shù)的智能家居控制系統(tǒng)的設(shè)計方案。該方案首先通過ZigBee無線技術(shù)組建家庭內(nèi)的傳感器網(wǎng)絡(luò)和家用電器控制網(wǎng)絡(luò)。然后,以S3C2440處理器為硬件平臺,并搭載了嵌入式Linux操作系統(tǒng)來設(shè)計家庭網(wǎng)關(guān)。最后,編寫了基于Android系統(tǒng)的APP(應(yīng)用軟件),使用Android系統(tǒng)的智能手機安裝這個APP就可以通過3G/4G/WiFi網(wǎng)絡(luò)獲取室內(nèi)的健康狀況并遠程控制家電。實驗結(jié)果表明,該系統(tǒng)布線簡單,移動性好,能夠較好地實現(xiàn)智能家居系統(tǒng)的本地和遠程無線控制。
智能家居;ARM;遠程控制;Android;ZigBee;嵌入式處理器;Linux
隨著人們對高品質(zhì)生活的不斷探索,對居住環(huán)境的要求也向著安全舒適并且智能化和自動化的方向發(fā)展。智能家居已成為當(dāng)今社會研究的熱門話題。成本低廉、性能優(yōu)良并且擴展性較好的系統(tǒng)是研究人員急需解決的問題。
傳統(tǒng)的智能家居控制系統(tǒng)一般通過有線[1]方式組建并且通過PC控制,這種方式通常需要部署很多線纜。當(dāng)需要增減設(shè)備時又要重新布線,既影響了室內(nèi)的美觀又增加了開銷;通過PC控制家電,增加了使用者的學(xué)習(xí)成本,便攜性也很差,無論是升級和維護都相當(dāng)不便?;谝陨鲜聦崳疚慕Y(jié)合ZigBee技術(shù)建立智能家居系統(tǒng)的傳感器網(wǎng)絡(luò)和家電控制網(wǎng)絡(luò)(這兩種網(wǎng)絡(luò)稱之為家庭內(nèi)網(wǎng)),分別用于檢測室內(nèi)的健康狀況和控制家電[2];然后以ARM嵌入式處理器為核心,建立智能家居系統(tǒng)的網(wǎng)關(guān)樞紐——家庭網(wǎng)關(guān)(向外連接公網(wǎng),向內(nèi)連接家庭內(nèi)網(wǎng));最后,基于Android平臺開發(fā)智能手機的客戶端軟件,用戶使用手機通過無線網(wǎng)絡(luò)就可以遠程獲取室內(nèi)狀況信息并控制家電。
1.1 系統(tǒng)的功能
用戶通過Android手機或Internet遠程連接到家庭網(wǎng)關(guān),實現(xiàn)對室內(nèi)的溫度、濕度、光照強度、煙霧濃度的實時獲取和對燈光、音樂播放器、門禁、窗簾等家電的控制[3]。
1.2 系統(tǒng)的總體結(jié)構(gòu)
本文設(shè)計的智能家居控制系統(tǒng)包括3大部分(如圖1所示),分別是家庭內(nèi)網(wǎng)、家庭網(wǎng)關(guān)和手機客戶端APP。其中家庭內(nèi)網(wǎng)包含傳感器網(wǎng)絡(luò)和家電控制網(wǎng)絡(luò),分別用于檢測室內(nèi)狀況,控制家用電器;而家庭網(wǎng)關(guān)則是整個家庭網(wǎng)絡(luò)的核心,對外連接到公網(wǎng)上,處理來自用戶手機端的數(shù)據(jù)和命令請求,對內(nèi)連接到家庭內(nèi)網(wǎng)上,處理來自傳感器網(wǎng)絡(luò)和家電控制網(wǎng)絡(luò)的數(shù)據(jù);手機用戶通過手機APP即可實時地遠程控制家電并實時監(jiān)控室內(nèi)安全狀況[4]。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
2.1 家庭網(wǎng)關(guān)的設(shè)計
家庭網(wǎng)關(guān)的核心是一個基于TCP/IP協(xié)議的嵌入式Web服務(wù)器,本文采用三星公司的ARM9處理器S3C2440作為硬件平臺(如圖2所示),該芯片本身集成了包括存儲器接口、通信接口(SPI、RS232、I2C等)和AD等在內(nèi)的豐富的硬件資源,可大大簡化外圍設(shè)備和處理器的連接程度,提高系統(tǒng)的穩(wěn)定性和可靠性。
圖2 智能家居系統(tǒng)家庭網(wǎng)關(guān)硬件框圖
2.2 家庭內(nèi)網(wǎng)的設(shè)計
圖3 ZigBee節(jié)點連接框圖
智能家居控制系統(tǒng)的最終環(huán)節(jié)就是室內(nèi)環(huán)境監(jiān)測、安防監(jiān)測報警和家電遠程控制。所以,家庭內(nèi)網(wǎng)的設(shè)計包括兩大部分:傳感器網(wǎng)絡(luò)和家電控制網(wǎng)絡(luò)。為了擺脫傳統(tǒng)線纜的束縛,綜合考慮到功耗、復(fù)雜度和速率,系統(tǒng)采用ZigBee技術(shù)搭建傳感器網(wǎng)絡(luò)和家電控制網(wǎng)絡(luò)。ZigBee技術(shù)是一種近距離、低功耗、基于IEEE802.15.4標準的局域網(wǎng)協(xié)議無線通信技術(shù)。其特點是近距離、低復(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)存和基于增強型51內(nèi)核的微控制器等。硬件支持載波監(jiān)聽多路訪問/沖突檢測(CSMA/CA),2~3.6 V的工作電壓有利于系統(tǒng)實現(xiàn)低功耗?;谠揨igBee模塊搭建的傳感器節(jié)點和家電控制節(jié)點如圖3所示。
各子節(jié)點通過連接到ZigBee協(xié)調(diào)器節(jié)點,從而使傳感器節(jié)點和家電控制節(jié)點連接到家庭網(wǎng)關(guān)上,進而連接到互聯(lián)網(wǎng)。
系統(tǒng)軟件設(shè)計包括家庭網(wǎng)關(guān)軟件設(shè)計、智能終端節(jié)點軟件設(shè)計和智能手機APP設(shè)計三大部分。家庭網(wǎng)關(guān)是以ARM9處理器為控制核心,其軟件設(shè)計包括移植嵌入式Linux操作系統(tǒng)、Linux下基于TCP/IP協(xié)議的Web服務(wù)器應(yīng)用軟件設(shè)計和ZigBee協(xié)調(diào)器節(jié)點程序設(shè)計。智能終端節(jié)點的控制一般使用MCU即可,其應(yīng)用軟件就是一個循環(huán)的控制程序。智能手機APP部分是在Android操作系統(tǒng)平臺下基于Google官方的開發(fā)工具包(Android SDK)進行開發(fā)。
3.1 移植嵌入式Linux操作系統(tǒng)
盡管現(xiàn)在Linux內(nèi)核的版本已經(jīng)更新到了4.4,但是在嵌入式Linux領(lǐng)域依然大量使用2.6的內(nèi)核。所以,本設(shè)計依舊采用2.6內(nèi)核的Linux操作系統(tǒng),然后將它移植到S3C2440平臺上。
首先,從https://www.kernel.org/pub/linux /kernel下載內(nèi)核源碼,然后解壓源碼,進入內(nèi)核源碼的根目錄,修改Makefile文件,設(shè)置對應(yīng)的目標平臺和交叉編譯器,然后配置并編譯內(nèi)核,編譯成功后會得到內(nèi)核鏡像文件zImage。最后通過uboot的命令行菜單將鏡像文件燒寫到NAND Flash存儲器中即可。
3.2 基于TCP/IP協(xié)議的Web服務(wù)器設(shè)計
在ARM+Linux開發(fā)平臺下,常用的Web服務(wù)器有Httpd、Thttpd和Boa。其中Boa服務(wù)器支持CGI(公共網(wǎng)關(guān)接口),功能較強。為了實現(xiàn)動態(tài)Web技術(shù),本文基于Boa編寫了家庭網(wǎng)關(guān)的服務(wù)器。首先建立服務(wù)器端Socket,然后綁定服務(wù)器的IP地址,并循環(huán)監(jiān)聽服務(wù)器的一個端口[6]。當(dāng)有客戶端請求連入時,服務(wù)器端會開啟一個子進程處理請求并完成與客戶端的數(shù)據(jù)通信,具體的軟件設(shè)計流程如圖4所示。
圖4 智能家居家庭網(wǎng)關(guān)服務(wù)器工作流程圖
3.3 ZigBee協(xié)調(diào)器節(jié)點程序設(shè)計
在系統(tǒng)中,ZigBee協(xié)調(diào)器節(jié)點主要用于創(chuàng)建無線網(wǎng)絡(luò),分配ZigBee終端節(jié)點的網(wǎng)絡(luò)地址,然后向終端節(jié)點發(fā)送控制命令并接收來自終端節(jié)點的環(huán)境信息,將接收到的數(shù)據(jù)全部上傳至家庭網(wǎng)關(guān)中,最后通過公用以太網(wǎng)傳送至用戶手機的APP上。協(xié)調(diào)器首先會進行應(yīng)用層的初始化,然后初始化端口并打開全局中斷。接著協(xié)調(diào)器初始化一個信道并建立一個ZigBee網(wǎng)絡(luò),這時ZigBee終端節(jié)點就可以通過認證加入到該網(wǎng)絡(luò)中并進行數(shù)據(jù)的交換,具體過程如圖5所示。
圖5 ZigBee協(xié)調(diào)器節(jié)點程序流程圖
3.4 智能終端節(jié)點程序設(shè)計
智能終端節(jié)點是指由ZigBee終端控制的節(jié)點,在系統(tǒng)中主要是傳感器節(jié)點和家電控制節(jié)點。ZigBee終端節(jié)點初始化同樣包括應(yīng)用層初始化、I/O端口初始化和打開全局中斷,之后嘗試加入由ZigBee協(xié)調(diào)器創(chuàng)建的無線網(wǎng)絡(luò)中,特別要注意的是:只有與ZigBee協(xié)調(diào)器設(shè)置一致參數(shù)的終端節(jié)點才能加入到網(wǎng)絡(luò)中。成功加入到網(wǎng)絡(luò)后,ZigBee終端節(jié)點會將其注冊信息發(fā)送給ZigBee協(xié)調(diào)器,然后ZigBee協(xié)調(diào)器完成對終端節(jié)點的注冊[7]。
ZigBee終端節(jié)點每隔一定的時間(很短),完成一次數(shù)據(jù)的采集,并將該數(shù)據(jù)信息發(fā)送給協(xié)調(diào)器。對于來自于家庭網(wǎng)關(guān)的家電控制命令,ZigBee協(xié)調(diào)器會將其發(fā)送給家電終端控制節(jié)點,終端節(jié)點則通過中斷的方式獲取該信息并完成對家電的控制。具體實現(xiàn)過程如圖6所示。
圖6 ZigBee終端節(jié)點程序流程圖
3.5 智能手機APP設(shè)計
用戶對整個智能家居控制系統(tǒng)的操作最終是通過智能手機來完成的。為此,筆者開發(fā)了基于Android智能手機操作系統(tǒng)平臺的APP。APP的設(shè)計包括APP界面前端和后臺的開發(fā)。其中,APP的前端即UI(用戶界面)設(shè)計,是通過建立一個XML文件,在這個XML文件下根據(jù)一定的布局編寫相應(yīng)的控件,然后在MainActivity代碼中將這個XML文件進行綁定即可[8];而APP的后臺代碼設(shè)計,主要通過開啟一個子線程,然后在子線程中建立基于TCP/IP協(xié)議的Socket連接,成功連接到家庭網(wǎng)關(guān)后即可通過點擊UI界面上的按鈕等控件來控制家電或者接收來自于室內(nèi)傳感器的數(shù)據(jù),并顯示在手機界面上。APP的主界面如圖7所示。
系統(tǒng)軟硬件設(shè)計完成后,在實驗室條件下進行了測試。測試系統(tǒng)由一個ZigBee協(xié)調(diào)器、兩個ZigBee終端節(jié)點(分別是溫濕度傳感器節(jié)點和音樂播放器節(jié)點)、一個由S3C2440平臺搭建的家庭網(wǎng)關(guān)、一部無線路由器(用于連接Internet)和一部Android智能手機組成。其中,ZigBee協(xié)調(diào)器與ZigBee終端節(jié)點距離為10 m,相鄰的ZigBee終端節(jié)點距離為15 m;家庭網(wǎng)關(guān)通過網(wǎng)口連接到無線路由器,進而連接到互聯(lián)網(wǎng)上。經(jīng)測試,截取了家庭網(wǎng)關(guān)的后臺服務(wù)器部分運行數(shù)據(jù),如圖8所示。可以看出,系統(tǒng)運行穩(wěn)定,信息采集及時準確,執(zhí)行結(jié)構(gòu)反應(yīng)迅速,達到了家庭網(wǎng)絡(luò)化、自動化的目標。
圖8 家庭網(wǎng)關(guān)后臺服務(wù)器部分運行數(shù)據(jù)示意圖
本文將嵌入式ARM技術(shù)與ZigBee無線通信技術(shù)相結(jié)合,基于Android平臺,開發(fā)了智能手機的APP進行人機交互。系統(tǒng)功能強大,后期擴展性強,功耗低,達到了對家庭設(shè)備智能化管理和遠程監(jiān)控的目的,具有較為廣闊的應(yīng)用前景。
[1] 陳發(fā)才,王仁波.基于SC1128電力線載波芯片的智能家居系統(tǒng)設(shè)計[J].微型機與應(yīng)用, 2009, 28(20):16-18.
[2] 尹紀庭,袁佳,焦志曼,等.基于ARM和ZigBee的智能家居控制系統(tǒng)研究與開發(fā)[J].計算機測量與控制, 2013, 21(9):2451-2454.
[3] 葉高揚,畢冉.基于物聯(lián)網(wǎng)的智能家居系統(tǒng)設(shè)計與實現(xiàn)[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].電子技術(shù)應(yīng)用, 2013, 39(8):81-83.
[6] 關(guān)永,張杰,師怡爽.基于ARM的嵌入式WEB服務(wù)器研究[J].電子器件, 2006, 29(2):42-45.
[7] 紀金水.基于ZigBee無線傳感器網(wǎng)絡(luò)技術(shù)的系統(tǒng)設(shè)計[J].計算機工程與設(shè)計, 2007, 28(2):22-25.
[8] 楊威,高文華.基于Android的智能家居終端設(shè)計與研究[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].微型機與應(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-),女,碩士研究生,主要研究方向:信息獲取與處理。