(桂林電子科技大學 電子工程與自動化學院,桂林 541004)
智能家居(smart home)是利用計算機技術(shù)、多傳感器技術(shù)、網(wǎng)絡通信技術(shù)、智能控制技術(shù)、綜合布線技術(shù)等現(xiàn)代化技術(shù),將家居生活中的各類電子設備有機地結(jié)合在一起從而實現(xiàn)智能控制和管理的一種嵌入式系統(tǒng)[1]。智能家居的誕生讓人們的生活舒適性得到了提高、安全性得到了保障并極大地提升了人們的生活質(zhì)量[2-3]。計算機技術(shù)、網(wǎng)絡技術(shù)與移動通信技術(shù)的結(jié)合與發(fā)展為智能家居的高速發(fā)展提供了前提和條件[4]。
本文考慮到Android系統(tǒng)應用的廣泛性并結(jié)合智能家居的發(fā)展趨勢,以運行于Android智能移動設備上的App為控制終端,使以STM32為主控制器的主機與分布在家居各個房間的分機協(xié)作控制家居電器,設計了一套成本低廉、可靠實用、界面友好的智能家居系統(tǒng)。
整個智能家居系統(tǒng)主要由控制終端App、家居智能網(wǎng)關(guān)(主機)以及分布在家居各個房間的控制器(分機)等部分構(gòu)成。系統(tǒng)總設計框圖如圖1所示。
圖1 系統(tǒng)設計框圖Fig.1 Design diagram of system
系統(tǒng)實現(xiàn)智能控制前,需要進行遙控器學習操作,先將家居電器遙控器按鍵所對應的紅外或射頻編碼學習到主機中,然后,由主機轉(zhuǎn)發(fā)編碼數(shù)據(jù)到控制終端App并存儲到本地SQLite數(shù)據(jù)庫中,即可完成學習操作。運行于智能手機或平板上的App基于TCP/IP通信協(xié)議,通過WiFi或GPRS向主機發(fā)送控制指令,主機接收控制指令后,將控制指令解析,并根據(jù)指令決定主機是將指令轉(zhuǎn)發(fā)給相應的分機還是直接控制相應的家居電器工作,而分布在家居各個房間的分機主要負責接收主機發(fā)出的RF射頻控制信號,并將信號解析成控制指令,用于控制分機所在房間的家居電器工作。家居電器接收控制操作指令后,執(zhí)行相關(guān)功能,并將家居設備狀態(tài)信息返回到控制終端,從而實現(xiàn)智能手機或平板電腦對家居電器的實時智能控制。
本文設計的智能家居系統(tǒng)具有如下特點:
(1)基于開放流行的Android系統(tǒng)進行控制終端App的設計,使用開源的SQLite結(jié)構(gòu)數(shù)據(jù)庫進行數(shù)據(jù)存儲,同時,App采用圖形界面進行人機交互,具有良好的用戶體驗。
(2)用戶個人的智能Android手機或平板電腦作為控制終端,即可實現(xiàn)家居設備的智能控制,而不用為智能家居系統(tǒng)設計專用的控制器,這樣做不僅減少了硬件設計復雜度,降低了系統(tǒng)成本,還為用戶提供了非常便利的使用條件。
(3)智能家居系統(tǒng)中主機和分機的通信是利用射頻無線通信技術(shù)實現(xiàn)的,與其它實現(xiàn)同樣功能的無線通信技術(shù)相比,極大地降低了系統(tǒng)成本。
常用家居電器的遙控信號有紅外和射頻,射頻信號是可以無視障礙物穿墻傳播的,而紅外信號傳播的兩點之間不能有任何障礙物,只能直線短距離傳播,這就為控制家居各個房間中紅外遙控信號的電器帶來不便。基于以上原因,系統(tǒng)采用智能網(wǎng)關(guān)(主機)和分布在各個房間的分機協(xié)作控制家居電器的方案。
為了滿足主機無線轉(zhuǎn)發(fā)從控制終端App得到的控制指令到相應分機設備的需求,需要組建一個通信網(wǎng)絡用于實現(xiàn)家居內(nèi)的主機和分機之間的通信。因家居所占空間的限制,只需滿足短距離通信即可,滿足這些條件的通信技術(shù)有ZigBee無線通信技術(shù)、有線通信技術(shù)和射頻無線通信技術(shù)等,本文設計的智能家居系統(tǒng)采用433 MHz頻段的射頻進行無線通信,構(gòu)建家居通信網(wǎng)絡。本系統(tǒng)采用433 MHz頻段的射頻構(gòu)成家居內(nèi)網(wǎng)具有以下優(yōu)點:采用射頻技術(shù)使得系統(tǒng)易于安裝,不需布線等工序,脫離了有線的限制,整體架構(gòu)靈活性高;433 MHz為我國免去申請步驟的無線通訊頻段,可以減少不必要的麻煩;射頻信號是可穿墻的無線信號,與其它實現(xiàn)同樣功能的無線通信技術(shù)相比,系統(tǒng)設計成本低廉,降低了系統(tǒng)的設計復雜度。
Android是Google公司基于Linux開放式內(nèi)核開發(fā)的手機嵌入式操作系統(tǒng)。Android系統(tǒng)分為3層,以Linux內(nèi)核為基礎層,中間層包括各類函數(shù)庫和虛擬機,最上層是用戶界面和各種應用軟件。
App的開發(fā)使用Android操作系統(tǒng)作為開發(fā)平臺,Eclipse作為開發(fā)環(huán)境,ADT (android development tools)作為開發(fā)插件,Java面向?qū)ο笳Z言作為開發(fā)語言,負責應用程序數(shù)據(jù)存儲的SQLite數(shù)據(jù)庫作為開發(fā)數(shù)據(jù)庫,開發(fā)出一款在Android手機或平板上運行的App,作為智能家居系統(tǒng)的控制終端。在Android開發(fā)過程中,Google公司已經(jīng)對它的開發(fā)目錄文件根據(jù)MVC的設計模式進行簡要的分類,本文基于MVC的設計模式對Android App總體架構(gòu)進行設計,這樣一方面可以更易于總體框架的搭建、減少工作量,另一方面基于MVC的框架設計使得系統(tǒng)結(jié)構(gòu)更加清晰。設計完成的控制終端App的部分界面如圖2所示,主要由配置主機、添加分機、添加遙控、添加場景和遙控器學習等功能模塊構(gòu)成,其設計框圖如圖3所示。
圖2 App界面Fig.2 Interfaces of application
圖3 App設計框圖Fig.3 Design diagram of application
(1)配置主機主要是實現(xiàn)主機通過連接路由器進而成功連接到 Internet,以便于控制終端通過WiFi或移動寬帶與主機進行通信。
(2)添加分機操作即將分布在各個房間的用于控制家居電器的分機的MAC等數(shù)據(jù)存儲到App的數(shù)據(jù)庫中,以便于主機轉(zhuǎn)發(fā)控制指令時,根據(jù)MAC找到相對應的分機。
(3)添加場景。即添加一個家居中房間的相關(guān)信息到App數(shù)據(jù)庫中,如客廳、臥室、廚房等。
(4)添加遙控即將某個家用電器相關(guān)信息添加到App的數(shù)據(jù)庫中,包含電器所屬場景(房間)和所屬控制器(主機或分機)等信息。
(5)遙控器學習功能模塊。將家居電器遙控器按鍵所對應的紅外或射頻編碼學習到主機中,然后,主機轉(zhuǎn)發(fā)編碼數(shù)據(jù)到控制終端并存儲到App的SQLite數(shù)據(jù)庫中,用來組成控制終端向主機發(fā)送的控制指令。
主機和分機的區(qū)別是主機具有與控制終端通信的WiFi模塊,而分機則無。主機由STM32F101C8主控制器、紅外遙控發(fā)送接收模塊、315 MHz和433 MHz射頻發(fā)送接收模塊、WiFi模塊、溫濕度傳感器及煙霧傳感器等組成,其設計框圖如圖4所示。
圖4 主機設計框圖Fig.4 Design diagram of host
(1)WiFi收發(fā)電路模塊。該模塊主要負責與控制終端App進行數(shù)據(jù)交互,WiFi模塊成功連接家庭路由器后,即可通過局域網(wǎng)或廣域網(wǎng)與控制終端App進行通信。
(2)射頻信號收發(fā)模塊。主要實現(xiàn)主機與分機的數(shù)據(jù)交互,組成家居通信網(wǎng)絡以及RF家居電器的控制和主機對射頻遙控器信號的學習等功能。家居電器的射頻遙控信號主要是433 MHz和 315 MHz頻段的射頻信號。
(3)紅外信號收發(fā)模塊。主要實現(xiàn)紅外家居電器的控制及主機對紅外遙控器信號的學習等功能。
(4)傳感器模塊。煙霧傳感器用來采集房間煙霧信息判斷是否發(fā)生火災;溫濕度傳感器采集房間溫度、濕度等信息。
家居智能網(wǎng)關(guān)(主機)工作時的流程如圖5所示。已配置成功的主機會在上電工作并完成相關(guān)模塊的初始化后,主動獲取存儲在Flash中的家庭WiFi賬號和密碼,自動連接路由器并成功接入Internet。未配置的主機需按主機上的配置按鍵及操作App進行配置。配置完成的主機即可與控制終端App進行數(shù)據(jù)交互,并執(zhí)行遙控學習、家居電器控制、轉(zhuǎn)發(fā)控制指令到分機等功能。
圖5 智能網(wǎng)關(guān)程序流程圖Fig.5 Program flow chart of intelligent gateway
為了使網(wǎng)絡有序通信,需要制定簡潔、易于擴展的通信協(xié)議。具體的數(shù)據(jù)通訊基本協(xié)議格式如表1所示。
表1 系統(tǒng)通信協(xié)議格式Tab.1 Communication protocol format of system
幀頭和幀尾是固定值,分別為0x3a和0x0a,表示一幀數(shù)據(jù)的開始和結(jié)束;源地址、目標地址分別是通信發(fā)起者、通信接收者的IP或MAC地址;命令字用于定義不同功能的控制指令及區(qū)分不同的數(shù)據(jù)幀,不同的命令字代表不同的控制命令;考慮到通信的安全性,只有6位密碼正確的數(shù)據(jù)幀才是有效的數(shù)據(jù);數(shù)據(jù)即一幀數(shù)據(jù)中的有效數(shù)據(jù);有效數(shù)據(jù)長度為數(shù)據(jù)的數(shù)據(jù)位長度;校驗位的內(nèi)容為源地址到所有數(shù)據(jù)的異或校驗。
本文設計了一套基于Android的智能家居系統(tǒng),采用Android智能手機或平板電腦作為控制終端優(yōu)勢明顯;設計開發(fā)的應用軟件能在Android操作系統(tǒng)的平臺上安裝和使用,易于推廣;將射頻無線通信技術(shù)作為家居內(nèi)網(wǎng)通信手段使得系統(tǒng)成本降低。但針對不常用的智能電器及插座等,可以通過智能控制面板進行自行定義和特別設置。經(jīng)過實際測試驗證,該系統(tǒng)可以實現(xiàn)用用戶手中的智能手機或平板電腦代替所有家居電器的遙控器,實時監(jiān)視和控制家居電器的功能,給人們的日常生活帶來了非常大的便利。
[1] 蔣峰.家居智能安全遠程無線監(jiān)控系統(tǒng)的設計[J].計算機測量與控制,2012,20(9):2435-2436.
[2] 向軍,謝贊福.基于嵌入式Internet/Intranet的智能家居系統(tǒng)模型及實現(xiàn)[J].計算機工程與設計,2005,26(9):167-169.
[3] 邵鵬飛,王喆,張寶儒.面向移動互聯(lián)網(wǎng)的智能家居系統(tǒng)研究[J].計算機測量與控制,2012,20(2):474-476,479.
[4] S Kumar.Ubiquitous smart home system using Android application[J].International Journal of Computer Networks&Communications,2014,6(1):33-43.