劉 秀,李 燁,劉兆坤
(上海理工大學 光電信息與計算機工程學院,上?!?00093)
基于Android的遠程控制系統(tǒng)設計
劉秀,李燁,劉兆坤
(上海理工大學 光電信息與計算機工程學院,上海200093)
摘要為實現(xiàn)對家庭智能設備的遠程控制,文中提出了一種基于Android的遠程控制系統(tǒng)。該系統(tǒng)采用Android手機作為控制終端,發(fā)送控制指令,經(jīng)3G網(wǎng)絡由集總控制器接收后進行解析,從而達到控制家居環(huán)境中各種智能設備的目的??刂葡到y(tǒng)采用了基于Socket的Java編程,實現(xiàn)了客戶端和服務端之間的網(wǎng)絡通信。實驗證明,該控制系統(tǒng)可遠程控制智能家居設備,且定位精確、響應迅速、應用范圍廣。
關鍵詞遠程控制;Android;Socket;3G網(wǎng)絡
Remote Control System Based on Android
LIU Xiu,LI Ye,LIU Zhaokun
(School of Optical-Electrical and Computer Engineering,University of Shanghai for
Science and Technology,Shanghai 200093,China)
AbstractAn Android-based remote control system for familial intelligent devices is proposed in this paper.The system uses Android phones as a control terminal to send the control instruction.The instructions are received and analyzed by the lumped controller through 3G network,so as to achieve the control of various intelligent devices for home uses.The control system uses the Java programming based on socket,which realizes the network communication between the client and the server.Experiments show that the control system is capable of remote control of smart home devices with accurate location,fast response and good adaptability.
Keywordsremote control;Android;Socket;3G network
隨著計算機網(wǎng)絡和數(shù)字通信技術[1]的發(fā)展,各種網(wǎng)絡技術日新月異,利用網(wǎng)絡技術遠程控制家居設備使居住環(huán)境變得更為便捷舒適,已成為新的研究熱點。雖然市場消費觀念尚未形成,但隨著智能家居產(chǎn)業(yè)的進一步推廣落實,一旦成功培養(yǎng)出消費者的使用習慣,將具有巨大的潛在消費市場。與此同時,谷歌公司推出的Android平臺[2-3]憑借其友好的人機交互界面、豐富的應用程序、開放的源碼和低廉的成本,迅速占領了手機、車載導航等移動終端市場。因此,將Android系統(tǒng)同遠程控制家居系統(tǒng)[4]相結(jié)合,借助移動互聯(lián)網(wǎng)技術,更好的為生活、社會發(fā)展服務。
Android系統(tǒng)以Linux內(nèi)核為基礎[5]。內(nèi)核層為系統(tǒng)提供基本功能的支持,例如內(nèi)存與進程的監(jiān)管、網(wǎng)絡通信協(xié)議等;第二層為系統(tǒng)運行庫層,包括核心庫和其他類庫,如圖像數(shù)據(jù)庫、SQLite數(shù)據(jù)庫;第三層為應用框架層,開發(fā)人員可獲取Android系統(tǒng)的API權(quán)限開發(fā)第三方應用。
通過對當前國內(nèi)現(xiàn)有的遠程控制智能家居系統(tǒng)的分析和研究,結(jié)合Android系統(tǒng)應用程序的特點,本文設計出一種基于Android操作系統(tǒng)和3G網(wǎng)絡的無線遠程控制系統(tǒng)[6],以Android設備作為控制端,利用大范圍覆蓋的3G網(wǎng)絡作為通信網(wǎng)絡,對家居設施集總控制器進行控制。通過有線網(wǎng)絡或WiFi、ZigBee等無線網(wǎng)絡[7],集總控制器可對空調(diào)、音響、衣架等智能家居設施進行操作。
1系統(tǒng)總體設計與實現(xiàn)
如圖1所示,無線控制系統(tǒng)由控制端與服務端兩個核心部分組成??刂贫嗽谙到y(tǒng)中處于主控地位,負責所有控制信令的生成、下發(fā)以及接收被控端返回的狀態(tài)信息,解析反饋信息后,將設備狀態(tài)顯示在人機交互界面上便于用戶及時了解當前命令的執(zhí)行狀況。在系統(tǒng)中處于被控地位的服務端,主要負責接收控制端信令,解析出具體的控制命令及參數(shù)后,調(diào)用系統(tǒng)底層接口與智能設備進行通信,對設備的狀態(tài)進行調(diào)控并將命令執(zhí)行狀態(tài)反饋給控制端??刂贫撕头斩耸褂?G網(wǎng)絡進行信息傳遞,為確保在傳遞過程中信息的安全性,控制信令及設備反饋的狀態(tài)信令等均由代碼編號代替,控制端及服務端設置相同的代碼編號庫用于信令的編碼與解析。
如圖1所示,控制端由多線程通信模塊、控制與狀態(tài)分析模塊以及人機交互模塊組成。多線程通信模塊通過系統(tǒng)底層API與服務端對等模塊進行通信,發(fā)送參數(shù)信息給服務端,并接收設備反饋的狀態(tài)信息。
控制與狀態(tài)分析模塊將用戶指令信息解析轉(zhuǎn)化為代碼編號并對服務端傳遞來的設備狀態(tài)參數(shù)進行分析,對比內(nèi)置最佳參數(shù)值后提示用戶進行優(yōu)化操作。
人機交互模塊是控制系統(tǒng)與用戶之間的樞紐,以Android系統(tǒng)自帶控件為基本元素來實現(xiàn)[8]。用戶發(fā)送控制指令和設備狀態(tài)信息都將呈現(xiàn)在人機交互界面上。
圖1 系統(tǒng)功能模塊
服務端由多線程通信模塊、集總信息處理模塊以及被控的家居設備構(gòu)成。多線程通信模塊用于接收控制端發(fā)送的控制信令并將設備狀態(tài)信息回饋給客戶端。集總信息處理模塊將接收到的控制策略文件進行解析,并將解析出來的控制命令通過家居網(wǎng)絡對家居智能設備進行控制。同時,集總信息處理模塊通過調(diào)用系統(tǒng)底層API與被控家居設備通信,獲取傳感器采集的環(huán)境信息,保存后調(diào)用系統(tǒng)接口將設備狀態(tài)反饋給控制端,通知用戶本次命令執(zhí)行情況。信令傳輸如圖2所示(數(shù)字序號表示信令傳遞先后順序,箭頭表示傳遞方向)。
圖2 系統(tǒng)信令傳輸圖
2無線控制系統(tǒng)實現(xiàn)
系統(tǒng)利用多線程通信模塊在控制端與服務端之間傳遞控制策略及設備狀態(tài)信息,如圖1所示。多線程[9]可在單個軟件中同時執(zhí)行多個不同的線程來完成一個相同或多個不同的任務。隸屬于同一類文件的多個子線程之間可共享內(nèi)存空間和系統(tǒng)提供的資源,這個特性使多線程運行時能夠充分利用計算機資源,減少用戶響應時間。但線程之間有主次之分,當應用程序創(chuàng)建一個新進程,系統(tǒng)會自動創(chuàng)建相應的主線程(UI線程)。UI線程管理應用程序的窗口及界面數(shù)據(jù)更新,系統(tǒng)運行時UI主線程負責創(chuàng)建、顯示和更新系統(tǒng)控件。整個系統(tǒng)都是基于Socket的Java編程[10]實現(xiàn)的,因此,采用集成系統(tǒng)線程類和執(zhí)行對象接口兩種方法來實現(xiàn)線程的創(chuàng)建和開啟。Socket是互聯(lián)網(wǎng)上的兩個節(jié)點,借助于雙向連接模式實現(xiàn)數(shù)據(jù)傳送和接收。一個完整的Socket通常由本地IP、遠程IP、通信協(xié)議、本地端口和遠程端口5個元素唯一確定。本系統(tǒng)控制端與被控端之間的通信基于TCP/IP通信協(xié)議[11]。通信結(jié)構(gòu)流程如圖3所示。
圖3 系統(tǒng)通信結(jié)構(gòu)流程
一般而言通信流程分為4步:(1)創(chuàng)建Socket;(2)創(chuàng)建輸入輸出流;(3)按照協(xié)議對Socket進行讀/寫操作;(4)關閉Socket。如圖3所示,控制端與被控端之間報文傳遞過程,報文從控制端發(fā)出,通過套接字通信;按照TCP/IP協(xié)議將報文寫入,由通信通道將報文傳到被控端,再由相應的協(xié)議解析報文,信令就傳遞過去了。
3系統(tǒng)的仿真測試
本系統(tǒng)基于Android系統(tǒng)4.0版本開發(fā),可在Android 4.x平臺的終端設備上運行,且具備足夠的導航和控制鍵并帶有屏幕顯示區(qū)。系統(tǒng)仿真測試在一臺Android模擬器與一臺Android手機之間完成,系統(tǒng)控制端安裝在模擬器上運行,而被控端使用Android設備作為集總控制器。主要測試按照如圖4所示進行:先檢測通信模塊是否正常工作;然后根據(jù)手機上的人機互動界面顯示的當前設備狀態(tài)后,下發(fā)新的狀態(tài)更改命令;最后,觀察設備狀態(tài)是否成功更改。
圖4 測試流程圖
仿真開始,用戶通過Android手機上的人機交互界面得到設備初始狀態(tài),如圖5~圖6所示,網(wǎng)絡通信處于關閉狀態(tài),空調(diào)、音響均處于關閉狀態(tài),衣架處于收回狀態(tài)。在控制端界面上將通信狀態(tài)開啟,設置空調(diào)啟動溫度為23 ℃,設置音響音量為50%,衣架狀態(tài)選擇衣架外伸,如圖7所示。
圖5 控制端設備初始化界面
圖6 被控端設備初始化界面
圖7 控制端命令執(zhí)行提示界面
當控制命令執(zhí)行完成,服務端會反饋當前家居設備運行狀態(tài)顯示在控制端的人機交互界面上,如圖8所示,當前通信已處于連接狀態(tài),空調(diào)設置了23 ℃,聲音達到最大音量的50%,達到了用戶要求。
圖8 被控端命令執(zhí)行提示界面
4結(jié)束語
通過反復的測試,遠程控制系統(tǒng)上的控制端與服務器端能夠建立快速、穩(wěn)定的連接,服務端能夠?qū)刂贫说母鞣N操作請求做出正確及時的響應。系統(tǒng)在運行時用簡單的指令代碼節(jié)省了網(wǎng)絡資源,此外,本系統(tǒng)還具有低成本、低功耗、擴展性好、遠程數(shù)據(jù)傳輸安全等特點。
參考文獻
[1]江燕良.基于Android智能終端的遠程控制系統(tǒng)[J].電子技術應用,2012,38(8):136-139.
[2]Enck W,Ongtang M,McDaniel P D.U1nderstanding android security[J].IEEE Security & Privacy,2009,7(1):50-57.
[3]羅震.Android 平臺環(huán)境下應用程序架構(gòu)的設計與實現(xiàn)[D].武漢:華中科技大學,2009.
[4]耿東久,索岳,陳渝.基于 Android 手機的遠程訪問和控制系統(tǒng)[J].計算機應用,2011,31(2):559-561.
[5]郭宏志.Android 應用開發(fā)詳解[M].北京:電子工業(yè)出版社,2010.
[6]趙恩濤.基于3G技術的應用商店形態(tài)研究[D].北京:北京郵電大學,2010.
[7]Royer E M,Toh C K.A review of current routing protocols for ad hoc mobile wireless networks[J].IEEE Transactions on Personal Communications,1999,6(2):46-55.
[8]潘驍.基于Android平臺的企業(yè)通訊錄管理系統(tǒng)研究與設計[D].廈門:廈門大學,2012.
[9]許勇,郭長國.實時線程庫研究與實現(xiàn)[J].計算機工程與應用,2002,38(13):136-137.
[10]回健永.基于Java語言的多線程機制的實現(xiàn)[J].天津職業(yè)院校聯(lián)合學報,2011,13(8):58-61.
[11]汪玉美,劉萍,李云,等.基于Web Services的木馬通信模型研究[J].計算機工程與設計,2010(19):4182-4185.
作者簡介:劉秀(1991—),女,碩士研究生。研究方向:云計算。李燁(1974—),男,博士,高級工程師。研究方向:信息融合等。
收稿日期:2015- 06- 28
中圖分類號TN929.53;TP273
文獻標識碼A
文章編號1007-7820(2016)01-114-04
doi:10.16180/j.cnki.issn1007-7820.2016.01.031