徐宏宇,程 武,張 博
(沈陽航空航天大學 電子信息工程學院,遼寧 沈陽 110136)
基于ARM和Android的智能家居控制系統設計
徐宏宇,程 武,張 博
(沈陽航空航天大學 電子信息工程學院,遼寧 沈陽 110136)
針對傳統智能家居控制系統采用有線組網、布線繁瑣、系統中的家用電器需要PC進行控制、移動性較差等問題,提出了一種基于ARM嵌入式處理器和Android技術的智能家居控制系統的設計方案。該方案首先通過ZigBee無線技術組建家庭內的傳感器網絡和家用電器控制網絡。然后,以S3C2440處理器為硬件平臺,并搭載了嵌入式Linux操作系統來設計家庭網關。最后,編寫了基于Android系統的APP(應用軟件),使用Android系統的智能手機安裝這個APP就可以通過3G/4G/WiFi網絡獲取室內的健康狀況并遠程控制家電。實驗結果表明,該系統布線簡單,移動性好,能夠較好地實現智能家居系統的本地和遠程無線控制。
智能家居;ARM;遠程控制;Android;ZigBee;嵌入式處理器;Linux
隨著人們對高品質生活的不斷探索,對居住環境的要求也向著安全舒適并且智能化和自動化的方向發展。智能家居已成為當今社會研究的熱門話題。成本低廉、性能優良并且擴展性較好的系統是研究人員急需解決的問題。
傳統的智能家居控制系統一般通過有線[1]方式組建并且通過PC控制,這種方式通常需要部署很多線纜。當需要增減設備時又要重新布線,既影響了室內的美觀又增加了開銷;通過PC控制家電,增加了使用者的學習成本,便攜性也很差,無論是升級和維護都相當不便。基于以上事實,本文結合ZigBee技術建立智能家居系統的傳感器網絡和家電控制網絡(這兩種網絡稱之為家庭內網),分別用于檢測室內的健康狀況和控制家電[2];然后以ARM嵌入式處理器為核心,建立智能家居系統的網關樞紐——家庭網關(向外連接公網,向內連接家庭內網);最后,基于Android平臺開發智能手機的客戶端軟件,用戶使用手機通過無線網絡就可以遠程獲取室內狀況信息并控制家電。
1.1 系統的功能
用戶通過Android手機或Internet遠程連接到家庭網關,實現對室內的溫度、濕度、光照強度、煙霧濃度的實時獲取和對燈光、音樂播放器、門禁、窗簾等家電的控制[3]。
1.2 系統的總體結構
本文設計的智能家居控制系統包括3大部分(如圖1所示),分別是家庭內網、家庭網關和手機客戶端APP。其中家庭內網包含傳感器網絡和家電控制網絡,分別用于檢測室內狀況,控制家用電器;而家庭網關則是整個家庭網絡的核心,對外連接到公網上,處理來自用戶手機端的數據和命令請求,對內連接到家庭內網上,處理來自傳感器網絡和家電控制網絡的數據;手機用戶通過手機APP即可實時地遠程控制家電并實時監控室內安全狀況[4]。

圖1 系統總體結構圖
2.1 家庭網關的設計
家庭網關的核心是一個基于TCP/IP協議的嵌入式Web服務器,本文采用三星公司的ARM9處理器S3C2440作為硬件平臺(如圖2所示),該芯片本身集成了包括存儲器接口、通信接口(SPI、RS232、I2C等)和AD等在內的豐富的硬件資源,可大大簡化外圍設備和處理器的連接程度,提高系統的穩定性和可靠性。

圖2 智能家居系統家庭網關硬件框圖
2.2 家庭內網的設計

