孫正鳳,井娥林,竇如鳳
(南京理工大學泰州科技學院電子電氣工程學院,江蘇泰州225300)
?
基于改進ZigBee路由算法的智能家居控制系統
孫正鳳*,井娥林,竇如鳳
(南京理工大學泰州科技學院電子電氣工程學院,江蘇泰州225300)
摘要:為實現智能家居遠程控制,指令將經路由器轉發至ZigBee協調節點,并通過ZigBee網絡實現設備的控制。因Cluster-tree算法傳輸時延長,損耗大,對樹型拓撲發現和地址分配機制進行了優化,通過定義組別,選擇合適節點作為中繼節點。若目的節點為源節點的鄰節點,則將數據傳送至目的節點,否則創建目的節點的組別,選擇合適的中繼節點。仿真表明,當節點數越多時,改進的算法可減少30%的能耗,并隨時間的增長,死亡節點數將降低10%,有效地均衡了網絡負載。
關鍵詞:智能家居;Cluster-tree算法;中繼節點;死亡節點數;網絡負載
智能家居已然成為未來家居生活的發展方向,旨在為用戶提供一種服務,使用戶可對家用電器設備進行遠程控制和管理功能,并可實時查看家居狀態。楊恢先[1]等人以ARM920T嵌入式處理器S3C2440A為核心,結合ZigBee與Wi-Fi融合的通信技術,實現了家庭遠程監控、家庭安防和家電控制的個性化需求。戴敏[2]等人基于ZigBee技術,利用PIC18LF4620單片機和無線低功耗模塊CC2420,實現了家庭網絡中主節點與終端節點之間的通信。
隨著大數據時代的來臨,路由器作為家庭網絡的唯一入口和出口,也越來越受到眾多重視。本文提出了一種新的智能家居遠程控制方案:以路由器作為媒介,將APP中的控制命令轉發至與路由器通信的家庭智能網關中,并通過ZigBee網絡協議,實現終端設備的遠程控制。為解決Cluster-Tree算法所造成的分組傳輸延時增加,通信流量的不均衡問題,Dhirendra Pratap Singh[4]等人在Grey模型的基礎上,通過Grey模型使得節點除了具備采集信息功能外,還能預測其數值,當發送數據時,如果采集到的值與預測值相差不大時,則不需要發送數據,直接使用預測值。否則將通過ZigBee路由節點發送數據。YooRi Hong[5]等人在路由請求分組(RREQ)的基礎上選擇一個節點在當中存儲一個路由表,記錄從自身到匯聚節點的最新路由。用H節點來響應路由請求要求,減少路由表的冗余量。在上述的算法中,需要每個節點都有較強的處理能力,這樣會容易使得單個節點過早的死亡。為解決上述問題,本文對Cluster-Tree算法進行了改進:一方面對樹型網絡拓撲發現和地址分配機制進行了優化,另一方面將一些與目的節點距離一定跳躍數的節點定義為一個組別,并從這些節點中選擇合適的節點作為中繼節點,從而最終進行路由的選取,與Cluster-Tree算法相比,改進后的算法能夠有效地減少了路由的損耗,延長設備的使用壽命。該系統在自動化、智能化的安防以及環境監控中有廣闊的應用前景。
本系統從邏輯上可分為3大部分:安裝管理APP的遠程管理設備(如智能手機,平板等)、路由器和用于智控通信的網關組成的現場控制設備以及功能實現的家庭終端設備。系統的總體設計框圖如圖1所示。

圖1 系統總體設計框圖
通過云服務器,將APP賬號與路由器進行綁定,確保家庭中的路由器能接收到所綁定賬號發送的控制指令,當路由器接收到APP發出的控制命令時,將轉發至智能網關,網關一方面將信息進行存儲,一方面分析接收到的數據信息,并以自定義的通信協議發送至網關上的ZigBee協調節點中。最后通過Zig?Bee網絡將命令發送至安裝在電器設備上的ZigBee終端節點上,來實現該設備的遠程控制。此外,為了延長設備的使用壽命,有效減少路由損耗,本文對原有的ZigBee路由算法也進行了一系列改進。
2.1智能網關的軟件設計
系統軟件設計主要由兩部分部分組成:智能網關的程序設計以及位于網關上的ZigBee協調節點的程序實現。為保證每一個APP賬戶將指令準確發送至相應的路由器中,需要將APP賬號與路由器的mac地址在服務器中進行綁定。當路由器接收到服務器轉發的APP信息時,通過send_to_gateway()函數將數據發送至網關的1000端口。智能網關一方面將會對數據進行存儲,另一方面將會對數據進行解析,并將解析后的數據傳輸給該網關上的ZigBee協調節點,該ZigBee協調節點通過ZigBee網絡協議,將命令發送至相應的終端節點。具體步驟如圖2所示:

