基于Android系統(tǒng)的智能家居控制終端研究與實現(xiàn)
引言
近年來,智能手機在全球范圍內(nèi)迅速普及,市場研究公司Gartner發(fā)布的數(shù)據(jù)顯示,2011年前三季度,全球智能手機銷量同比增長超過55%,智能手機正在占據(jù)越來越多的手機市場份額;隨著社會經(jīng)濟的快速發(fā)展,人們的生活水平提高到一個新的層次,對生活環(huán)境的要求越來越高,正在興起的基于物聯(lián)網(wǎng)技術(shù)的智能家使人們逐漸邁入以數(shù)字化和網(wǎng)絡(luò)化為平臺的智能化社會。
基于Android手機日益流行且系統(tǒng)開源,本文將Android終端與智能家居聯(lián)系起來,研究并實現(xiàn)了一種基于Android系統(tǒng)的智能家居控制終端。在系統(tǒng)中,Android終端通過周圍的無線網(wǎng)絡(luò)與智能家居中的家電設(shè)備或傳感器進行通信,實現(xiàn)對家電設(shè)備的控制、傳感器值的讀取以及家居安防。
Android的系統(tǒng)架構(gòu)
Android操作系統(tǒng)自頂向下分成4個層次,即應(yīng)用層、應(yīng)用框架層、組件庫層、虛擬機和Linux內(nèi)核層。如圖1所示。
圖1 Android框架圖
應(yīng)用層:Android操作系統(tǒng)同一系列核心應(yīng)用程序包一起發(fā)布,其核心應(yīng)用程序包括E-mail客戶端、SMS(短信)序、日歷、Google地圖、網(wǎng)頁瀏覽器、聯(lián)系薄等,目前所有的應(yīng)用都是使用Java語言編寫的。
應(yīng)用框架層:開發(fā)者通過使用核心應(yīng)用程序來調(diào)用Android框架提供的API,這個應(yīng)用程序結(jié)構(gòu)被設(shè)計成方便復用的組件。任何的應(yīng)用程序都可以公布它的功能,其他的應(yīng)用程序可以使用這些功能(涉及到系統(tǒng)安全問題的功能將會被框架禁止)。該應(yīng)用程序重用機制使用戶可以方便地替換程序組件。隱藏在每個應(yīng)用后面的是一系列的服務(wù)和系統(tǒng);
組件庫層:Android包含了一套C/C++函數(shù)庫,主要包括libc、Media Framework、WebKit、SGL、OpenGLES、FreeType、SQLite等,它們被應(yīng)用于Android系統(tǒng)的各種組件中,這些功能通過Android應(yīng)用框架展現(xiàn)給開發(fā)人員;
運行時環(huán)境:Android包括了一個核心庫,該核心庫提供了Java編程語言核心庫的大多數(shù)功能。每一個Android應(yīng)用程序都在它自己的進程中運行,擁有一個獨立的Dalvik虛擬機實例。Dalvik被設(shè)計成可以同時高效地運行多個虛擬系統(tǒng)。Dalvik虛擬機執(zhí)行后綴為dex的可執(zhí)行文件,該格式文件針對小內(nèi)存使用做了優(yōu)化。同時虛擬機是基于寄存器的,所有的類都經(jīng)由Java編譯器編譯,然后通過SD中的“dx”工具轉(zhuǎn)化成“.dex”格式。Dalvik虛擬機依賴于Linux內(nèi)核的一些功能,比如線程機制和底層內(nèi)存管理機制;
Linux內(nèi)核層:Android底層是一個基于Linux2.6.23內(nèi)核開發(fā)的獨立操作系統(tǒng)。主要是添加了一個名為Goldfish的虛擬CPU以及Android運行所需的特定驅(qū)動代碼。該層用來提供系統(tǒng)的底層服務(wù),包括安全機制、內(nèi)存管理、進程管理、網(wǎng)絡(luò)堆棧及一系列的驅(qū)動模塊。作為一個虛擬的中間層,該層位于硬件與其他的軟件層之間。
Android終端的具體設(shè)計
智能家居總體框架
Android終端可以通過網(wǎng)絡(luò)(3G、WiFi或藍牙)與家電、傳感器和安防設(shè)備進行通信。在外時,通過3G來操作;在家時,用WiFi或藍牙來操作,可以節(jié)省3G流量。如圖2所示。
圖2 智能家居的系統(tǒng)架構(gòu)
該系統(tǒng)主要包括:綜合安防、家電控制、節(jié)能管理、健康檢測、舒適控制等。本文主要研究Android終端對以上幾個部分的管理和控制。Android終端如要管理和控制設(shè)備,需要發(fā)送一個控制命令給社區(qū)服務(wù)器,以便社區(qū)服務(wù)器知道手機的IP地址,才能夠與社區(qū)服務(wù)器進行建立連接并進行通信。
Android終端的模塊劃分
系統(tǒng)中的Android終端部分設(shè)計,模塊劃分如圖3所示。
圖3 Android終端模塊劃分
家電控制:用戶進入家電控制界面,聯(lián)網(wǎng)后就可以對家電進行控制(比如電燈、電視、空調(diào)等)。Android設(shè)備發(fā)送控制信號給社區(qū)服務(wù)器,社區(qū)服務(wù)器將控制信號發(fā)給家庭無線物聯(lián)網(wǎng)網(wǎng)關(guān),再根據(jù)是否是紅外設(shè)備進行分類,如果是紅外設(shè)備,就將控制信號發(fā)給紅外家電控制器,紅外家電控制器再根據(jù)不同的家電控制命令分別控制不同的設(shè)備,如果是非紅外設(shè)備,家庭無線物聯(lián)網(wǎng)網(wǎng)關(guān)直接將控制命令發(fā)給相應(yīng)的家電設(shè)備進行控制。如圖4所示。
圖4 家電控制[!--empirenews.page--]
視頻監(jiān)控:進入視頻監(jiān)控界面,可以選中不同的攝像頭進行查看,包括客廳、臥室以及室外,可以通過攝像頭對家居內(nèi)或家居外進行視頻監(jiān)控;
智能醫(yī)療:當家里有人在檢測心跳脈搏時,會將檢測結(jié)果發(fā)送到Android終端上顯示,實時關(guān)注家人的健康狀況;當家里有老人或小孩跌倒時,通過智能家居服務(wù)器將報警信息發(fā)送至監(jiān)護人的Android終端上顯示。當Android終端收到報警信息后,Android終端首先會在當前所在的界面上進行彈窗提示“用戶跌倒”,提示人們家里的老人發(fā)生了跌倒,可以通過Android終端查看安裝在家里的攝像頭,查看老人的情況,以便做出相應(yīng)的處理。Android設(shè)備的彈窗提示界面和監(jiān)控界面查看情況見圖5所示。
圖5 (a) 報警彈窗提示 圖5 (b) 報警查看結(jié)果
能耗監(jiān)控:為了節(jié)能,Android可以對大功率電器(電視、空調(diào)、冰箱等)進行管理,查看電器的用電情況(如用電時間、功率以及費用等);
安防管理:該系統(tǒng)中有安防設(shè)備(如窗磁、門磁紅外等)。當外出時將安防設(shè)備打開,如有人闖入,就會發(fā)送報警信息到Android終端,通過攝像頭可以查看家里的狀況,如果只是誤報或沒有真正的入侵者,通過Android終端可以將安防設(shè)備重置;如有意外也可以方便用戶及時做出相應(yīng)的處理;
數(shù)據(jù)接收和發(fā)送:該系統(tǒng)中的溫度、濕度、煙霧等傳感器的值通過家庭無線物聯(lián)網(wǎng)網(wǎng)關(guān)發(fā)送給社區(qū)服務(wù)器,社區(qū)服務(wù)器再將數(shù)據(jù)發(fā)送到Android終端并進行顯示。如果家里發(fā)生火災或煤氣泄漏等其它意外事故時,通過Android終端顯示的傳感器的值也可以直接看出,以便及時作出相應(yīng)的處理。
網(wǎng)絡(luò)數(shù)據(jù)下載:當進入電視預告界面時,可以在下拉框中選擇不同的地點,比如選擇重慶、北京或者上海等,就會從網(wǎng)絡(luò)上下載相應(yīng)的不同地點的電視節(jié)目預告,顯示在界面中,以方便用戶及時觀看電視節(jié)目。
Android終端的流程圖
用戶首次進入該應(yīng)用程序需要進行注冊,然后登陸進入到控制界面。系統(tǒng)總體流程圖如6所示。
圖6 系統(tǒng)總體流程
測試驗證
當進入該軟件的控制界面中,可以對電視、空調(diào)、電燈以及風扇等家電設(shè)備進行控制;接收溫度、濕度、煙霧等傳感器的值,并將其顯示在界面上,管理大功率電器的用電;如果家人在檢測心跳、脈搏等,智能醫(yī)療界面可以查看檢測的值,以便實時監(jiān)測家人的健康,如果家里有老人跌倒,也會將跌倒信號發(fā)送到Android終端上;當離家時,開啟安防設(shè)備后,家中的窗磁、門磁、紅外等安防設(shè)備開始工作,當有人闖入時,就會將報警信息發(fā)送到Android終端上顯示以提醒用戶,并可以通過攝像頭查看家里的情況;同時當用戶有需求需要查看電視節(jié)目預告時,也可以通過節(jié)目預告功能,對各個電臺的電視節(jié)目預告進行查看,以便及時觀看自己喜歡的節(jié)目。如圖7所示。
圖7 測試結(jié)果
結(jié)束語
隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,智能家居也越來越受到更多的人關(guān)注。本文實現(xiàn)Android手機和平板作為智能家居的一個控制終端,對家電的控制、傳感器值的接收以及視頻的監(jiān)控;并在Android系統(tǒng)的不同版本或分辨率的終端下運行正常。