?

基于Android平臺的智能家居系統設計

2015-12-16 08:03秦會斌曹曙光秦利紅
電子技術應用 2015年10期
關鍵詞:網關智能家居客戶端

陳 瑋,秦會斌,曹曙光,秦利紅

(1.杭州電子科技大學 電子信息學院,浙江 杭州 310018;2.浙江和惠照明科技有限公司,浙江 余姚315400)

基于Android平臺的智能家居系統設計

陳瑋1,秦會斌1,曹曙光2,秦利紅1

(1.杭州電子科技大學 電子信息學院,浙江 杭州 310018;2.浙江和惠照明科技有限公司,浙江 余姚315400)

為了實現家居生活智能、方便等目的,提出一種基于Android平臺的智能家居系統。采用內外網通信方式,使得當家庭寬帶不可用時仍能通過內網實現對家居設備的控制。將用戶配置信息、設備信息存在網關使得不同客戶端能信息共享,實現動態添加、刪除動作。采用推送而不是輪詢,實時性好??蛻舳薃PP功能齊全,云計算的使用實現了外網控制,同時便于未來的系統擴展。

智能家居;Android;信息推送;云計算;遠程控制

0 引言

智能家居通過物聯網技術將家居子系統有機結合在一起形成高度智能化的智慧家庭[1]。物聯網、云概念的提出加速了智能家居的發展,Android智能手機和網絡技術的發展也給智能家居帶來了新的思路[2]。本文提出一個基于Android平臺的智能家居系統設計方案。以Android手機作為家居控制終端,通過云平臺轉發消息,真正實現遠程控制,將用戶信息、設備信息存在網關使不同客戶端能實現信息共享,實現動態添加、刪除動作。結合推送技術獲得良好的實時性。

1 系統總體框架圖

系統由客戶端、云計算中心、網關和家庭設備組成。系統框架如圖1所示。

客戶端實現對底層設備的控制方式包括:(1)內網控制:客戶端使用家庭網絡與網關直接通信,由網關控制底層設備;(2)外網控制:客戶端與網關不在同一網段內,客戶端指令由云服務器轉發給對應的網關,再由網關控制底層設備。采用內外網的通信方式,使得家庭寬帶網絡在不可使用的情況下,仍能通過內網通信實現對設備的控制,同時節省用戶數據流量[3]。每次運行客戶端軟件,會自動獲取網關處的配置信息、設備信息。網關同步底層設備狀態,當發生改變時由網關轉發給客戶端,使用戶能及時獲知底層設備的最新狀態。

圖1 系統框圖

2 客戶端設計與實現

2.1客戶端功能說明

Android客戶端功能模塊如圖2所示。

設備管理是核心模塊,包括自定義房間和設備??商砑?、刪除、修改房間,房間下可添加設備。點擊設備管理,通過后臺獲取當前用戶下的所有房間并以JSON格式返回,客戶端完成解析并顯示在界面上,點擊添加圖標進入添加房間界面,填寫房間名稱并將用戶ID與房間名稱發往網關并保存至數據庫。通過長按房間界面實現刪除與修改動作。點擊房間會顯示該房間下的所有設備,可添加設備,長按刪除設備,不提供修改設備動作??梢钥刂茊蝹€設備或區域內的所有設備,也可以對某個情景模式關聯的設備進行聯動控制。

圖2 客戶端功能模塊圖

2.2客戶端框架

在Eclipse開發環境下,采用 java語言,基于 MVC模式對客戶端進行設計。視圖層View負責生成用戶界面,接收輸入并顯示結果??刂茖覥ontroller用于監聽用戶操作并作出反應。模型層Model定義了各種功能模塊,包括通信模塊、數據庫模塊、數據格式的封裝和解析模塊等[4],其中通信模塊是核心。

2.3通信模塊

通信模塊負責客戶端和服務器或網關間的消息通信和鏈路維護。通信方式有:TCP/UDP、Http、MQTT推送。系統的通信協議如圖3。過程如下:

圖3 通信協議圖

(1)第一次使用軟件,需在云端完成注冊,將用戶名和密碼以Http方式發到云端,并獲得服務器生成的用戶ID。同時在家庭 WiFi環境下使網關加入局域網:將WiFi的SSID和密碼通過加密算法進行加密,將加密序列生成UDP數據包并發送出去,網關獲得該包并解析出WiFi相關信息,實現自動連接到路由器。

