新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于Android的智能家居遠程控制系統設計

        基于Android的智能家居遠程控制系統設計

        作者: 時間:2014-04-22 來源:網絡 收藏

        摘要:針對遠程控制問題,結合終端設備,設計了一套控制信息對用戶透明的遠程空調控制系統。系統底層控制信息通過基于GSM的短消息方式傳輸,實現了對由6臺空調組成系統的遠程控制。系統采用自定義通信協議,在端討論并實現了兩種接收返回信息方式——BroadcastReceiver和ContentObserver方式,對中的Handler機制進行講解應用。測試結果表明,系統結構設計合理,操作簡單,性能穩定。

        本文引用地址:http://www.104case.com/article/245796.htm

        引言

        遠程控制作為的一種標志性技術,被廣泛應用于各種系統中。本文設計并實現了一種智能家居中遠程空調控制方案。本系統基于Android系統客戶端用戶友好型界面和GSM模塊,屏蔽控制信息傳輸處理細節,客戶端采用控件綁定號碼的方式,用戶只需根據終端Android界面提示,即可完成遠程空調控制。相比于以往方案中GSM模塊采用PDU方式進行通信,用戶端需要手動輸入具體命令的模式,本系統采用text文本方式進行通信,傳輸的控制命令僅為數字即可。

        本文實現了兩種Android應用中接收短消息的方式BroadcastReceiver(廣播接收者)方式和ContentObserver(內容觀察者)方式,采用Hand ler機制將接收到信息顯示,且對安卓中SQLite數據庫的操作進行闡述及應用。本系統通過接收GSM控制消息的基于LPC1766芯片的集中器傳輸控制消息到各個分控制器,可以同時控制6臺空調,每臺空調對應一個分控制器,具體系統控制端架構見圖1。

        ?

        ?

        1 系統控制端設計

        1.1 硬件設計

        本系統采用NXP公司的LPC1766芯片作為集中器的SoC。系統GSM模塊采用華為公司的GTM900-B型號無線模塊,該模塊具有標準的AT命令接口,并提供無線接口用于短消息的收發,且可通過串口通信和嵌入式MCU相連。

        本系統葉GSM模塊和集中器通過串口相連。GTM900-B模塊的串口與LPC1766的UART0相連,具體連接見圖2。

        ?

        ?

        1.2 AT指令

        GTM900-B模塊使用了GSM Rec.07.07中規定的標準AT命令,本系統需要使用到的AT命令如表1所列。

        ?

        ?

        1.3 通信協議

        本系統主要通過GSM短消息的方式完成對每個房間的溫度獲取(通過分控制器上的溫度傳感器)和每個房間空調工作模式、溫度的設置,以及關閉房間空調的功能。從安卓終端的角度包括兩個方面的通信——發送和接收。

        從安卓終端發送到GSM模塊的控制信息包括三個方面:獲取溫度值,設置某個房間空涮參數,關閉某個房間李調。GSM模塊采用text方式通信,系統將發送的三種控制信息數字化為相同規格:

        ?

        一種Android端智能家居遠程控制方案的實現

        ?

        其中Sent1表示控制信息類型:“1”表示獲取溫度,“2”表示設置某個房間空調,“3”表示關閉某個房間空調。Sent2表示房間號,取值1~6對應相應房間。Sent3表示當Sent1為“2”時,設置號碼為Sent2的房間空調的工作模式:“1”表示制熱,“2”表示制冷,“3”表示送風,“4”表示除濕。Sent4表示當Sent1為“2”時,設置號碼為Sent2房間的工作溫度。分隔符用冒號表示,主要作為區別控制信息與初始化返回信息的標識符。所以,Android發送端發送的控制信息格式表示為“Sent1:Sent2:Sent3:Sent4”。

        對安卓終端接收的反饋消息也包括三個方面:集中器從分控制器得到的溫度信息,設置某個房間空調成功的返回消息,某個房間空調關閉的返回消息。因為這三種消息長度不一致,處理方式不同,系統只對接收消息的前兩位格式化即可完成系統功能,具體如下:

        ?

        一種Android端智能家居遠程控制方案的實現

        ?

        其中:Rec1表示反饋信息類型:“1”表示溫度信息,“2”表示設置空調返回信息,“3”表示關閉空調返回信息。Rec2表示當Rec1為“2”或“3”時空調返回信息,“1”表示設置或者關閉成功,“0”表示失敗。所以,Android接收端接收的由系統控制端返回的信息中,首先會判斷第1位(即Rec1位),如果是“1”,則表示返回的是各個房間的溫度;如果是“2”,表示的是設置空調(Sent1等于“2”時)的返回消息;如果是“3”,表示的是關閉空調(Sent1等于“3”時)的返回消息;對于Rce1等于“2”或者“3”,再根據Rce2來判斷相應的返回消息狀態。

        1.4 集中器軟件設計

        集中器上的程序主要完成系統模塊和GSM模塊初始化,判斷控制信息類型及作相應的處理,向終端用戶返回消息。具體程序流程見圖3。

        ?

        ?

        其中GucRcvNew=1表示集中器從UART0接收到來自GSM模塊的返回消息,recvfg用來對GSM模塊進行初始化,其初值為0。集中器發送命令at到GSM模塊,如果接收到GSM模塊的“at ok”返回消息,則設置recvfg=1,然后進入switch語句,當recvfg=1時,向GSM模塊發送命令at+cmgf =1,如果返回值為“at+cmgf=1 ok”,設置recvfg=2。當recvfg=2時,向GSM模塊發送命令“at+cnmi=2,2,,1”,如果返回值為“at+cnmi =2,2,,1 ok”,設置recvfg=3,到此GSM模塊初始化結束。如果初始化過程中當集中器發送AT命令后,接收到的不是正確返回值,則設置recvfg=0,重新開始初始化。


        上一頁 1 2 下一頁

        關鍵詞: Android 智能家居

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 永平县| 卓资县| 苏州市| 文化| 金湖县| 岫岩| 宁海县| 玉树县| 六盘水市| 法库县| 青铜峡市| 白水县| 肃南| 三都| 盐山县| 靖州| 闻喜县| 天气| 乌鲁木齐县| 浦江县| 洮南市| 鸡东县| 镇沅| 策勒县| 横山县| 保靖县| 浮山县| 遵义市| 太仆寺旗| 汉沽区| 儋州市| 东城区| 株洲市| 哈巴河县| 来凤县| 龙陵县| 阿瓦提县| 西城区| 赤城县| 邹平县| 湘潭县|