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