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

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

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

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

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

 智能家居網(wǎng)關(guān)系統(tǒng)的主體流程如圖3所示。系統(tǒng)啟動(dòng)后進(jìn)行設(shè)備的初始化,并且通過XBee模塊采集家居設(shè)備的狀態(tài)信息,如房間的光照強(qiáng)度、火災(zāi)報(bào)警器信息等。采集數(shù)據(jù)后通過Netduino Plus板載的網(wǎng)口,通過HTTP協(xié)議發(fā)送信息到Pachube,同時(shí)監(jiān)聽從Pachube發(fā)送的指令。如果接收到控制指令則啟動(dòng)設(shè)備控制模塊,發(fā)送指令給智能家居設(shè)備執(zhí)行,同時(shí)網(wǎng)關(guān)進(jì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 遠(yuǎn)程控制端設(shè)計(jì)
 遠(yuǎn)程控制端基于Android系統(tǒng)進(jìn)行設(shè)計(jì),主要有兩個(gè)功能,一是從Pachube接收智能家居網(wǎng)關(guān)發(fā)送的設(shè)備信息(包含空調(diào)的溫度、燈光的亮度等),同時(shí)判斷獲取的信息與上一次獲取的信息是否相同。如果不同,則顯示信息,并采用AChartEngine進(jìn)行圖形化的顯示;如果相同,則再次從Pachube接收信息。二是發(fā)送遠(yuǎn)程控制指令給智能家居網(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,遠(yuǎn)程控制端獲取指令執(zhí)行情況信息,并顯示指令執(zhí)行是否成功。遠(yuǎn)程控制端系統(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è)計(jì)了一種基于Android和Pachube的智能家居遠(yuǎn)程監(jiān)控系統(tǒng),基于Netduino Plus的智能家居網(wǎng)關(guān)對(duì)整個(gè)家居系統(tǒng)進(jìn)行控制,同時(shí)提供了遠(yuǎn)程訪問的功能,通過ZigBee網(wǎng)絡(luò)進(jìn)行設(shè)備的控制和信息的傳送,基于Android系統(tǒng)設(shè)計(jì)遠(yuǎn)程控制端通過Pachube和智能家居網(wǎng)關(guān)通信。此外,本系統(tǒng)的可擴(kuò)展性強(qiáng),可以將Pachube嵌入到網(wǎng)站中,不同操作系統(tǒng)的智能終端可以通過訪問網(wǎng)站實(shí)現(xiàn)對(duì)智能家居的監(jiān)控,這也是本系統(tǒng)進(jìn)一步研究的方向。
參考文獻(xiàn)
[1] 余熾業(yè).一種智能家居遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)[J].電測(cè)與儀表,2011,48(542):36-39.
[2] 郭淵博,楊奎武.ZigBee技術(shù)與應(yīng)用-CC2430設(shè)計(jì)、開發(fā)與實(shí)踐[M].北京:國防工業(yè)出版社,2010.
[3] 吳文忠,李萬磊.基于ARM和ZigBee的智能家居系統(tǒng)[J].計(jì)算機(jī)工程與設(shè)計(jì),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].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(11):2473-2476.
[8] 張魏,李卉.Android移動(dòng)應(yīng)用開發(fā)從入門到精通[M].北京:人民郵電出版社,2010.

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