引言
智能家居以住宅為平臺(tái),利用先進(jìn)計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)通訊技術(shù)、綜合布線技術(shù)和無(wú)線技術(shù),將與家居生活有關(guān)的各種子系統(tǒng)有機(jī)結(jié)合在一起。目的是使家居生活更加智能化、信息化、人性化和節(jié)能化,核心目標(biāo)是提升家居生活的質(zhì)量。
智能家居系統(tǒng)的核心部分是智能家居的終端控制部分,結(jié)合當(dāng)前的市場(chǎng)狀況,主要有3種解決方法。
1)使用傳統(tǒng)的紅外遙控器,可觸摸的顯示屏來(lái)控制家電。市場(chǎng)上大多數(shù)生產(chǎn)廠商均使用該方法。該方法的缺點(diǎn)是無(wú)法達(dá)到遠(yuǎn)程控制家電的目標(biāo),只能在本地對(duì)其進(jìn)行控制。而且維修時(shí)十分不便,需購(gòu)買指定廠商的控制器。
2)使用電腦運(yùn)行智能家居終端控制軟件進(jìn)行控制,通過網(wǎng)絡(luò)實(shí)現(xiàn)遠(yuǎn)程對(duì)家居系統(tǒng)的控制。采用此種控制方式的缺點(diǎn)和第一種方法類似,該種方法雖然可達(dá)到遠(yuǎn)程控制家電的目標(biāo),但只能在固定地點(diǎn)登錄控制,電腦不便隨身攜帶導(dǎo)致其不能靈活,快捷地控制智能電器。
3)基于Android的手機(jī)和平板電腦的廣泛應(yīng)用,可以使用手機(jī)或平板電腦作為智能家居的控制終端,使用無(wú)線網(wǎng)絡(luò)(Wifi,GSM(GlobalSystemforMobileCommunication)等)對(duì)智能家居系統(tǒng)進(jìn)行控制,可真正實(shí)現(xiàn)方便、遠(yuǎn)程控制家用電器,給住戶帶來(lái)更好的用戶體驗(yàn),以達(dá)到提升家居質(zhì)量目標(biāo)。
該控制終端主要特點(diǎn):
1)基于Android系統(tǒng)進(jìn)行終端控制軟件的設(shè)計(jì)與實(shí)現(xiàn),使用了基于ActivityGroup的更好的應(yīng)用程序框架,使用SQLite數(shù)據(jù)庫(kù),它是輕量級(jí)的開源,具有良好的可拓展性和兼容性,采用圖形化界面,直觀簡(jiǎn)單,操作容易,可給用戶更好的體驗(yàn)效果;
2)手機(jī)可通過GSM或Wifi遠(yuǎn)程控制智能家電。
1、Android智能家居終端控制系統(tǒng)設(shè)計(jì)
1.1、Android平臺(tái)
Android是基于Linux的自由并開放源代碼的操作系統(tǒng),是強(qiáng)大靈活的智能終端平臺(tái)。主要應(yīng)用在移動(dòng)設(shè)備上,如智能手機(jī),平板電腦。據(jù)IDC(InternetDataCenter)的最新數(shù)據(jù)顯示,Android已成為最受歡迎的智能手機(jī)平臺(tái)。該平臺(tái)由4部分組成,分別為操作系統(tǒng)、中間件、用戶界面及應(yīng)用軟件。相比于其他移動(dòng)設(shè)備使用的操作系統(tǒng),其優(yōu)勢(shì)也相當(dāng)明顯。
1.2、系統(tǒng)設(shè)計(jì)目標(biāo)
該系統(tǒng)基于Android,利用Android操作系統(tǒng)提供的各種資源實(shí)現(xiàn)。用戶的家中內(nèi)部定制安裝了智能家電,如電視機(jī)、窗簾、空調(diào)和加濕器等。因此在實(shí)現(xiàn)過程中利用反射機(jī)制加載控制模塊。用戶可對(duì)顯示在手機(jī)或平板電腦上的智能電器實(shí)施控制,如控制電器的開關(guān),窗簾的升降,空調(diào)的溫度,電視的選臺(tái)等功能。用戶可通過手機(jī)隨時(shí)隨地遠(yuǎn)程控制家電的狀態(tài),高效、靈活。
1.3、系統(tǒng)的設(shè)計(jì)流程
系統(tǒng)使用Eclipse作為開發(fā)環(huán)境,使用ADT(AndroidDevelopmentTools)作為開發(fā)插件?;贏ndroid完成以上的系統(tǒng)目標(biāo),用戶使用觸摸屏與系統(tǒng)進(jìn)行交互。系統(tǒng)開發(fā)流程如圖1所示。系統(tǒng)通過發(fā)送一些設(shè)定系統(tǒng)指令,完成對(duì)家電的控制。用戶可以設(shè)置本地客戶端的狀態(tài),完成清除系統(tǒng)緩存等用戶操作。另外,集成了一些新聞,咨詢?yōu)g覽相關(guān)功能,功能設(shè)計(jì)如圖2所示。
2、客戶端實(shí)現(xiàn)
2.1、用戶控制
用戶控制(客戶端)設(shè)計(jì)主要涉及用戶UI界面、Socket通信、線程和SQLite數(shù)據(jù)庫(kù)的設(shè)計(jì)與使用。應(yīng)用程序使用Activity,ActivityGroup,Service,ProcessBar,Handler,ListView等多種組件,每個(gè)組件完成相應(yīng)的任務(wù),采用不同布局方式,如LinearLayour,GridLayout,TableLayout等,完成用戶UI界面的顯示。該終端控制系統(tǒng)使用流程圖如圖3所示。
圖3 流程圖
2.2、關(guān)鍵功能
在ActivityGroup中設(shè)計(jì)了5個(gè)子界面,分別為“首頁(yè)”,“新聞”,“短信”,“更多”和“退出”。進(jìn)入客戶端“首頁(yè)”時(shí),利用Android反射機(jī)制對(duì)圖片進(jìn)行加載,顯示家里的智能電器,點(diǎn)擊相應(yīng)電器圖標(biāo),可對(duì)相應(yīng)的電器進(jìn)行控制。如點(diǎn)擊空調(diào)圖標(biāo),進(jìn)入對(duì)空調(diào)控制界面,其集成控制空調(diào)開關(guān)、溫度和掃風(fēng)模式等功能。該客戶端還集成了一些娛樂功能,用戶可以查看最近的新聞,資訊等。為方便用戶的使用,在“短信”頁(yè)面中,搜集了當(dāng)前智能家電的狀態(tài),可以以短信的形式發(fā)送給家里的其他人,以便提醒和確認(rèn)。在“更多”界面中提供給用戶一些可以自定義的功能,如設(shè)置客戶端的亮度顯示模式、白天和夜晚,可以修改登錄密碼,找回密碼等功能。退出界面實(shí)現(xiàn)退出客戶端程序,并給出是否真的退出本程序的操作提示,防止用戶誤操作帶來(lái)不友好的用戶體驗(yàn)。提高程序的容錯(cuò)能力??蛻舳私缑嫒鐖D4所示。
圖4 客戶端界面
2.3、數(shù)據(jù)庫(kù)
該程序使用的是SQLite數(shù)據(jù)庫(kù),SQLite是一款輕型的數(shù)據(jù)庫(kù),是遵守ACID(Atomicity,Consistency,IsolationDurability)的關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng),目前已經(jīng)應(yīng)用于很多嵌入式產(chǎn)品中。它占用資源非常低并且能支持Windows/Linux/Unix等主流的操作系統(tǒng),具有很好的可移植性,使用非常方便,同時(shí)能與程序語(yǔ)言Java等相結(jié)合。由于是輕量級(jí)的數(shù)據(jù)庫(kù),所以可以降低管理數(shù)據(jù)的額外開銷。同時(shí)SQLite支持基本數(shù)據(jù)類型,如BLOB、CLOB、BOOLEAN、TEXT等[1]。在Android程序中可以很方便地進(jìn)行數(shù)據(jù)庫(kù)的操作,如其為開發(fā)者提供了SQLiteDatabase類,該類對(duì)數(shù)據(jù)的基本操作———添加(Create)、查詢(Retrieve)、更新(Update)和刪除(Delete)操作(簡(jiǎn)稱為CRUD)進(jìn)行了封裝,提供了方便使用的API(ApplicationProgrammingInterface)。
2.4、Socket編程
Android提供了非常方便的網(wǎng)絡(luò)編程接口,直接提供了tcp和udp傳輸封裝類,通過創(chuàng)建Socket對(duì)象,使用inputstream、outputstream即可完成client與server之間的通信[1,6]。client與server大致通信過程如下(圖5):
圖5 通信過程
1)服務(wù)器端將ServerSocket對(duì)象實(shí)例化,同時(shí)設(shè)置監(jiān)聽端口,等待客戶端發(fā)出的連接請(qǐng)求;
2)客戶端將Socket對(duì)象實(shí)例化,同時(shí)指定將要連接的服務(wù)器端ipaddress與portnumber,向服務(wù)器發(fā)出連接請(qǐng)求;
3)服務(wù)器端監(jiān)聽到客戶端發(fā)來(lái)的連接請(qǐng)求,同時(shí)對(duì)客戶端發(fā)來(lái)的請(qǐng)求給與響應(yīng)并建立與客戶端的通信連接;
4)客戶端給服務(wù)器發(fā)出命令和數(shù)據(jù)請(qǐng)求;
5)服務(wù)器接受客戶端發(fā)來(lái)的請(qǐng)求,進(jìn)行相應(yīng)處理,并將結(jié)果返回給客戶端;
6)客戶端接收服務(wù)器返回的結(jié)果,并將結(jié)果呈現(xiàn)給用戶;
7)如此反復(fù)執(zhí)行3)~6)步,直至客戶端不再發(fā)出新的請(qǐng)求;
8)客戶端與服務(wù)器端中斷連接,并分別回收相應(yīng)的資源,結(jié)束兩者之間的通信。
3、電器的交互控制
用戶在進(jìn)入客戶端首頁(yè)中點(diǎn)擊家電,跳轉(zhuǎn)到家電的控制界面,在控制界面中用戶設(shè)置家電的狀態(tài),如開關(guān),空調(diào)的掃風(fēng)模式,加濕器的濕度等參數(shù)。點(diǎn)擊控制界面中的“提交”按鈕后,客戶端將用戶輸入的信息進(jìn)行相應(yīng)的格式轉(zhuǎn)換后打包發(fā)送給服務(wù)器端;服務(wù)器端接受客戶端發(fā)來(lái)的請(qǐng)求,解析相應(yīng)的參數(shù),控制家電使其做出相應(yīng)的改變,并將響應(yīng)結(jié)果返回給服務(wù)器端;服務(wù)器端將響應(yīng)結(jié)果返回客戶端,客戶端將反饋結(jié)果呈現(xiàn)給用戶。用戶再根據(jù)返回的信息決定下一步的操作,智能家電的交互過程如圖6所示。
圖6 ?交互過程
4、結(jié)語(yǔ)
通過安裝應(yīng)用程序,輸入合法的用戶名和口令后,可完成對(duì)智能家用電器的遠(yuǎn)程控制,隨時(shí)隨地掌控家中的電器狀態(tài),實(shí)現(xiàn)對(duì)家中電器的集中與統(tǒng)一管理。該系統(tǒng)基于目前流行的Android操作系統(tǒng)設(shè)計(jì)智能家居客戶端,一方面可以給用戶帶來(lái)良好的用戶體驗(yàn),以方便用戶無(wú)需購(gòu)買其他的終端控制裝置,只需下載安裝包,即可在手機(jī)或平板電腦上安裝運(yùn)行。另外,用戶可以使用GSM或Wifi實(shí)現(xiàn)遠(yuǎn)程控制。與其他幾種控制方式相比優(yōu)勢(shì)明顯,而且可移植性好,市場(chǎng)潛力大,易于推廣使用,而且硬件成本低,可擴(kuò)展性好。該系統(tǒng)還有許多待完善的地方,家用電器的種類目前是固定不變的,還需要添加用戶自定義功能,動(dòng)態(tài)的增刪家用電器,并且用戶可以直接與動(dòng)態(tài)添加的家用電器進(jìn)行交互。
評(píng)論