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