圖3 ZigBee節點連接框圖
智能家居控制系統的最終環節就是室內環境監測、安防監測報警和家電遠程控制。所以,家庭內網的設計包括兩大部分:傳感器網絡和家電控制網絡。為了擺脫傳統線纜的束縛,綜合考慮到功耗、復雜度和速率,系統采用ZigBee技術搭建傳感器網絡和家電控制網絡。ZigBee技術是一種近距離、低功耗、基于IEEE802.15.4標準的局域網協議無線通信技術。其特點是近距離、低復雜度、自組織組網,非常適合用在室內環境下[5]。
市面上基于ZigBee技術的解決方案有很多,也很成熟。本文中選用的主控模塊其核心部分是Chipcon公司生產的一款符合IEEE802.15.4規范的2.4 GHz的射頻芯片CC2430。該芯片整合了ZigBee RF前端、內存和基于增強型51內核的微控制器等。硬件支持載波監聽多路訪問/沖突檢測(CSMA/CA),2~3.6 V的工作電壓有利于系統實現低功耗。基于該ZigBee模塊搭建的傳感器節點和家電控制節點如圖3所示。
各子節點通過連接到ZigBee協調器節點,從而使傳感器節點和家電控制節點連接到家庭網關上,進而連接到互聯網。
系統軟件設計包括家庭網關軟件設計、智能終端節點軟件設計和智能手機APP設計三大部分。家庭網關是以ARM9處理器為控制核心,其軟件設計包括移植嵌入式Linux操作系統、Linux下基于TCP/IP協議的Web服務器應用軟件設計和ZigBee協調器節點程序設計。智能終端節點的控制一般使用MCU即可,其應用軟件就是一個循環的控制程序。智能手機APP部分是在Android操作系統平臺下基于Google官方的開發工具包(Android SDK)進行開發。
3.1 移植嵌入式Linux操作系統
盡管現在Linux內核的版本已經更新到了4.4,但是在嵌入式Linux領域依然大量使用2.6的內核。所以,本設計依舊采用2.6內核的Linux操作系統,然后將它移植到S3C2440平臺上。
首先,從https://www.kernel.org/pub/linux /kernel下載內核源碼,然后解壓源碼,進入內核源碼的根目錄,修改Makefile文件,設置對應的目標平臺和交叉編譯器,然后配置并編譯內核,編譯成功后會得到內核鏡像文件zImage。最后通過uboot的命令行菜單將鏡像文件燒寫到NAND Flash存儲器中即可。
3.2 基于TCP/IP協議的Web服務器設計
在ARM+Linux開發平臺下,常用的Web服務器有Httpd、Thttpd和Boa。其中Boa服務器支持CGI(公共網關接口),功能較強。為了實現動態Web技術,本文基于Boa編寫了家庭網關的服務器。首先建立服務器端Socket,然后綁定服務器的IP地址,并循環監聽服務器的一個端口[6]。當有客戶端請求連入時,服務器端會開啟一個子進程處理請求并完成與客戶端的數據通信,具體的軟件設計流程如圖4所示。

圖4 智能家居家庭網關服務器工作流程圖
3.3 ZigBee協調器節點程序設計
在系統中,ZigBee協調器節點主要用于創建無線網絡,分配ZigBee終端節點的網絡地址,然后向終端節點發送控制命令并接收來自終端節點的環境信息,將接收到的數據全部上傳至家庭網關中,最后通過公用以太網傳送至用戶手機的APP上。協調器首先會進行應用層的初始化,然后初始化端口并打開全局中斷。接著協調器初始化一個信道并建立一個ZigBee網絡,這時ZigBee終端節點就可以通過認證加入到該網絡中并進行數據的交換,具體過程如圖5所示。

