徐宏宇,,程武,,張博
(沈陽航空航天大學 電子信息工程學院,,遼寧 沈陽 110136)
摘要:針對傳統(tǒng)智能家居控制系統(tǒng)采用有線組網(wǎng),、布線繁瑣、系統(tǒng)中的家用電器需要PC進行控制,、移動性較差等問題,,提出了一種基于ARM嵌入式處理器和Android技術(shù)的智能家居控制系統(tǒng)的設計方案。該方案首先通過ZigBee無線技術(shù)組建家庭內(nèi)的傳感器網(wǎng)絡和家用電器控制網(wǎng)絡,。然后,,以S3C2440處理器為硬件平臺,并搭載了嵌入式Linux操作系統(tǒng)來設計家庭網(wǎng)關(guān),。最后,,編寫了基于Android系統(tǒng)的APP(應用軟件),使用Android系統(tǒng)的智能手機安裝這個APP就可以通過3G/4G/WiFi網(wǎng)絡獲取室內(nèi)的健康狀況并遠程控制家電,。實驗結(jié)果表明,,該系統(tǒng)布線簡單,,移動性好,能夠較好地實現(xiàn)智能家居系統(tǒng)的本地和遠程無線控制,。
關(guān)鍵詞:智能家居,;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控制家電,,增加了使用者的學習成本,便攜性也很差,,無論是升級和維護都相當不便,。基于以上事實,,本文結(jié)合ZigBee技術(shù)建立智能家居系統(tǒng)的傳感器網(wǎng)絡和家電控制網(wǎng)絡(這兩種網(wǎng)絡稱之為家庭內(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)絡就可以遠程獲取室內(nèi)狀況信息并控制家電。
1系統(tǒng)的功能和總體結(jié)構(gòu)
1.1系統(tǒng)的功能
用戶通過Android手機或Internet遠程連接到家庭網(wǎng)關(guān),,實現(xiàn)對室內(nèi)的溫度,、濕度、光照強度,、煙霧濃度的實時獲取和對燈光,、音樂播放器,、門禁、窗簾等家電的控制[3],。
1.2系統(tǒng)的總體結(jié)構(gòu)
本文設計的智能家居控制系統(tǒng)包括3大部分(如圖1所示),,分別是家庭內(nèi)網(wǎng)、家庭網(wǎng)關(guān)和手機客戶端APP,。其中家庭內(nèi)網(wǎng)包含傳感器網(wǎng)絡和家電控制網(wǎng)絡,,分別用于檢測室內(nèi)狀況,控制家用電器,;而家庭網(wǎng)關(guān)則是整個家庭網(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)關(guān)的設計
家庭網(wǎng)關(guān)的核心是一個基于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技術(shù)搭建傳感器網(wǎng)絡和家電控制網(wǎng)絡。ZigBee技術(shù)是一種近距離,、低功耗,、基于IEEE802.15.4標準的局域網(wǎng)協(xié)議無線通信技術(shù)。其特點是近距離,、低復雜度,、自組織組網(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)。
3系統(tǒng)的軟件設計
系統(tǒng)軟件設計包括家庭網(wǎng)關(guān)軟件設計,、智能終端節(jié)點軟件設計和智能手機APP設計三大部分,。家庭網(wǎng)關(guān)是以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)關(guān)接口),,功能較強。為了實現(xiàn)動態(tài)Web技術(shù),本文基于Boa編寫了家庭網(wǎng)關(guān)的服務器,。首先建立服務器端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)關(guān)中,最后通過公用以太網(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)關(guān)的家電控制命令,,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)關(guān)后即可通過點擊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)關(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)的后臺服務器部分運行數(shù)據(jù),,如圖8所示??梢钥闯?,系統(tǒng)運行穩(wěn)定,信息采集及時準確,,執(zhí)行結(jié)構(gòu)反應迅速,,達到了家庭網(wǎng)絡化、自動化的目標,?!?/p>
5結(jié)束語
本文將嵌入式ARM技術(shù)與ZigBee無線通信技術(shù)相結(jié)合,基于Android平臺,,開發(fā)了智能手機的APP進行人機交互,。系統(tǒng)功能強大,后期擴展性強,,功耗低,,達到了對家庭設備智能化管理和遠程監(jiān)控的目的,具有較為廣闊的應用前景。參考文獻
?。?] 陳發(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.
[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)的研究與設計[J].電子技術(shù)應用, 2013, 39(8):81-83.
[6] 關(guān)永,,張杰,,師怡爽.基于ARM的嵌入式WEB服務器研究[J].電子器件, 2006, 29(2):42-45.
[7] 紀金水.基于ZigBee無線傳感器網(wǎng)絡技術(shù)的系統(tǒng)設計[J].計算機工程與設計, 2007, 28(2):22-25.
?。?] 楊威,,高文華.基于Android的智能家居終端設計與研究[J].計算機技術(shù)與發(fā)展, 2013, 23(7):189-192.