董立巖,隋 鵬,辛?xí)匀A,田 耕
(吉林大學(xué)a.計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院;b.軟件學(xué)院,長春 130012)
基于Android 的智能家居終端控制系統(tǒng)
董立巖a,隋 鵬b,辛?xí)匀Ab,田 耕b
(吉林大學(xué)a.計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院;b.軟件學(xué)院,長春 130012)
為了更好地滿足用戶對生活居住需求,給用戶提供更好的對智能家用電器的控制體驗(yàn),提升家居生活質(zhì)量,基于Android的手機(jī)平臺和平板電腦,設(shè)計(jì)了基于Android的智能家居終端控制系統(tǒng)。該系統(tǒng)建立在Android平臺上,利用Android系統(tǒng)支持的各種資源建立并實(shí)現(xiàn)。用戶可以使用智能手機(jī)實(shí)現(xiàn)對智能家用電器的遠(yuǎn)程控制。該系統(tǒng)成本低,操作靈活,界面友好,經(jīng)實(shí)際使用獲得了很好的用戶體驗(yàn)。
智能家居;Android系統(tǒng);無線網(wǎng)絡(luò)通信技術(shù);移動(dòng)通信網(wǎng)絡(luò);客戶端;Socket編程
智能家居以住宅為平臺,利用先進(jìn)計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)通訊技術(shù)、綜合布線技術(shù)和無線技術(shù),將與家居生活有關(guān)的各種子系統(tǒng)有機(jī)結(jié)合在一起。目的是使家居生活更加智能化、信息化、人性化和節(jié)能化,核心目標(biāo)是提升家居生活的質(zhì)量。
智能家居系統(tǒng)的核心部分是智能家居的終端控制部分,結(jié)合當(dāng)前的市場狀況,主要有3種解決方法。1)使用傳統(tǒng)的紅外遙控器,可觸摸的顯示屏來控制家電。市場上大多數(shù)生產(chǎn)廠商均使用該方法。該方法的缺點(diǎn)是無法達(dá)到遠(yuǎn)程控制家電的目標(biāo),只能在本地對其進(jìn)行控制。而且維修時(shí)十分不便,需購買指定廠商的控制器。2)使用電腦運(yùn)行智能家居終端控制軟件進(jìn)行控制,通過網(wǎng)絡(luò)實(shí)現(xiàn)遠(yuǎn)程對家居系統(tǒng)的控制。采用此種控制方式的缺點(diǎn)和第一種方法類似,該種方法雖然可達(dá)到遠(yuǎn)程控制家電的目標(biāo),但只能在固定地點(diǎn)登錄控制,電腦不便隨身攜帶導(dǎo)致其不能靈活,快捷地控制智能電器[1]。3)基于Android的手機(jī)和平板電腦的廣泛應(yīng)用,可以使用手機(jī)或平板電腦作為智能家居的控制終端,使用無線網(wǎng)絡(luò)(Wifi,GSM(Global System for Mobile Communication)等)對智能家居系統(tǒng)進(jìn)行控制,可真正實(shí)現(xiàn)方便、遠(yuǎn)程控制家用電器,給住戶帶來更好的用戶體驗(yàn),以達(dá)到提升家居質(zhì)量目標(biāo)[2,3]。
智能手機(jī)現(xiàn)在已經(jīng)應(yīng)用到人們生活的各個(gè)領(lǐng)域,所以采用智能手機(jī)做為智能家居的終端控制器是非常好的選擇,大屏幕智能手機(jī)界面可視性直觀,為操作帶來便捷;觸屏功能增加了操作中的娛樂體驗(yàn);手機(jī)系統(tǒng)功能強(qiáng)大,手機(jī)上網(wǎng)、手機(jī)信號接收效果非常好,所以,筆者實(shí)現(xiàn)了基于Android的智能家居終端控制系統(tǒng)。
該控制終端主要特點(diǎn):1)基于Android系統(tǒng)進(jìn)行終端控制軟件的設(shè)計(jì)與實(shí)現(xiàn),使用了基于ActivityGroup的更好的應(yīng)用程序框架,使用SQLite數(shù)據(jù)庫,它是輕量級的開源,具有良好的可拓展性和兼容性,采用圖形化界面,直觀簡單,操作容易,可給用戶更好的體驗(yàn)效果;2)手機(jī)可通過GSM或Wifi遠(yuǎn)程控制智能家電。
Android是基于Linux的自由并開放源代碼的操作系統(tǒng),是強(qiáng)大靈活的智能終端平臺。主要應(yīng)用在移動(dòng)設(shè)備上,如智能手機(jī),平板電腦。據(jù)IDC(Internet Data Center)的最新數(shù)據(jù)顯示,Android已成為最受歡迎的智能手機(jī)平臺。該平臺由4部分組成,分別為操作系統(tǒng)、中間件、用戶界面及應(yīng)用軟件[4,5]。相比于其他移動(dòng)設(shè)備使用的操作系統(tǒng),其優(yōu)勢也相當(dāng)明顯。
該系統(tǒng)基于Android,利用Android操作系統(tǒng)提供的各種資源實(shí)現(xiàn)。用戶的家中內(nèi)部定制安裝了智能家電,如電視機(jī)、窗簾、空調(diào)和加濕器等。因此在實(shí)現(xiàn)過程中利用反射機(jī)制加載控制模塊。用戶可對顯示在手機(jī)或平板電腦上的智能電器實(shí)施控制,如控制電器的開關(guān),窗簾的升降,空調(diào)的溫度,電視的選臺等功能。用戶可通過手機(jī)隨時(shí)隨地遠(yuǎn)程控制家電的狀態(tài),高效、靈活。
系統(tǒng)使用Eclipse作為開發(fā)環(huán)境,使用ADT(Android Development Tools)作為開發(fā)插件?;贏ndroid完成以上的系統(tǒng)目標(biāo),用戶使用觸摸屏與系統(tǒng)進(jìn)行交互。系統(tǒng)開發(fā)流程如圖1所示。系統(tǒng)通過發(fā)送一些設(shè)定系統(tǒng)指令,完成對家電的控制。用戶可以設(shè)置本地客戶端的狀態(tài),完成清除系統(tǒng)緩存等用戶操作。另外,集成了一些新聞,咨詢?yōu)g覽相關(guān)功能,功能設(shè)計(jì)如圖2所示。
圖2 功能設(shè)計(jì)Fig.2 Functional design
圖1 系統(tǒng)開發(fā)流程 Fig.1 System development step
用戶控制(客戶端)設(shè)計(jì)主要涉及用戶UI界面、Socket通信、線程和SQLite數(shù)據(jù)庫的設(shè)計(jì)與使用。應(yīng)用 程 序 使 用 Activity, ActivityGroup, Service,ProcessBar,Handler,ListView等多種組件,每個(gè)組件完成相應(yīng)的任務(wù),采用不同布局方式,如LinearLayour,GridLayout,TableLayout等,完成用戶UI界面的顯示。該終端控制系統(tǒng)使用流程圖如圖3所示。
圖3 流程圖Fig.3 The flowchart
在ActivityGroup中設(shè)計(jì)了5個(gè)子界面,分別為“首頁”,“新聞”,“短信”,“更多”和“退出”。進(jìn)入客戶端“首頁”時(shí),利用Android反射機(jī)制對圖片進(jìn)行加載,顯示家里的智能電器,點(diǎn)擊相應(yīng)電器圖標(biāo),可對相應(yīng)的電器進(jìn)行控制。如點(diǎn)擊空調(diào)圖標(biāo),進(jìn)入對空調(diào)控制界面,其集成控制空調(diào)開關(guān)、溫度和掃風(fēng)模式等功能。該客戶端還集成了一些娛樂功能,用戶可以查看最近的新聞,資訊等。為方便用戶的使用,在“短信”頁面中,搜集了當(dāng)前智能家電的狀態(tài),可以以短信的形式發(fā)送給家里的其他人,以便提醒和確認(rèn)。在“更多”界面中提供給用戶一些可以自定義的功能,如設(shè)置客戶端的亮度顯示模式、白天和夜晚,可以修改登錄密碼,找回密碼等功能。退出界面實(shí)現(xiàn)退出客戶端程序,并給出是否真的退出本程序的操作提示,防止用戶誤操作帶來不友好的用戶體驗(yàn)。提高程序的容錯(cuò)能力??蛻舳私缑嫒鐖D4所示。
圖4 客戶端界面Fig.4 The client interface
該程序使用的是SQLite數(shù)據(jù)庫,SQLite是一款輕型的數(shù)據(jù)庫,是遵守ACID(Atomicity,Consistency,Isolation Durability)的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),目前已經(jīng)應(yīng)用于很多嵌入式產(chǎn)品中。它占用資源非常低并且能支持Windows/Linux/Unix等主流的操作系統(tǒng),具有很好的可移植性,使用非常方便,同時(shí)能與程序語言Java等相結(jié)合。由于是輕量級的數(shù)據(jù)庫,所以可以降低管理數(shù)據(jù)的額外開銷。同時(shí)SQLite支持基本數(shù)據(jù)類型,如BLOB、CLOB、BOOLEAN、TEXT等[1]。在Android程序中可以很方便地進(jìn)行數(shù)據(jù)庫的操作,如其為開發(fā)者提供了SQLiteDatabase類,該類對數(shù)據(jù)的基本操作——添加(Create)、查詢(Retrieve)、更新(Update)和刪除(Delete)操作(簡稱為CRUD)進(jìn)行了封裝,提供了方便使用的API(Application Programming Interface)。
Android提供了非常方便的網(wǎng)絡(luò)編程接口,直接提供了tcp和udp傳輸封裝類,通過創(chuàng)建Socket對象,使用inputstream、outputstream即可完成client與server之間的通信[1,6]。client與server大致通信過程如下(圖5):
圖5 通信過程Fig.5 The communication process between client and server
1 )服務(wù)器端將ServerSocket對象實(shí)例化,同時(shí)設(shè)置監(jiān)聽端口,等待客戶端發(fā)出的連接請求;
2 )客戶端將Socket對象實(shí)例化,同時(shí)指定將要連接的服務(wù)器端ip address與port number,向服務(wù)器發(fā)出連接請求;
3 )服務(wù)器端監(jiān)聽到客戶端發(fā)來的連接請求,同時(shí)對客戶端發(fā)來的請求給與響應(yīng)并建立與客戶端的通信連接;
4)客戶端給服務(wù)器發(fā)出命令和數(shù)據(jù)請求;
5 )服務(wù)器接受客戶端發(fā)來的請求,進(jìn)行相應(yīng)處理,并將結(jié)果返回給客戶端;
6 )客戶端接收服務(wù)器返回的結(jié)果,并將結(jié)果呈現(xiàn)給用戶;
7 )如此反復(fù)執(zhí)行3)~6)步,直至客戶端不再發(fā)出新的請求;
8 )客戶端與服務(wù)器端中斷連接,并分別回收相應(yīng)的資源,結(jié)束兩者之間的通信。
用戶在進(jìn)入客戶端首頁中點(diǎn)擊家電,跳轉(zhuǎn)到家電的控制界面,在控制界面中用戶設(shè)置家電的狀態(tài),如開關(guān),空調(diào)的掃風(fēng)模式,加濕器的濕度等參數(shù)。點(diǎn)擊控制界面中的“提交”按鈕后,客戶端將用戶輸入的信息進(jìn)行相應(yīng)的格式轉(zhuǎn)換后打包發(fā)送給服務(wù)器端[7,8];服務(wù)器端接受客戶端發(fā)來的請求,解析相應(yīng)的參數(shù),控制家電使其做出相應(yīng)的改變,并將響應(yīng)結(jié)果返回給服務(wù)器端;服務(wù)器端將響應(yīng)結(jié)果返回客戶端,客戶端將反饋結(jié)果呈現(xiàn)給用戶[9,10]。用戶再根據(jù)返回的信息決定下一步的操作,智能家電的交互過程如圖6所示。
圖6 交互過程Fig.6 The interaction between home appliances
通過安裝應(yīng)用程序,輸入合法的用戶名和口令后,可完成對智能家用電器的遠(yuǎn)程控制,隨時(shí)隨地掌控家中的電器狀態(tài),實(shí)現(xiàn)對家中電器的集中與統(tǒng)一管理。該系統(tǒng)基于目前流行的Android操作系統(tǒng)設(shè)計(jì)智能家居客戶端,一方面可以給用戶帶來良好的用戶體驗(yàn),以方便用戶無需購買其他的終端控制裝置,只需下載安裝包,即可在手機(jī)或平板電腦上安裝運(yùn)行。另外,用戶可以使用GSM或Wifi實(shí)現(xiàn)遠(yuǎn)程控制。與其他幾種控制方式相比優(yōu)勢明顯,而且可移植性好,市場潛力大,易于推廣使用,而且硬件成本低,可擴(kuò)展性好。該系統(tǒng)還有許多待完善的地方,家用電器的種類目前是固定不變的,還需要添加用戶自定義功能,動(dòng)態(tài)的增刪家用電器,并且用戶可以直接與動(dòng)態(tài)添加的家用電器進(jìn)行交互。
[1]王朝華,陳德艷,黃國宏,等.基于Android的智能家居系統(tǒng)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2012,22(6):226-228.
WANG Chaohua,CHEN Deyan,HUANG Guohong,et al.Research and Implementation of Smart Home Based on Android Platform[J].Computer Technology and Development,2012,22(6):226-228.
[2]彭建盛.基于Symbian平臺智能家居控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].天津師范大學(xué)學(xué)報(bào):自然科學(xué)版,2011,31(2):56-58.
PENG Jiansheng.Designing and Realization of a Smart Home Control System Based on Symbian Platform [J].Journal of Tianjin Normal University:Natural Science Edition,2011,31(2):56-58.
[3]邵鵬飛,王喆,張寶儒.面向移動(dòng)互聯(lián)網(wǎng)的智能家居系統(tǒng)研究[J].計(jì)算機(jī)測量與控制,2012,20(2):474-476.
SHAO Pengfei,WANG Zhe,ZHANG Baoru.Mobile Internet Oriented Smart Home Systems[J].Computer Measurement &Control,2012,20(2):474-476.
[4]YU M C,SHIN D,SHIN D K,et al.Fundamentals and Design of Smart Home Middleware[C]∥CSO 2009:International Joint Conference on Computational Sciences and Optimization.Washington,DC:IEEE,2009:647-650.
[5]原林,于伸.嵌入式技術(shù)在智能家居控制系統(tǒng)中的應(yīng)用[J].自動(dòng)化技術(shù)與應(yīng)用,2006,25(1):72-74.
YUAN Lin,YU Shen.The Embedded Technology in Smart Home[J].Techniques of Automation and Application,2006,25(1):72-74.
[6]汪宇,呂衛(wèi),楊博菲,等.基于Android平臺的智能家居監(jiān)控系統(tǒng)[J].電視技術(shù),2012,36(2):37-38.
WANG Yu,Lü Wei,YANG Bofei,et al.Smart Domestic Surveillance System Based on Android Platform [J].Video Engineering,2012,36(2):37-38.
[7]陳橋云,賈金玲.基于智能手機(jī)與PC機(jī)的智能家居系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2009,17(9):25-26.
CHEN Qiaoyun,JIA Jinling.Design of Smart Home System Based on Intelligent Mobile and Computer[J].Electronic Design Engineering,2009,17(9):25-26.
[8]YEO L K,WEON C J.Remote-Controlled Home Automation System via Bluetooth Home Network[C]∥Proc of SICE 2003 Annum Conference.Tokyo:Soc of Instrum and Control Eng,2008:2824-2829.
[9]王揮,吳小祥.基于Android的校園客戶端的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)科學(xué)與應(yīng)用,2013,3(7):313-319.
WANG Hui,WU Xiaoxiang.Design and Implementation of Campus Client Based on Android [J].Computer Science and Application,2013,3(7):313-319.
[10]宋小青,周東升.基于Android平臺的應(yīng)用開發(fā)研究[J].軟件導(dǎo)刊,2011,10(2):104-106.
SONG Xiaoqing,ZHOU Dongsheng.Development and Research of Application Based on Android Platform [J].Software Guide,2011,10(2) :104-106.
Implementation of Smart Home Terminal Control System Based on Android Platform
DONG Liyana,SUIPengb,XIN Xiaohuab,TIAN Gengb
(a.College of Computer Science and Technology;b.College of Software,Jilin University,Changchun 130012,China)
The smart home terminal control system based on Android is designed for greatly satisfying the user's requirement to living,providing better control experience of smart household appliances to the users.The terminal control system has the features of low cost,flexible operation and friendly interface which are supported by all kinds resources of Android,it can realize the remote control to the smart household appliances.
smart home;Android System;Wifi;global system for mobile communication(GSM);client;Socket program
TP319
A
1671-5896(2014)03-0303-05
2013-09-15
董立巖(1966— ),男,長春人,吉林大學(xué)教授,博士,碩士生導(dǎo)師,主要從事數(shù)據(jù)挖掘研究,(Tel)86-18604315166(E-mail)dongly@jlu.edu.cn;通訊作者:辛?xí)匀A(1988— ),男,河南林州人,吉林大學(xué)碩士研究生,主要從事數(shù)據(jù)庫文件、物聯(lián)網(wǎng)研究,(Tel)86-18843112539(E-mail)877352463@qq.com。
張潔)