(2)綁定網關。網關加入局域網后監聽客戶端廣播的數據包并返回自己的IP地址和TCP通信端口,客戶端通過TCP的Socket發送用戶ID到網關實現和網關的綁定,同時將用戶和網關的唯一標識號發送至云端實現綁定,這樣客戶端通過外網訪問云服務器時,服務器能轉發指令給對應的網關。

(3)以后每次使用軟件前,都要判斷當前網絡環境。即判斷客戶端和網關是否在同一網段內。若客戶端沒有接收到返回信息,說明它們不在一個網段內,則選擇通過Http方式連接云服務器。

(4)采用MQTT實現設備狀態的實時更新。訂閱客戶端所綁定的網關,網關同步底層設備狀態,當狀態改變時,由網關發送給MQTT server,再推送至客戶端。

系統的通信模塊活動圖如圖4所示。

圖4 通信模塊活動圖

2.4通信模塊實現

2.4.1Http通信

外網通信方式下,用戶登錄、獲取設備信息等由客戶端采用 Http建立主動連接,服務器將結果以 JSON格式返回。模塊中的Http請求用Android-Async-Http網絡請求庫實現,它是基于Apache HttpClient庫之上的一個異步網絡請求處理庫,網絡處理均基于Android的非UI線程,不阻塞UI操作,通過回調方法處理請求結果。

Android-Async-Http使用簡單,通過核心類AsyncHttp-Client的實例就可以執行網絡請求,提供 put、post等方法。登陸過程如下:

(1)創建AsyncHttpClient的實例

(2)創建請求參數的封裝對象

(3)執行post方法

new AsyncHttpResponseHandler()這個實例用于接收請求結果,一般重寫onSuccess()和onFailure()方法接收請求成功或失敗的消息。onSuccess()方法的參數responseBody為響應內容字節。

2.4.2MQTT推送

MQTT是基于 TCP/IP協議,專為物聯網開發的輕量級通信協議。該協議針對網絡差、計算能力低的設備做了特殊處理,使其能適應物聯網應用場景,有占用寬帶小、耗電量少等優勢。協議里有兩個主要角色:MQTT client和MQTT server。client向 server訂閱某個話題就能收到發布到該話題的所有消息;client發布消息到某個話題下,則該話題的所有訂閱者都能收到[5]。通信時序圖如圖5所示。

圖5 MQTT client和MQTT server通信時序圖

本文通過MQTT實現客戶端實時獲得設備信息??蛻舳藢狹QTT client,是消息訂閱者。當狀態改變時,由設備將信息發送給網關,再由網關傳遞給MQTT server,再推送至訂閱了該網關的客戶端。使用MQTT,須將mqttv3.jar包加入Android應用程序中,它是IBM提供的MQTT協議的實現。APK調用該jar包提供的API接口,就能建立MQTT client和MQTT server的連接。流程如下[6]:

(1)創建一個 MqttClient對象,參數包括 MQTT server所在的IP地址和端口號、客戶端唯一標識clientid等。

(2)創建MqttConnectOptions的對象并進行設置。用戶名和密碼用于連接MQTT server時進行驗證,心跳時間用于client定時發送心跳包,以便和server保持連接。

(5)訂閱某個網關的話題,接收網關發布到該話題下的消息,即設備信息。TOPICS是客戶端訂閱的話題,設為“gateway-example”。QOS_VALUES代表服務質量保證級別,1表示至少會發送一次消息。

MQTT技術可以實現底層設備信息的實時更新,非常適合智能家居這種使用場景。

3 云計算中心

云計算將計算任務分布在大量計算機構成的資源池上,使各種應用系統按需獲取計算力、存儲空間和信息服務[7]。云計算作為一種新技術受到越來越多的親睞,很多學校、企業都建立了云計算數據中心。本文采用阿里云 ECS(Elastic Compute Service)作為云計算中心,它是一種簡單高效、處理能力可彈性伸縮計算服務。服務器開發框架采用 Jquery+SpringMVC+Mybatis+Ehcache。Mybatis是一個基于Java的持久層框架,支持普通SQL查詢。為了提高Mybatis的性能,需要添加第三方緩存組件支持,目前用的比較多的是Ehcache緩存。Ehcache性能強大、快速簡單,具有多種緩存策略。Mybatis與Ehcache整合可以提高性能,提高查詢效率,降低數據庫壓力。

