《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于Android和Pachube的智能家居遠程監(jiān)控系統(tǒng)設(shè)計
基于Android和Pachube的智能家居遠程監(jiān)控系統(tǒng)設(shè)計
來源:微型機與應(yīng)用2012年第13期
葉紅衛(wèi)
(河源職業(yè)技術(shù)學(xué)院 電子與信息工程學(xué)院,廣東 河源 517000)
摘要: 設(shè)計了一種可遠程控制的智能家居監(jiān)控系統(tǒng),采用XBee模塊組成ZigBee網(wǎng)絡(luò)傳輸智能家居控制網(wǎng)絡(luò),由Netduino plus搭建的家庭網(wǎng)關(guān)實施控制,Android遠程控制端通過Pachube對網(wǎng)關(guān)進行訪問。該系統(tǒng)組網(wǎng)方便,能通過手機遠程監(jiān)控智能家居的運轉(zhuǎn),具有很好的應(yīng)用前景。
Abstract:
Key words :

摘  要: 設(shè)計了一種可遠程控制的智能家居監(jiān)控系統(tǒng),采用XBee模塊組成ZigBee網(wǎng)絡(luò)傳輸智能家居控制網(wǎng)絡(luò),由Netduino plus搭建的家庭網(wǎng)關(guān)實施控制,Android遠程控制端通過Pachube對網(wǎng)關(guān)進行訪問。該系統(tǒng)組網(wǎng)方便,能通過手機遠程監(jiān)控智能家居的運轉(zhuǎn),具有很好的應(yīng)用前景。
關(guān)鍵詞: Android;Pachube;智能家居;XBee

 隨著人們生活品質(zhì)的不斷提高,對智能家居的要求也隨之提高,不再局限于PC終端的控制和信息的傳遞,而要求隨時隨地能夠?qū)χ悄芗揖拥母鞣N信息進行監(jiān)控。隨著3G技術(shù)和各種智能手機的普及,使得智能家居可以通過手機進行控制。同時,2.4 GHz頻段的高通信速率和可兼容性正引起人們的重視,比起其他組網(wǎng)方式,采用2.4 GHz通信正逐步成為家電類產(chǎn)品無線通信發(fā)展的趨勢[1]。
1 系統(tǒng)硬件設(shè)計
1.1 系統(tǒng)結(jié)構(gòu)設(shè)計

 系統(tǒng)整體結(jié)構(gòu)如圖1所示,家居設(shè)備上各種傳感器的信息通過Digi公司的XBee模塊組建的ZigBee網(wǎng)絡(luò)進行傳輸。ZigBee在物理層和媒體訪問控制層采用IEEE 802.15.4協(xié)議,使用帶時隙或不帶時隙的載波檢測多址訪問和沖突檢測(CSMA-CA)的數(shù)據(jù)傳輸方法,并與確認(rèn)和數(shù)據(jù)檢驗等措施結(jié)合,可保證數(shù)據(jù)的可靠傳輸[2]。XBee模塊功耗低,傳輸速率最高可達250 kb/s,支持AT和API command模式,易于配置[3]。智能家居網(wǎng)關(guān)采用Netduino接收ZigBee網(wǎng)絡(luò)傳遞的數(shù)據(jù)進行處理和存儲,Netduino所用的是Atmel的32 bit ARM7,其頻率為48 MHz。Netduino具有1個SPI、I2C、2個UARTs(1個RTS/CTS)、4個PWM和6個ADC,基于微軟的.NET Micro Framework,支持C#和VB.NET進行系統(tǒng)開發(fā)。Netduino的IDE采用Visual Studio,且支持仿真和在線調(diào)試(In-Circuit Debugging),支持事件機制。Netduino Plus直接板載了網(wǎng)絡(luò)模塊和Micro SD卡槽[4-5],如圖2所示。

 智能家居網(wǎng)關(guān)和遠程控制端采用Pachube進行信息的傳遞,可以對智能家居設(shè)備的數(shù)據(jù)進行監(jiān)控,同時,遠程控制端可以發(fā)送指令控制智能家居設(shè)備。Pachube是一種網(wǎng)絡(luò)服務(wù),它幫助你在世界范圍連接和共享來自物體、設(shè)備、建筑和環(huán)境的感應(yīng)裝置實時數(shù)據(jù),并且創(chuàng)建標(biāo)簽。Pachube有一點像YouTube,唯一的不同是它不是共享視頻,Pachube使人們能夠監(jiān)測和共享與互聯(lián)網(wǎng)相連的感應(yīng)裝置的實時環(huán)境數(shù)據(jù)。Pachube可以在不同的環(huán)境之間發(fā)揮作用,既實現(xiàn)了獲得來自遠程感應(yīng)裝置的導(dǎo)入數(shù)據(jù),又實現(xiàn)了為遠程促動器提供輸出數(shù)據(jù)。任何兩個環(huán)境之間可以建立連接,支持點對點、自發(fā)或事先未計劃的連接[6]。遠程監(jiān)控端采用基于Android系統(tǒng)的手機。Android是谷歌公司和開放手機聯(lián)盟(Open Handset Alliance)共同提供的軟件平臺。由嵌入式Linux和Java構(gòu)成的Android系統(tǒng)的架構(gòu)和工作原理決定了它是目前最具可移植性的移動設(shè)備操作系統(tǒng)[7-8]。
1.2 開發(fā)平臺搭建
 開發(fā)平臺的搭建主要包括.NET Micro Framework的安裝和Netduino的硬件平臺的搭建。由于Netduino的IDE采用Visual Studio,要Visual Studio支持Netduino,首先必須安裝.NET Micro Framework和Netduino SDK。目前,最新的.NET Micro Framework和Netduino SDK都是V.4.2.0版本。