圖2 網關工作流程圖
當網關工作時,會自動運行后臺進程:監聽網關的1 000端口,判斷是否接收到遠端控制信息。當網關接收到的數據格式為smartfamily*******時,首先網關將對接收到的數據進行解析,例如當接收的數據為‘smartfamily00temp23modelheatingwindstrongffff’時,即空調的溫度為23度,模式加熱,風速高風。并將解析的結果按固定格式存入網關的數據庫中,最后通過232串口將傳輸至網關上的ZigBee協調節點,協調節點通過ZigBee協議最終將數據發送至安裝在空調上的ZigBee終端節點上,實現空調的遠程控制。
2.2ZigBee協調節點軟件實現
根據不同的網絡功能,ZigBee網絡中的節點可以分為中心協調器(Coordinator)、路由節點(Router)和終端節點(End Device)。中心協調器是網絡的中心節點,負責發起建立新的網絡、設定網絡參數、管理網絡中的節點以及存儲網絡中的節點信息等。而路由節點則參與路由發現、消息轉發等。
電器設備上的ZigBee終端節點通過讀取Zig? Bee協調節點發送的的命令頭來判斷操作何種設備,并根據數據緩沖區的數據來判斷對電器設備進行何種操作。其自定義的具體網關命令如下所示:

命令頭區代表的是何種電器設備,地址區為安裝在電器設備上ZigBee終端模塊的地址,數據區存放的數據表示操作的對該電器設備做何種操作,并且通過檢驗和來判斷所有數據接收是否正確。例如當需要將空調設置為加熱模式,風速為強風,溫度為30時,所對應的命令格式如下:

協調節點的具體工作流程如圖3所示。

圖3 ZigBee協調節點工作流程圖
在本文的智能控制無線網絡工作過程中,ZigBee協調器會定時檢測是否有數據接收,用來轉發相應的終端控制命令。當ZigBee協調器處于空閑工作狀態下時,會監聽無線信號,判斷是否有新的終端節點加入網絡。如果有的話,協調節點會為其分配網絡地址。
ZigBee網絡層主要實現網絡的組建,并為新加入網絡的節點分配地址、路由發現及路由維護等功能。ZigBee樹型拓撲結構包含一個協調器和若干個路由節點和終端節點,協調器連接一系列的路由節點和終端節點,若協調器的子節點為路由節點,則可以連接一系列的終端節點和路由節點,由于樹型拓撲結構網絡覆蓋范圍廣,所以在本系統中,Zig?Bee網絡將采用該拓撲結構。
3.1Cluster-Tree算法分析
Cluster-Tree(簇-樹)結構主要適用于節點靜止或移動較少的場合。Cluster-Tree算法是一種基于網絡地址分配機制、消息沿著樹型拓撲進行傳輸的靜態路由算法,且不需要存儲路由表。在ZigBee網絡中,每個設備都有一定的地址空間可分配給子節點。新加入網絡的節點與其媒介節點將會形成父子關系,每個父節點都會為其新加入的子節點分配一個網絡中唯一的網絡地址,且不需要存儲路由表,無初始延遲,有一定的錯誤冗余和自我修復能力。通過Cluster-Tree算法,節點可直接將數據轉發到下一跳。由于沒有涉及到路由的發現與路由表的維護,大大減少了路由協議的控制開銷和節點的能量消耗。
3.2Cluster-Tree算法改進
3.2.1網絡拓撲發現和地址分配優化
在樹路由算法中,大多都采用分布式地址分配機制,但是受子節點數,具有路由功能的子節點數的最大值以及樹型拓撲結構最大深度值的限制,在進行數據傳輸時,分布式地址分配機制會產生大量的地址浪費,從而導致節點能耗過大,過早的發生死亡。因此,本文在prim算法基礎上,對樹型網絡拓撲發現和地址分配機制進行了優化,通過在相鄰節點之間建立網絡連接發現一個擁有最少分支節點的生成樹,并根據自定義的目標函數確定代價最低的頂點。不同于prim算法,在此算法中,選取局部最大邊作為網絡連接。
節點通過定時的發送HELLO信息報告發現其相鄰節點,當相鄰節點接收到信息報時,節點作出響應。當一個節點為父節點的子節點時,開始在此節點的物理地址在相鄰節點內尋找其他可能存在的子節點,并響應其他子節點的請求。若沒有節點再響應父節點的請求時,節點開始分配地址。當一個節點接受完其子節點向其發送的子樹大小信息時,將會將此信息轉發至其父節點,然后等待其父節點發送的地址塊,并將此地址塊在其子節點之間分配,具體流程如圖4所示。