4 功能測試

主要對設備的實時控制和狀態值的實時刷新進行了驗證。設備用繼電器模擬,使用安裝 Android程序的手機作為客戶端進行功能測試。

在外網環境下,當客戶端連接服務器后,觸發設備開關按鈕,可以將控制命令由云中轉至網關,再轉發至底層設備控制繼電器開關,同時設備的最新狀態和傳感器值也會在客戶端進行實時刷新。測試結果如圖6,客戶端能保持和網關信息同步。

5 結論

圖6 測試結果

本文簡要介紹了基于Android平臺的智能家居系統設計和關鍵技術。該系統結合了云計算和MQTT技術,實現遠程控制和信息同步,同時提供了內網控制,設備信息存在網關保證用戶信息共享。為市場化應用提供一種參考。

[1]岳敬華.基于云服務的智能家居系統的研究與設計[D].杭州:杭州電子科技大學,2014.

[2]吳浩權.基于 Android的智能家居系統的研究與設計[D].杭州:浙江工業大學,2013.

[3]崔荔.基于 Android平臺的智能家居客戶端系統設計與實現[D].西安:長安大學,2013.

[4]王運紅,何靈娜.基于Android平臺智能家居客戶端的設計和實現[J].機電工程,2014,31(8);1086-1089,1102.

[5]關慶余.基于 MQTT協議的移動社交網絡客戶端的設計與實現[D].沈陽:中國科學院研究生院(沈陽計算技術研究所),2014.

[6]姜妮,張宇,趙志軍.基于MQTT物聯網消息推送系統[J].網絡新媒體技術,2014,3(6):62-64.

[7]劉鵬.云計算[M].北京:電子工業出版社,2011.

Design of smart home system based on Android

Chen Wei1,Qin Huibin1,Cao Shuguang2,Qin Lihong1
(1.School of Electronics Information,Hangzhou Dianzi University,Hangzhou 310018,China;2.Zhejiang HeHui Lighting Technology Co.Ltd,Yuyao 315400,China)

In order to achieve home life become more smart,convenient and other purposes,a smart home system based on Android is proposed.The system has internal and external communicate mode,which makes it possible to control the device by the internal network when the home broadband network is unavailable.The user's configure information and device information are in the gateway,which enables different clients to share information,and realizes the add or delete action dynamically.The status of equipment is obtained by the push technology instead of the polling mode.The APP is designed humanized with complete functions, the use of cloud computing not only realizes the external control,but also facilitates the future system expansion.

smart home;Android;message push;cloud computing;remote control

TP311

A

10.16157/j.issn.0258-7998.2015.10.043

2015-05-30)

陳瑋(1988-),女,碩士研究生,主要研究方向:嵌入式系統及應用。

秦會斌(1961-),男,博士,教授,主要研究方向:新型電子器件及ASIC設計、現代傳感器設計及應用。

曹曙光(1978-),男,碩士研究生,助理研究員,主要研究方向:LED燈設計與制作。

中文引用格式:陳瑋,秦會斌,曹曙光,等.基于Android平臺的智能家居系統設計[J].電子技術應用,2015,41(10):158-160,164.

英文引用格式:Chen Wei,Qin Huibin,Cao Shuguang,et al.Design of smart home system based on Android[J].Application of Electronic Technique,2015,41(10):158-160,164.

猜你喜歡
網關智能家居客戶端
基于PLC的智能家居控制系統研究
如何看待傳統媒體新聞客戶端的“斷舍離”?
信號系統網關設備的優化
縣級臺在突發事件報道中如何應用手機客戶端
孵化垂直頻道:新聞客戶端新策略
大樞紐 云平臺 客戶端——中央人民廣播電臺的探索之路
基于Zigbee的無線通信技術在智能家居中的應用
關于智能家居真正需求的探討
LTE Small Cell網關及虛擬網關技術研究
應對氣候變化需要打通“網關”
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合