智能家居網(wǎng)關(guān)與控制終端通過Internet進行互聯(lián),對Netduino Plus板載的網(wǎng)卡進行初始化的配置,設(shè)置IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)和DNS,同時也支持通過DHCP獲取上述的設(shè)置信息。要在pachube.com上創(chuàng)建存儲智能家居設(shè)備信息和控制指令的Feed及用來訪問對應(yīng)Feed的API key。
2 系統(tǒng)軟件設(shè)計
2.1 網(wǎng)關(guān)設(shè)計

 智能家居網(wǎng)關(guān)系統(tǒng)的主體流程如圖3所示。系統(tǒng)啟動后進行設(shè)備的初始化,并且通過XBee模塊采集家居設(shè)備的狀態(tài)信息,如房間的光照強度、火災(zāi)報警器信息等。采集數(shù)據(jù)后通過Netduino Plus板載的網(wǎng)口,通過HTTP協(xié)議發(fā)送信息到Pachube,同時監(jiān)聽從Pachube發(fā)送的指令。如果接收到控制指令則啟動設(shè)備控制模塊,發(fā)送指令給智能家居設(shè)備執(zhí)行,同時網(wǎng)關(guān)進行設(shè)備數(shù)據(jù)的更新,將更新后的設(shè)備數(shù)據(jù)發(fā)送到Pachube。監(jiān)聽從Pachube發(fā)送的指令的部分代碼如下:

……
//調(diào)用Pachube API的apikey
const string apikey=
"eRJdp_9i9l224rvrRpDN062owfeAkNan0ce_ZE1_21w";
//用于發(fā)送指令的feedId
    const string feedId="49567";
    var requestUri="http://api.pachube.com/v2/feeds/" + feedId + ".csv";
    using (var request=(HttpWebRequest)
WebRequest.Create(requestUri))
         {
           request.Method="GET";
//通過GET形式獲取數(shù)據(jù)
           request.Headers.Add("X-PachubeApiKey", apikey);//添加Pachube API key
           using (var response = (HttpWebResponse)request.GetResponse())
                {
               if (signal)
                    {
                     if(HandleResponse(response))
                   Home_windows1.Write(true);
//拉上房間的窗簾
……
2.2 遠程控制端設(shè)計
 遠程控制端基于Android系統(tǒng)進行設(shè)計,主要有兩個功能,一是從Pachube接收智能家居網(wǎng)關(guān)發(fā)送的設(shè)備信息(包含空調(diào)的溫度、燈光的亮度等),同時判斷獲取的信息與上一次獲取的信息是否相同。如果不同,則顯示信息,并采用AChartEngine進行圖形化的顯示;如果相同,則再次從Pachube接收信息。二是發(fā)送遠程控制指令給智能家居網(wǎng)關(guān)。系統(tǒng)發(fā)送指令到Pachube,智能家居網(wǎng)關(guān)收到控制指令后,將控制指令通過XBee模塊組成的ZigBee網(wǎng)絡(luò)傳遞給設(shè)備執(zhí)行。執(zhí)行完畢后,網(wǎng)關(guān)將指令執(zhí)行情況發(fā)送到Pachube,遠程控制端獲取指令執(zhí)行情況信息,并顯示指令執(zhí)行是否成功。遠程控制端系統(tǒng)流程如圖4所示,發(fā)送控制指令部分代碼如下:

……
    try {
        //調(diào)用Pachube API
      Pachube p = new Pachube
("eRJdp_9i9l224rvrRpDN062owfeAkNan0ce_ZE1_21w");
                    Feed f = p.getFeed(49568);
                    f.updateDatastream(1,ControlCode);
//發(fā)送控制指令
            } catch (PachubeException e) {
                    System.out.println(e.errorMessage);
            }

 


……
 本文設(shè)計了一種基于Android和Pachube的智能家居遠程監(jiān)控系統(tǒng),基于Netduino Plus的智能家居網(wǎng)關(guān)對整個家居系統(tǒng)進行控制,同時提供了遠程訪問的功能,通過ZigBee網(wǎng)絡(luò)進行設(shè)備的控制和信息的傳送,基于Android系統(tǒng)設(shè)計遠程控制端通過Pachube和智能家居網(wǎng)關(guān)通信。此外,本系統(tǒng)的可擴展性強,可以將Pachube嵌入到網(wǎng)站中,不同操作系統(tǒng)的智能終端可以通過訪問網(wǎng)站實現(xiàn)對智能家居的監(jiān)控,這也是本系統(tǒng)進一步研究的方向。
參考文獻
[1] 余熾業(yè).一種智能家居遠程監(jiān)控系統(tǒng)設(shè)計[J].電測與儀表,2011,48(542):36-39.
[2] 郭淵博,楊奎武.ZigBee技術(shù)與應(yīng)用-CC2430設(shè)計、開發(fā)與實踐[M].北京:國防工業(yè)出版社,2010.
[3] 吳文忠,李萬磊.基于ARM和ZigBee的智能家居系統(tǒng)[J].計算機工程與設(shè)計,2011,32(6):1987-1990.
[4] PRISTER C. Getting started with the Internet of things[M].America: O′Reilly Media, Inc, 2011.
[5] WALKER C. Getting started with Netduino[M]. America: O′Reilly Media, Inc,2012.
[6] 歡迎來到Pachube[EB/OL].http://www.pachube.cn/,2012-03-01.
[7] 農(nóng)麗萍,王力虎,黃一平.Android在嵌入式車載導(dǎo)航系統(tǒng)的應(yīng)用研究[J].計算機工程與設(shè)計,2010,31(11):2473-2476.
[8] 張魏,李卉.Android移動應(yīng)用開發(fā)從入門到精通[M].北京:人民郵電出版社,2010.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。