圖5 ZigBee協調器節點程序流程圖
3.4 智能終端節點程序設計
智能終端節點是指由ZigBee終端控制的節點,在系統中主要是傳感器節點和家電控制節點。ZigBee終端節點初始化同樣包括應用層初始化、I/O端口初始化和打開全局中斷,之后嘗試加入由ZigBee協調器創建的無線網絡中,特別要注意的是:只有與ZigBee協調器設置一致參數的終端節點才能加入到網絡中。成功加入到網絡后,ZigBee終端節點會將其注冊信息發送給ZigBee協調器,然后ZigBee協調器完成對終端節點的注冊[7]。
ZigBee終端節點每隔一定的時間(很短),完成一次數據的采集,并將該數據信息發送給協調器。對于來自于家庭網關的家電控制命令,ZigBee協調器會將其發送給家電終端控制節點,終端節點則通過中斷的方式獲取該信息并完成對家電的控制。具體實現過程如圖6所示。

圖6 ZigBee終端節點程序流程圖
3.5 智能手機APP設計
用戶對整個智能家居控制系統的操作最終是通過智能手機來完成的。為此,筆者開發了基于Android智能手機操作系統平臺的APP。APP的設計包括APP界面前端和后臺的開發。其中,APP的前端即UI(用戶界面)設計,是通過建立一個XML文件,在這個XML文件下根據一定的布局編寫相應的控件,然后在MainActivity代碼中將這個XML文件進行綁定即可[8];而APP的后臺代碼設計,主要通過開啟一個子線程,然后在子線程中建立基于TCP/IP協議的Socket連接,成功連接到家庭網關后即可通過點擊UI界面上的按鈕等控件來控制家電或者接收來自于室內傳感器的數據,并顯示在手機界面上。APP的主界面如圖7所示。
系統軟硬件設計完成后,在實驗室條件下進行了測試。測試系統由一個ZigBee協調器、兩個ZigBee終端節點(分別是溫濕度傳感器節點和音樂播放器節點)、一個由S3C2440平臺搭建的家庭網關、一部無線路由器(用于連接Internet)和一部Android智能手機組成。其中,ZigBee協調器與ZigBee終端節點距離為10 m,相鄰的ZigBee終端節點距離為15 m;家庭網關通過網口連接到無線路由器,進而連接到互聯網上。經測試,截取了家庭網關的后臺服務器部分運行數據,如圖8所示。可以看出,系統運行穩定,信息采集及時準確,執行結構反應迅速,達到了家庭網絡化、自動化的目標。

圖8 家庭網關后臺服務器部分運行數據示意圖
本文將嵌入式ARM技術與ZigBee無線通信技術相結合,基于Android平臺,開發了智能手機的APP進行人機交互。系統功能強大,后期擴展性強,功耗低,達到了對家庭設備智能化管理和遠程監控的目的,具有較為廣闊的應用前景。
[1] 陳發才,王仁波.基于SC1128電力線載波芯片的智能家居系統設計[J].微型機與應用, 2009, 28(20):16-18.
[2] 尹紀庭,袁佳,焦志曼,等.基于ARM和ZigBee的智能家居控制系統研究與開發[J].計算機測量與控制, 2013, 21(9):2451-2454.
[3] 葉高揚,畢冉.基于物聯網的智能家居系統設計與實現[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的智能家居控制系統的研究與設計[J].電子技術應用, 2013, 39(8):81-83.
[6] 關永,張杰,師怡爽.基于ARM的嵌入式WEB服務器研究[J].電子器件, 2006, 29(2):42-45.
[7] 紀金水.基于ZigBee無線傳感器網絡技術的系統設計[J].計算機工程與設計, 2007, 28(2):22-25.
[8] 楊威,高文華.基于Android的智能家居終端設計與研究[J].計算機技術與發展, 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的智能家居控制系統設計[J].微型機與應用,2017,36(3):29-32.
2016-08-06)
徐宏宇(1965-),男,學士,副教授,主要研究方向:信息獲取與處理、電子技術與應用。
程武(1992-),通信作者,男,碩士研究生,主要研究方向:信息獲取與處理、嵌入式系統與應用。E-mail:1637557819@qq.com。
張博(1992-),女,碩士研究生,主要研究方向:信息獲取與處理。