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