亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種基于云服務(wù)及ZigBee技術(shù)的智能家居系統(tǒng)及其設(shè)計方法

文檔序號:9600889閱讀:350來源:國知局
一種基于云服務(wù)及ZigBee技術(shù)的智能家居系統(tǒng)及其設(shè)計方法
【專利說明】一種基于云服務(wù)及ZigBee技術(shù)的智能家居系統(tǒng)及其設(shè)計方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及一種基于云服務(wù)及ZigBee技術(shù)的智能家居系統(tǒng)及其設(shè)計方法,屬于計算機應(yīng)用技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]目前,智能家居系統(tǒng)尚未走進千家萬戶,且現(xiàn)階段真正采用的智能家居系統(tǒng)仍然是以總線布置的形式,對于已經(jīng)裝修完畢的用戶來說,采用智能家居系統(tǒng)既浪費資源,又不方便用戶的住宅使用,且大多數(shù)的無線系統(tǒng)均采用W1-Fi模式,對于網(wǎng)絡(luò)及信道具有一定的干擾性。因而,在此基礎(chǔ)上采用ZigBee (即:紫蜂協(xié)議)這樣一個輕型的無線組網(wǎng)機制是非常之便攜的,且其價格也十分低廉,即使是已經(jīng)裝修過的用戶也完全可以承受地起。再者,現(xiàn)今的芯片技術(shù)發(fā)達,云服務(wù)遍地都是,這給了智能家居系統(tǒng)有了更廣闊的空間,智能家居家庭網(wǎng)關(guān)核心芯片完全可以采用支持Android系統(tǒng)的芯片,為用戶提供更好的交互。
[0003]現(xiàn)今ZigBee協(xié)議棧主要解決的是自動組網(wǎng)問題,只要幾個ZigBee中有協(xié)調(diào)者、終端節(jié)點或者是路由節(jié)點,且所使用的信道相同,那么ZigBee就可以自動組網(wǎng),然而這些個ZigBee僅僅是組成了一個網(wǎng)絡(luò),而真正想通過一個協(xié)調(diào)者去控制某一個節(jié)點,仍然存在著很大的問題?,F(xiàn)今的智能家居大多仍然還是以本地操作為主,用戶只要出了門,便不能進行控制。且家庭網(wǎng)關(guān)僅僅就只能用于控制智能家居系統(tǒng),缺乏可拓展性,且用戶的交互也不是非常理想,本發(fā)明的系統(tǒng)就是為了解決ZigBee不能定向控制節(jié)點,無法實現(xiàn)遠程控制。而本發(fā)明能夠很好地解決上面的問題。

【發(fā)明內(nèi)容】

