《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于Android平臺的智能家居系統設計
基于Android平臺的智能家居系統設計
2015年電子技術應用第10期
陳 瑋1,秦會斌1,曹曙光2,秦利紅1
(1.杭州電子科技大學 電子信息學院,浙江 杭州310018;2.浙江和惠照明科技有限公司,浙江 余姚315400)
摘要: 為了實現家居生活智能、方便等目的,提出一種基于Android平臺的智能家居系統。采用內外網通信方式,使得當家庭寬帶不可用時仍能通過內網實現對家居設備的控制。將用戶配置信息、設備信息存在網關使得不同客戶端能信息共享,實現動態添加、刪除動作。采用推送而不是輪詢,實時性好??蛻舳薃PP功能齊全,云計算的使用實現了外網控制,同時便于未來的系統擴展。
中圖分類號: TP311
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2015.10.043

中文引用格式: 陳瑋,秦會斌,曹曙光,等. 基于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.
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
Abstract: 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.
Key words : smart home;Android;message push;cloud computing;remote control


0 引言

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

1 系統總體框架圖

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

001.jpg

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

2 客戶端設計與實現

  2.1 客戶端功能說明

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

002.jpg

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

  2.2 客戶端框架

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

  2.3 通信模塊

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

003.jpg

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

  socket=new DatagramSocket();

  sequence=sequence_init(account.toString(),

  pswd.toString());//生成加密序列

  while(flag){

  for(int i=0; i<len; i++){String str = "";

  for(int j = 0; j<sequence[i]; j++){str += "a";}

  outPacket=new

  DatagramPacket(str.getBytes(),str.length(),

  InetAddress.getByName(s_gateway),4000);

  socket.send(outPacket);}

  socket.receive(receive);

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

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

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

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

004.jpg

  2.4 通信模塊實現

  2.4.1 Http通信

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

  Android-Async-Http使用簡單,通過核心類AsyncHttp-

  Client的實例就可以執行網絡請求,提供put、post等方法。登陸過程如下:

  (1)創建AsyncHttpClient的實例

  AsyncHttpClient client = new AsyncHttpClient();

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

  RequestParams params = new RequestParams();

  params.put("username", userName);

  params.put("userpass", userPass);

  (3)執行post方法

  client.post(url, params,

  new AsyncHttpResponseHandler (){

  public void onSuccess(int statusCode, Header[] headers,

  byte[] responseBody){

  if(statusCode == 200){//成功

  Toast.makeText(this,new String(responseBody) ).show();}}

  Public void onFailure(int statusCode, Header[] headers,

  byte[] responseBody Throwable error){

  error.printStackTrace();//失敗

  }}…);

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

  2.4.2 MQTT推送

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

005.jpg

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

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

  MqttClient client=new MqttClient("tcp://123.57.219.126:

  1883",

  "test", new MemoryPersistence());

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

  MqttConnectOptions options=new MqttConnectOptions();

  options.setUserName(userName);//用戶名

  options.setPassword(passWord.toCharArray());//密碼

  options.setKeepAliveInterval(20);//心跳時間

  (3)給客戶端設置回調。

  client.setCallback(new MqttCallback() {

  public void connectionLost(Throwable cause) {

  //連接丟失后,進行重連}

  public void deliveryComplete(IMqttDeliveryToken token){

  //publish后會執行到這里}

  public void messageArrived(String topicNam e,

  MqttMessage message) throws Exception {

  //subscribe后得到的消息會執行到這里面

  Message msg = new Message();

  msg.what = 1;

  msg.obj = topicName+"---"+message.toString();

  //通過handler傳遞給主線程進行UI更新

  handler.sendMessage(msg);}});

  (4)連接到MQTT server。

  client.connect(options);

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

  client. subscribe(TOPICS, QOS_VALUES);

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

3 云計算中心

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

4 功能測試

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

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

006.jpg

5 結論

  本文簡要介紹了基于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.


此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美大片专区| 亚洲福利专区| av成人免费| 在线高清一区| 欧美日韩精品一二三区| 欧美高清免费| 亚洲级视频在线观看免费1级| 国产精品专区h在线观看| 亚洲巨乳在线| 国产免费一区二区三区香蕉精| 欧美日韩精品在线观看| 免费精品99久久国产综合精品| 亚洲欧洲av一区二区| 中文亚洲免费| 欧美精品激情blacked18| 久久国产精品一区二区| 欧美日韩午夜视频在线观看| 久久成人精品电影| 在线看成人片| 欧美一区二区在线| aa级大片欧美三级| 欧美成人综合| 久久久噜噜噜久久狠狠50岁| 欧美视频中文一区二区三区在线观看| 亚洲毛片在线观看| 久久精品国产一区二区电影| 久久婷婷综合激情| 亚洲大片在线| 国产精品有限公司| 尤物在线精品| 亚洲一区在线直播| 一本色道久久| 欧美日韩不卡视频| 在线视频观看日韩| 亚洲欧美日韩在线| 国产伪娘ts一区| 篠田优中文在线播放第一区| 亚洲一区二区在线视频| 欧美日韩视频一区二区三区| 亚洲视频在线视频| 一区二区高清视频在线观看| 免费成年人欧美视频| 国产欧美综合一区二区三区| 日韩视频一区二区三区在线播放| 午夜激情一区| 久久av二区| 免费在线观看一区二区| 国产亚洲福利一区| 国产综合一区二区| 亚洲国产精品久久久久婷婷884| 久久久视频精品| 欧美日韩精品在线观看| 国语自产精品视频在线看8查询8| 久久国产黑丝| 欧美美女操人视频| 一区二区三区高清| 亚洲乱码日产精品bd| 国产欧美在线看| 欧美激情国产日韩精品一区18| 亚洲欧美精品一区| 欧美aⅴ一区二区三区视频| 欧美日本一道本在线视频| 在线播放精品| 亚洲国产精品高清久久久| 性欧美激情精品| 亚洲国产精品久久久| 欧美日韩网站| 亚洲人永久免费| 玉米视频成人免费看| 国产综合视频| 极品裸体白嫩激情啪啪国产精品| 精品成人在线观看| 亚洲国产婷婷香蕉久久久久久| 国产精品视屏| 午夜精彩国产免费不卡不顿大片| 国产精品一区在线观看你懂的| 日韩午夜av电影| 日韩一区二区高清| 欧美成人一区二区三区在线观看| 久久久精品国产99久久精品芒果| 欧美日韩 国产精品| 欧美区国产区| 国内精品久久久久久| 亚洲第一黄色网| 99视频精品| 国产精品a久久久久| 嫩草成人www欧美| 国产欧美精品在线播放| 国产麻豆视频精品| 日韩午夜高潮| 欧美日韩一级大片网址| 国产一区二区三区四区三区四| 亚洲国产精品一区二区三区| 国产丝袜一区二区三区| 欧美午夜视频在线观看| 狠狠色综合色综合网络| 欧美精品情趣视频| 狠狠综合久久| 亚洲老板91色精品久久| 免费观看一级特黄欧美大片| 欧美日韩一区在线观看| 亚洲第一区色| 国产亚洲一本大道中文在线| 国产精品萝li| 欧美视频精品在线| 韩国精品一区二区三区| 亚洲欧洲精品一区| 亚洲精品久久久久久久久| 亚洲国产精品一区二区www在线| 国产精品综合色区在线观看| 欧美日韩视频在线第一区| 欧美精品日韩精品| 亚洲美女免费精品视频在线观看| 亚洲欧美综合网| 亚洲乱码国产乱码精品精| 亚洲网站啪啪| 国产精品欧美一区二区三区奶水| 欧美14一18处毛片| 中日韩视频在线观看| 亚洲免费成人av| 欧美日韩亚洲三区| 久久黄色级2电影| 欧美在线观看一二区| 久久国产婷婷国产香蕉| 欧美精品日韩综合在线| 久久夜色精品亚洲噜噜国产mv| 国产精品三级久久久久久电影| 国产精品一区免费视频| 国产欧美精品在线观看| 在线观看视频一区二区欧美日韩| 久久精品道一区二区三区| 欧美阿v一级看视频| 欧美日韩国产二区| 久久精品中文字幕一区二区三区| 一区二区精品在线观看| 狠狠v欧美v日韩v亚洲ⅴ| 久久精品视频在线观看| 国产精品久久9| 国产精品日韩欧美| 久久精品国产第一区二区三区最新章节| 亚洲精品视频一区| 日韩午夜一区| 欧美在线播放| 中文av一区特黄| 国产精品一区二区久久国产| 久久婷婷综合激情| 亚洲伦理中文字幕| 国产欧美精品一区二区三区介绍| 欧美在线国产| 国产一区清纯| 99re6热在线精品视频播放速度| 欧美性大战久久久久| 伊人久久亚洲热| 亚洲女性喷水在线观看一区| 欧美wwwwww| 亚洲人成网在线播放| 亚洲国产另类久久精品| 国产精品久久久久国产a级| 欧美国产精品日韩| 亚洲午夜精品久久久久久app| 亚洲天堂偷拍| 日韩亚洲欧美一区二区三区| 久久一本综合频道| 亚洲精品国产精品国自产观看| 亚洲综合大片69999| 精品动漫3d一区二区三区| 99精品久久免费看蜜臀剧情介绍| 国产亚洲欧美色| 欧美激情亚洲自拍| 欧美精品在线一区| 亚洲校园激情| 在线不卡a资源高清| 一卡二卡3卡四卡高清精品视频| 亚洲午夜在线视频| 亚洲免费影院| 国产日韩欧美a| 亚洲午夜在线视频| 国产精品美女主播| 日韩午夜精品视频| 欧美激情在线播放| 欧美人与禽性xxxxx杂性| 亚洲精品乱码久久久久久按摩观| 国内精品久久久久国产盗摄免费观看完整版| 国模私拍一区二区三区| 99成人在线| 一区二区三区久久精品| 亚洲国产中文字幕在线观看| 欧美成人性生活| 狼人社综合社区| 午夜欧美精品| 一区视频在线播放| 欧美性感一类影片在线播放| 亚洲精品国久久99热| 免费成人高清在线视频| 91久久夜色精品国产九色| 亚洲精品乱码久久久久久黑人| 欧美一区二区私人影院日本| 欧美成人免费大片| 在线看片第一页欧美| 欧美精品一区二区三区一线天视频| 免费成人高清视频| 亚洲美女在线国产| 亚洲美女精品成人在线视频| 精品91免费| 最新中文字幕亚洲| 国产一区二区日韩精品欧美精品| 韩国av一区二区三区四区| 亚洲经典视频在线观看| 久久久久久综合网天天| 葵司免费一区二区三区四区五区| 欧美日韩国产在线一区| 狠狠色综合播放一区二区| 久久久www| 亚洲线精品一区二区三区八戒| 免费视频一区| 国产九九精品视频| 亚洲娇小video精品| 欧美日韩一区二区三区免费| 麻豆精品在线播放| 一色屋精品视频在线观看网站| 国产一区二区三区观看| 欧美激情在线有限公司| 欧美亚洲综合久久| 最新国产乱人伦偷精品免费网站| 久久精品国产一区二区三区免费看| 一本一道久久综合狠狠老精东影业| 黄色成人在线| 国产精品女人毛片| 亚洲级视频在线观看免费1级| 久久久久久综合网天天| 欧美日韩中文字幕精品| 久久精品91| 最新国产拍偷乱拍精品| 国产精品成人av性教育| 伊人久久婷婷| 欧美成人精品在线| 免费成人高清在线视频| 亚洲国产成人av好男人在线观看| 亚洲女同精品视频| 欧美怡红院视频| 欧美香蕉大胸在线视频观看| 久久夜色精品国产亚洲aⅴ| 狠久久av成人天堂| 亚洲国内精品在线| 欧美人成网站| 99re8这里有精品热视频免费| 99天天综合性| 欧美日韩无遮挡| 欧美综合77777色婷婷| 久久九九有精品国产23| 亚洲欧洲午夜| 久久人人看视频| 久久在线精品| 国产精品免费福利| 美腿丝袜亚洲色图| 亚洲高清毛片| 欧美精品久久99久久在免费线| 午夜精彩国产免费不卡不顿大片| 亚洲一区成人| 国产免费一区二区三区香蕉精| 亚洲一区二区三区中文字幕在线| 欧美特黄视频| 国产亚洲欧美一区二区| 亚洲第一黄网| 国产精品美女一区二区在线观看| 国产精品sm| 欧美国产综合一区二区| 国产视频一区二区三区在线观看| 国产精品激情电影| 欧美精品一区三区| 亚洲性夜色噜噜噜7777| 国产伦精品一区二区三区免费| 亚洲国产日韩欧美在线动漫| 国产日产欧美精品| 一区二区三区精品视频| 亚洲毛片一区二区| 免费精品99久久国产综合精品| 欧美大尺度在线观看| 91久久精品日日躁夜夜躁国产| 一二三区精品福利视频| 亚洲成在人线av| 一本大道久久精品懂色aⅴ| 久久九九99视频| 国产精品第十页| 久久久久久香蕉网| 欧美日韩天天操| 中文日韩在线| 一本色道久久加勒比88综合| 一个人看的www久久| 国户精品久久久久久久久久久不卡| 久久精品国亚洲| 国产精品久久久久久超碰| 国产午夜亚洲精品理论片色戒| 欧美天堂亚洲电影院在线观看| 欧美人交a欧美精品| 在线免费观看日本欧美| 韩国亚洲精品| 午夜精品成人在线视频| 国产欧美一区二区精品仙草咪| 老司机aⅴ在线精品导航| 国产香蕉97碰碰久久人人| 国产美女精品视频免费观看| 性欧美xxxx大乳国产app| 裸体歌舞表演一区二区| 亚洲女同精品视频| 亚洲一区二区三区四区在线观看| 亚洲高清视频一区二区| 亚洲资源av| 精品动漫3d一区二区三区免费| 亚洲国产高清在线| 国产欧美日韩| 最新国产拍偷乱拍精品| 国产精品日韩欧美一区| 亚洲精品影视在线观看| 99精品热视频只有精品10| 亚洲欧美久久久久一区二区三区| 亚洲午夜久久久久久久久电影网| 久久久蜜桃一区二区人| 欧美日本亚洲视频| 欧美1级日本1级| 亚洲国产精品成人| 黄色另类av| 欧美日韩一区二区三区四区五区| 久久精品日韩一区二区三区| 伊人久久大香线| 免费91麻豆精品国产自产在线观看| 两个人的视频www国产精品| 国产精品任我爽爆在线播放|