圖4 網絡拓撲發現
當協調節點接收到網絡最大深度信息時,協調節點開始依次分配地址。當一個節點接收到地址塊[a1,a2]以及有效系數R時,選擇a1作為自身的網絡地址,并將地址塊[a1+1,a1+R]發送至另一節點。而地址塊[a1+R+1,a2]將在此節點的子節點之間分配。當網絡中每個節點都分配到地址時,分配結束。通過這種分配機制,每個節點都可向其父節點發送一條消息,并且每個節點都能接收到其父節點發送來的地址塊。因此用來分配地址的信息數是網絡節點的兩倍,且不會產生地址浪費。
3.2.2 ZigBee路由
ZigBee路由是通過中繼節點中儲存的鄰居表來發現目的地址的,如果目的地址在鄰居表中,則選擇目的節點作為下一路徑。如果目的地址在后代節點中,則選擇子節點或者父節點作為下一路徑。雖然ZigBee路由一定程度上解決了樹路由的冗余問題,但是如果目的節點不在源節點的可傳輸范圍內,首先源節點將會選擇目的節點的父節點作為下一路徑。然后再通過ZigBee路由發現目的節點。但是如果相鄰節點中含有目的節點的父節點的信息,那么將會產生更多的能耗。如圖5所示。

圖5 ZigBee路由
3.2.3路由選擇改進
基于父、子設備的相關概念,將一些與目的節點距離一定跳躍數的節點定義為一個組別:包括目的節點的父、子節點,與目的節點的跳數在Lm范圍之內的節點,以及協調器。算法具體步驟如下:當目的節點的相鄰節點接受路由請求時,通過查找鄰居表發現目的節點。如果目的節點存在的話,直接將數據發送至目的節點。否則首先創建目的節點的組別,若其在相鄰節點的路由表中,則選取其作為下一節點,并且與樹路由算法下的跳躍數相比較,選取所需跳躍數少的算法。若不在路由表中,則使用ZigBee路由算法。
(1)組的建立
首先判斷目的節點是否為協調器,如果目的節點為協調器,首先查找所有與協調器相差一跳的節點。再根據目的節點的子節點,創建目的節點的后代節點表,其內容包括地址,深度以及所擁有的后代設備的個數。如果目的節點不是協調器時,首先創建目的節點的祖先節點的表,其內容包括地址,深度及所擁有的后代設備的個數。在一個組別中,每一跳只有一個祖先節點,一直到目的節點。如果發現有后代節點通向目的節點,則根據目的節點的子節點,創建目的節點的后代節點表。
(2)組的選取
如果最后出現很多節點都擁有組時,定義一個能量最小值Pmin[5],初始能量energy,則Pmin=a,t表示網絡運行時間,d表示節點i的深度,a為一特定的系數。作用在于減緩Pmin減少的速度。若節點剩余能量E
3.3改進后算法的仿真
本文采用NS2模擬平臺,將改進后的算法與文獻中的算法路由成本進行比較,驗證改進后算法的改善程度。這里使用總跳躍數即數據包轉發次數來衡量網絡的路由開銷。如圖6可知,改進算法的網絡能耗明顯低于Cluster-Tree算法。當節點數越多時,可供選擇的作為類的中繼節點就越多,能夠減少約30%的能耗,此外隨著運行時間的增長,有的節點由于多次作為轉發節點,能量消耗會很大,會過早的出現死亡節點。

圖6 目的節點數與總跳數
如圖7可知,此改進算法由于避開了剩余能量低的節點,選擇能量多的節點進行數據轉發,避免了有些節點的過早死亡,均衡了網絡的負載,最大化網絡的生存時間。

圖7 死亡節點數的變化曲線
本文的路由器采用的是基于linux系統的智能路由器,該系統具體使用步驟如下:
(1)將路由器接入外部網絡,并使得裝有APP的手機通過無線方式與路由器相連。
(2)點擊進入APP注冊頁面,注冊賬號,使得賬號與路由器的mac地址在服務器中進行綁定。
(3)斷開手機的無線,并打開手機的3 G網絡,重新輸入賬號,進入空調設置界面,設定空調的溫度,模式和風速。如8(a)圖所示
(4)進入網關的管理界面,查看歷史操作記錄,驗證操作是否成功,如8(b)圖所示。
為驗證改進后算法的優越性,本系統的各個節點均采用干電池供電,當使用傳統的Cluster-Tree算法時,通過編寫的自動控制程序測試,發現節點的使用壽命大概為5 d~6 d,若將改進后的路由算法燒入至系統的ZigBee節點中,經測試發現,節點的使用壽命得到顯著提升,在工作約10 d后,同樣的干電池還使電動遙控車連續使用至少5 d。因此,在實際運用中,若使用外接電源對節點進行供電,可有效地為了延長設備的使用壽命,而有效減少路由損耗,節省能源的消耗。