[0004]本發(fā)明目的在于提供了一種基于云服務(wù)及ZigBee技術(shù)的智能家居系統(tǒng)及其設(shè)計方法,該系統(tǒng)主要以Apache云服務(wù)為數(shù)據(jù)中心,家庭網(wǎng)關(guān)控制或接收來自ZigBee協(xié)調(diào)者的命令,并通過解析命令將設(shè)備狀態(tài)記錄后,發(fā)送至云服務(wù)器上,手機客戶端獲取HTTP請求后得到家庭網(wǎng)關(guān)的狀態(tài),客戶端也可以發(fā)送相關(guān)命令到云服務(wù)器上,家庭網(wǎng)關(guān)做相應(yīng)解析進行ZigBee節(jié)點控制的智能家居系統(tǒng),該系統(tǒng)解決了 ZigBee定點控制,遠程控制等問題。
[0005]本發(fā)明解決其技術(shù)問題所采取的技術(shù)方案是:一種基于云服務(wù)及ZigBee技術(shù)的智能家居系統(tǒng),該系統(tǒng)包括家庭網(wǎng)關(guān)模塊、服務(wù)器模塊和手機客戶端模塊。數(shù)據(jù)是通過W1-Fi無線網(wǎng)進行傳輸,而其相關(guān)的協(xié)議均是采用http協(xié)議。
[0006]家庭網(wǎng)關(guān)模塊的功能是:采集設(shè)備的所有信息,其中包含:溫度檢測模塊、光強檢測模塊、繼電器控制模塊,智能插座模塊,而這些模塊統(tǒng)一在ZigBee終端上,然后會將這些模塊上測得的數(shù)據(jù)通過ZigBee協(xié)議棧發(fā)送給ZigBee協(xié)調(diào)者;所述的ZigBee終端有多個,然后ZigBee協(xié)調(diào)者通過串口與S5PV210處理器進行數(shù)據(jù)解析得到相應(yīng)的狀態(tài),顯示在家庭網(wǎng)關(guān)的界面上,最后通過W1-Fi無線網(wǎng)將數(shù)據(jù)發(fā)送到服務(wù)器;
[0007]服務(wù)器模塊的功能是:獲取家庭網(wǎng)關(guān)模塊的所有的狀態(tài)信息,并將其保存;
[0008]手機客戶端模塊的功能是:獲取上述模塊的相關(guān)數(shù)據(jù),即:包含服務(wù)器模塊中所有的信息,點擊登陸,輸入正確密碼即可進入控制界面。
[0009]本發(fā)明還提供了一種基于云服務(wù)及ZigBee技術(shù)的智能家居系統(tǒng)的設(shè)計方法,該方法建立ZigBee網(wǎng)絡(luò)映射表,云服務(wù)監(jiān)聽及NDK監(jiān)聽,包括如下步驟:
[0010]步驟1:配置ZigBee的網(wǎng)絡(luò)傳輸模式,ZigBee協(xié)調(diào)者中建立一個空的網(wǎng)絡(luò)映射表即一個數(shù)組用于存放ZigBee節(jié)點所發(fā)送的網(wǎng)絡(luò)地址信息;
[0011]步驟2:節(jié)點發(fā)送自身短地址與協(xié)調(diào)者進行綁定返回相關(guān)應(yīng)答這樣一個網(wǎng)絡(luò)映射表建立完成;
[0012]步驟3:建立ZigBee的命令體系,發(fā)送相關(guān)命令即可對相關(guān)節(jié)點及硬件控制;
[0013]步驟4:為了 ZigBee協(xié)調(diào)者與家庭網(wǎng)關(guān)進行數(shù)據(jù)通訊,需要使用NDK進行通訊與監(jiān)聽ZigBee協(xié)調(diào)者回傳的數(shù)據(jù)與發(fā)送相關(guān)數(shù)據(jù);
[0014]步驟5:為了建立遠程連接,必須建立一個Web服務(wù)器,通過這個Web服務(wù)器與家庭網(wǎng)關(guān)、手機客戶端進行相關(guān)的數(shù)據(jù)傳遞,通過HTTP請求傳遞數(shù)據(jù)以實現(xiàn)數(shù)據(jù)同步與狀態(tài)同步,當(dāng)然手機客戶端也可以與服務(wù)器通信,遠程控制家庭網(wǎng)關(guān),然后通過家庭網(wǎng)關(guān)來控制相關(guān)的節(jié)點;
[0015]步驟6:手機客戶端創(chuàng)建,然后其與服務(wù)器上的所有數(shù)據(jù)進行全面的同步。手機可以發(fā)送相關(guān)的命令到服務(wù)器上,家庭網(wǎng)關(guān)在監(jiān)聽串口上的ZigBee上,同時監(jiān)聽服務(wù)器的命令,該命令來自步驟5中的命令發(fā)送接口。至此該系統(tǒng)搭建完畢。
[0016]進一步的,上述本發(fā)明的步驟1包括:
[0017]步驟1-1,在TI所提供的ZigBee協(xié)議桟的SampleApp.c文件中找到結(jié)構(gòu)體afAddrType_t,并申明一個點對點發(fā)送的結(jié)構(gòu)體,設(shè)置其發(fā)送的目標(biāo)為SAMPLEAPP_ENDPOINT,即發(fā)送給終端,同時設(shè)置發(fā)送目標(biāo)地址為Oxffff,即發(fā)送給所有的終端節(jié)點。
[0018]步驟1-2,建立映射表
[0019]通過在SampleApp.c文件中新建一個二維數(shù)組,該數(shù)組第一維代表房間號,第二維代表節(jié)點設(shè)備號,其具體的格式如下:
[0020]uintl6Routing_Table[R00M_C0UNT][DEV_C0UNT] = {0};
[0021]所述的R00M_C0UNT表示房間數(shù)量,即ZigBee的個數(shù);DEV_C0UNT房間中有多少設(shè)備控制。
[0022]進一步的,上述本發(fā)明的步驟2包括:
[0023]步驟2-1,發(fā)送本地節(jié)點短地址給協(xié)調(diào)者,首先建立一個4字節(jié)大小的數(shù)組,終端節(jié)點會將’ m’,房間號(R00M_NUM),設(shè)備號(DEV_NUM),’ g’這4個數(shù)據(jù)存入該數(shù)組中,設(shè)置網(wǎng)絡(luò)發(fā)送目標(biāo)地址0x0000,即只發(fā)送給協(xié)調(diào)者,將這個數(shù)組通過AF_DataReqUeSt的函數(shù)進行傳遞,在AF_DataRequest函數(shù)中傳入步驟1中申明的結(jié)構(gòu)體名,添加網(wǎng)絡(luò)的輪回任務(wù)號,該數(shù)組的大小4以及該數(shù)組的數(shù)組名,讓AF_DataRequest函數(shù)能夠準(zhǔn)確傳達相關(guān)信息。
[0024]步驟2-2,協(xié)調(diào)者回應(yīng)網(wǎng)絡(luò)應(yīng)答,申明一個int型的變量,當(dāng)協(xié)調(diào)者接收到來自終端節(jié)點的數(shù)據(jù)后,首先會進行解析判斷,分析接收到的數(shù)據(jù)第一個是否為’ m’,最后一個是否為’ g’以及發(fā)送的源地址是否為空,如果判斷不正確,節(jié)點自帶的LED1會熄滅,如果判斷正確,節(jié)點自帶的LED1會亮,然后將發(fā)送的源地址賦值到變量中,在步驟1中映射表中將第一維定義為步驟2-1中的房間號(R00M_NUM),即接收數(shù)據(jù)的第二位,將第二維定義為步驟2-1中的設(shè)備號(DEV_NUM),即接收數(shù)據(jù)的第三位,然后將該變量存入在這個位置的數(shù)組,這樣映射表已經(jīng)建立起來了,當(dāng)然為了更加準(zhǔn)確地進行組網(wǎng),協(xié)調(diào)者仍然需要告訴終端,入網(wǎng)成功。因此,協(xié)調(diào)者會將’ r’,0,0,’ a’這4個數(shù)據(jù)存入步驟2-1申明的數(shù)組中,并將設(shè)置網(wǎng)絡(luò)發(fā)送的短地址為上面所提變量,使用步驟2-1中的方法發(fā)送給相關(guān)的終端節(jié)點。
[0025]步驟2-3,終端處理入網(wǎng)應(yīng)答,當(dāng)終端節(jié)點接收到來自協(xié)調(diào)者的數(shù)據(jù)后,首先會進行解析判斷,分析接收到的數(shù)據(jù)第一個是否為’ r’,最后一個是否為’ a’以及發(fā)送的源地址是否為0x0000 (協(xié)調(diào)者地址),如果判斷不正確,節(jié)點自帶的LED1會熄滅,如果判斷正確,節(jié)點自帶的LED1會亮,這樣節(jié)點也知道了自己是否入了網(wǎng)。
[0026]進一步的,上述本發(fā)明的步驟3包括:在ZigBee上面制定好所有命令體系,提供相關(guān)命令發(fā)送接收機制與命令的解析機制。通過這些相關(guān)的命令達到協(xié)調(diào)者與節(jié)點的查詢、控制等功能。該命令的模型包含幀頭、命令類型、命令控制的類型、命令值、房間號、設(shè)備類型、設(shè)備號。而進行控制和查詢的操作需要對設(shè)備進行I/O初始操作、定義動作、設(shè)置狀態(tài)機。
[0027]進一步的,上述本發(fā)明步驟3實現(xiàn)包括以下步驟:
[0028]步驟3-1,建立ZigBee的命令體系,首先建立一個命令體系框架,這個框架分別是CmdFlag,CmdType,CmdCtrlType, CmdCtrlValue, CmdRoomld, CmdDevType, CmdDevId 這 7 個16進制的數(shù),這些16進制數(shù)分別代表:幀頭,命令類型,命令控制的類型,命令值,房間號,設(shè)備類型,設(shè)備號。這個框架是協(xié)調(diào)者針對不同控制命令出發(fā)不同功能的整體框架,而其中幀頭為0X7f,如果幀頭錯誤代表無法識別,該條命令失效,而命令類型有:斷開連接0x00,查詢請求0x01,查詢應(yīng)答0x02,控制請求0x03,控制應(yīng)帶0x04,當(dāng)需要斷開對設(shè)備的鏈接就在命令類型輸入0x00,而當(dāng)發(fā)送查詢請求時,如果查詢成功,節(jié)點發(fā)送的命令在命令類型中會指定為查詢應(yīng)當(dāng),如果查詢失敗,節(jié)點發(fā)送的命令在命令類型上會直接發(fā)送0x6f,代表查詢失??;而命令操作類型有:打開0x00,關(guān)閉0x01,寫0x02,讀0x03,當(dāng)需要對相關(guān)的設(shè)備進行操作的時候就需要知道設(shè)備需要做什么工作,命令操作類型就是指定設(shè)備需要執(zhí)行什么動作,比如在讀取溫度傳感器的溫度的時候,就需要才用讀操作,因此在命令操作類型需使用0x03 ;而房間號有:客廳0x00,臥室0x01,廚房0x02,注意在這里并不一定只要這三個房間,針對于不同情況可以添加和刪減相關(guān)的房間號,這些房間號有助于協(xié)調(diào)者能夠迅速找到設(shè)備節(jié)點;而設(shè)備類型有:燈0x00,窗簾0x01,溫度0x02,光線強度0x03,煙霧0x04,輸出預(yù)留0x07,輸入預(yù)留0x08,這個設(shè)備類型的定義保證了一個終端節(jié)點可以控制或者讀取多個外設(shè)的設(shè)備,通過設(shè)備類型能夠讓協(xié)調(diào)者去調(diào)動相關(guān)的設(shè)備類型;而設(shè)備號明確了設(shè)備類型中的具體哪個設(shè)備,這樣可以使節(jié)點控制更多的外設(shè)
[0029]步驟3-2,對設(shè)備進行I/O初始化,在cc2530芯片需要對相關(guān)的端口進行設(shè)置,這樣才能使相應(yīng)的I/O 口具備輸出或者輸入,在此列舉輸出與輸入的配置,輸出配置,如設(shè)置P0.0,P0.1,P0.4為輸出時,首先需要配置P0SEL為Oxec,即設(shè)置相應(yīng)的寄存器位為0,然后P0DIR需要設(shè)置為0x13,即設(shè)置相應(yīng)的寄存器位為1,最后設(shè)置相關(guān)I/O 口為P0_0,P0_1,P0_4均為0即可,而輸入設(shè)置,以P1.2為例,首先需要配置P1SEL為Oxfb,即設(shè)置相應(yīng)的寄存器位為0,然后P1DIR需要設(shè)置為Oxfb,即設(shè)置相應(yīng)的寄存器位為0,這樣輸入功能就配置完成了。而且在每一個1/0配置上,設(shè)置宏定義,在宏定義判斷過程中,所有的功能都是可以定制。在IAR Embedded Workbench中選擇EndDeviceEB模式,在菜單欄中選擇Project下的Opt1ns,對話框中選擇C/C++Compiler,在Defined symbols將宏定義加入即可定制設(shè)備I/O。
[0030]步驟3-3,定義相關(guān)的動作,通過命令分析,在狀態(tài)機中調(diào)用相關(guān)的動作,即可完成對終端節(jié)點的控制,定義相關(guān)的動作均都通過相應(yīng)的宏定義來實現(xiàn),以燈為例,燈設(shè)備的1號燈的開啟宏定義為DEV_LIGHT1_0PEN(),其宏定義的內(nèi)容“為do{P0_0 = 1 ;}while (0); ”,該內(nèi)容表示將在步驟3-2中設(shè)置好的I/O 口 P0_0端口置為1,這樣就形成了輸出高電平點亮小燈的作用信號,而同樣的,燈設(shè)備的1號燈的關(guān)閉宏定義為DEV_LIGHT1_CLOSE (),其宏定義的內(nèi)容為“do {P0_0 = 0 ;} while (0); ”,該內(nèi)容表示將在步驟3_2中設(shè)置好的1/0 口 P0_0端口置為0,這樣就形成了輸出低電平熄滅小燈的作用信號,當(dāng)然在此過程需要進行查詢的功能,因此需要直接對P0_0進行查詢,那么就需要定義燈1的1/0 口,SP宏定義為DEV_LIGHT1_BIT,該宏定義內(nèi)容為“(P0_0) ”。同理其他所有外設(shè)的動作均可采用燈1的模式,只不過是相應(yīng)的1/0 口
當(dāng)前第1頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1