圖8
隨著控制技術、通信技術的發展和人們生活水平的提高,家居智能化正成為國內外研究的熱點。本文利用家中常用的智能路由器與智能網關,將手機APP中的命令通過智能路由器發送至家中的智能網關中,并通過ZigBee網絡,實現終端設備的控制。針對傳統的ZigBee網絡Cluster-Tree路由算法,依據AODVjr算法中路由選擇的相關原理,一方面對網絡拓撲發現以及地址分配機制進行了改進,另一方面將與目的節點有關的一系列節點定義為類,通過將擁有合適類的節點作為中繼節點,選擇最優路徑,從而有效地減少額外的路由開銷,并根據最小剩余能量的設定,使得網絡負載實現均衡在后期,該系統也可延伸至相關的安全監控中去,通過安裝在ZigBee終端節點上特定的傳感器來實時獲取某些環境參數(如煙霧,特殊氣體等)。
參考文獻:
[1]滿莎,楊恢先,彭友,等.基于ARM9的嵌入式無線智能家居網關設計[J].計算機應用,2010,30(9):2541-04.
[2]戴敏,王宜懷,潘啟勇.基于ZigBee技術的智能家居系統設計[J].計算機測量與控制,2013,21(3):0706-03.
[3]謝川. ZigBee中改進的Cluster-Tree路由算法[J].計算機工程,2011,37(7):0115-03.
[4]Dhirendra Pratap Singh,Yash Agrawal,Surender Kumar Soni. En?ergy Optimization in ZigBee Using Prediction based Shortest Path Routing Algorithm[J]. Emerging Trends and Applications in Com?puter Scinece(NCETACS),2012 3 rd National Conference on Computing & Processing(Hardware/Software),2012,978- 1-4577-0748-3.
[5]Hong YooRi,Lee JongHyup,Choi YeoMin,et al. Low Overhead Routing Algorithm for Event Reporting in ZigBee-Based Sensor Networks[J]. Intelligent Sensors,Sensor Networks and Informa?tion Processing,2008. ISSNIP2008. International Conference on Communication,Networking & Broadcasting;Componets,Cir?cuit,Devices & Systems;Computing & Processing(Hardware/ Software);Singal Processing & Analysis,2008,978-1-4244-2957-8.
[6]張小威. ZigBee電路設計及在智能家居中的應用[D].南京:南京郵電大學,2013.
[7]劉新華,李方敏,曠海蘭.無線傳感器網絡中一種能量均衡的分布式成簇算法[J].傳感技術學報,2007,20(11):2465-2469. [8]董亮,張云.陳云化.基于限制廣播的ZigBee分布式動態能量均衡協議[J].傳感技術學報,2014,27(8):1120-1124.
[9]賀玲玲. ZigBee傳感網絡Cluster-Tree改進路由算法研究[J].傳感技術學報,2010,23(9):1303-1307.
孫正鳳(1976-),女,漢族,江蘇泰州人,南京理工大學泰州科技學院教師,碩士,講師,主要從事嵌入式系統開發研究。

Desing of Roof Separation Indicator System Based on ZigBee and Industrial Ethernet Technology
WANG Lifei,WANG Xiaorong*
(Nanjing University of Technology,Automation and Electrical Engineering,Nanjing 210009,China)
Abstract:Aimed at the present mine roof separation indicator that mainly adopts the transmission mode of cable,this method has the disadvantage of inconvenience for installation,high cost and poor flexibility and scalability. Therefore,according to the measurement principle of roof abscission layer and the practical situation of the roadway scene,the author combined ZiggBee and Ethernet on the STM32 processor,applied RT-thread operating system,de?signed an on-line roof separation monitoring system based on ZigBee and Ethernet technology. Mine experiment proves that the measuring range of this system is 0-300 mm,the precision is 2%,and the transmission of partial data of ZigBee is stable and real time,which makes the automatic roof separation and detection convenient.
Key words:roof separation indicator;ZigBee;Ethernet;on-line monitor
doi:EEACC:7200;6210Q10.3969/j.issn.1005-9490.2016.01.042
收稿日期:2015-04-09修改日期:2015-09-02
中圖分類號:TP13
文獻標識碼:A
文章編號:1005-9490(2016)01-0199-06