杜永文,練云翔,朱曉陽
(蘭州交通大學 電子與信息工程學院,甘肅 蘭州730070)
無線傳感器網(wǎng)絡(wireless sensor networks,WSNs)[1]作為計算、通信和傳感器三項技術相結合的產(chǎn)物,具有強大的感知能力、計算能力和通信能力。將先進的科技手段融入到農(nóng)業(yè)生產(chǎn)中,提高農(nóng)業(yè)的生產(chǎn)效率、經(jīng)濟效益與環(huán)境效益,這已經(jīng)成為了實現(xiàn)農(nóng)業(yè)現(xiàn)代化的必然發(fā)展趨勢。利用WSNs 技術進行信息采集與管理[2~4],是目前農(nóng)業(yè)信息技術研究的熱點。
在農(nóng)業(yè)應用上的WSNs 是一種特定的WSNs,這種特定的WSNs 不同于隨機分布WSNs,它通常部署在可以觸及的區(qū)域,在固定位置上人工部署傳感器節(jié)點[5]。它采用固定的拓撲結構,這種拓撲結構會形成特定的路由,傳感器節(jié)點通過特定的路由把感知的數(shù)據(jù)收集起來。針對農(nóng)業(yè)應用的特點,本文設計了特定WSNs 的拓撲結構、路由、傳感器節(jié)點、控制端和農(nóng)業(yè)灌溉系統(tǒng)的控制策略。為解決因節(jié)點故障導致的路由鏈路中斷問題,研究了特定WSNs 的路由恢復算法。這種特定WSNs 的路由恢復算法使用Tiny-OS[6,7]系統(tǒng)的仿真器TOSSIM[8]進行了仿真。對這種路由恢復算法和動態(tài)源路由(dynamic source routing,DSR)協(xié)議[9,10]的仿真結果表明:這種路由恢復算法可以實現(xiàn)在節(jié)點損壞的情況下自動恢復路由,而且與具有同樣路由恢復功能的DSR 協(xié)議相比傳輸?shù)陌伲梢杂行Ы档凸?jié)點能耗。
基于WSNs 的灌溉系統(tǒng)包括WSNs、控制端和灌溉系統(tǒng)等三個部分組成。WSNs 由傳感器節(jié)點、路由節(jié)點和匯聚節(jié)點組成。
如圖1,傳感器節(jié)點由CC2530 無線控制器、電池、JWSL—6空氣溫濕度傳感器、GY—2561 光強傳感器、YL—69 土壤濕度傳感器構成。
CC2530 無線控制器內(nèi)包含性能優(yōu)良的低功耗8051 微控制器內(nèi)核、適應2.4 GHz IEEE 802.15.4 的RF 收發(fā)器和A/D 轉換器。JWSL—6 空氣溫濕度傳感器用來測量空氣中的溫度和濕度。GY—2561 光強傳感器用來感知光照強度。YL—69 土壤濕度傳感器負責感知土壤濕度,通過模擬信號輸出土壤濕度的精確值。
圖1 傳感器節(jié)點設計圖Fig 1 Design diagram of sensor node
為了覆蓋整個灌溉區(qū)域,并減少重復覆蓋的情況,傳感器節(jié)點使用人工放置的方式覆蓋灌溉區(qū)域。如圖2,傳感器節(jié)點均勻部署在灌溉區(qū)域,每4 個感知節(jié)點劃分為一簇,簇的中心位置放置路由節(jié)點。
圖2 部署和拓撲圖Fig 2 Deployment and topology diagram
由于路由節(jié)點的傳輸半徑比路由節(jié)點到匯聚節(jié)點的距離小得多,所以,必須通過多跳的方式把環(huán)境信息傳給匯聚節(jié)點。如圖3,路由節(jié)點根據(jù)設計好的路由把環(huán)境信息傳輸給下一個路由節(jié)點,這樣傳輸下去直到環(huán)境信息到達匯聚節(jié)點為止。
圖3 路由設計圖Fig 3 Routing design diagram
2.4.1 路由節(jié)點的路由表設計
每個路由節(jié)點維護著一個路由表,它記錄了本路由節(jié)點所在路由中的上一個路由節(jié)點地址、下一個路由節(jié)點地址和下下個路由節(jié)點的地址。
2.4.2 路由恢復算法的研究
為了解決路由節(jié)點損壞后路由中斷的問題,提出了異常節(jié)點路由恢復(faulty node routing recovery,F(xiàn)NRR)算法。FNRR 算法運行在每個路由節(jié)點中,它可以在一個已建立路由的WSNs 中恢復損壞的路由。在WSNs 部署后,每個路由節(jié)點都保存了下一個路由節(jié)點的地址。
當路由節(jié)點收到上一個路由節(jié)點的數(shù)據(jù)后會保存上一個路由節(jié)點的地址,接著會回復上一個路由節(jié)點一個回復包,回復包中包含下一個路由節(jié)點的地址信息,然后把數(shù)據(jù)轉發(fā)給下一個路由節(jié)點。
當路由節(jié)點收到周圍傳感器節(jié)點采集的數(shù)據(jù)后,會傳輸數(shù)據(jù)給下一個路由節(jié)點,并等待下一個路由節(jié)點返回的回復包。如果收到回復包,就把包內(nèi)的下下個路由節(jié)點的地址保存。如果等待一段時間沒有接收到回復包,就重復發(fā)送數(shù)據(jù),直到第三次沒有收到回復包時,就把路由表中的下一個路由節(jié)點地址位置的內(nèi)容修改為下下個路由節(jié)點地址位置的值,然后清空路由表的下下個路由節(jié)點地址位置的內(nèi)容。
FNRR 算法描述表述如下:
定時發(fā)送線程
{ if(此節(jié)點是路由節(jié)點而不是匯聚節(jié)點)
{ if(累計沒有收到回復包的計數(shù)<3)
{ 累計沒有收到回復包的計數(shù)加1;
}
else
{ 路由表的下一個節(jié)點地址位置存放路由表的下下個節(jié)點的地址;
路由表的下下個節(jié)點的地址位置清空;
累計沒有收到回復包的計數(shù)清零;
}
}
發(fā)送包給下一個節(jié)點;
}
接收數(shù)據(jù)線程
{ if(包的類型是發(fā)送包)
{ 包的源地址保存在路由表的上一個節(jié)點的地址位置中;
向上一個節(jié)點發(fā)送回復包,回復包包含了下一個節(jié)點的地址;
}
else if(包的類型是回復包)
{ 把下下個節(jié)點地址保存在路由表的下下個節(jié)點地址位置中;
累計沒有收到回復包的計數(shù)清零;
}
}
如圖4,當有路由節(jié)點損壞時,路由節(jié)點上的FNRR 算法會讓路由節(jié)點不再與下一個損壞的路由節(jié)點傳輸數(shù)據(jù),而是與損壞的路由節(jié)點的下一個路由節(jié)點傳輸數(shù)據(jù)。
圖4 路由恢復示意圖Fig 4 Diagram of routing recovery
如圖5,控制端由CC2530 無線控制器、S3C2440 處理器、驅動電路、觸摸屏、電源組成??刂贫说奶幚砥鞑捎萌枪镜腟3C2440 處理器??刂贫说臒o線數(shù)據(jù)接收和發(fā)送使用CC2530 無線控制器上的RF 收發(fā)器實現(xiàn)。觸摸屏采用帶觸摸屏接口的4.3 寸LCD/STN 液晶屏。
圖5 控制端硬件結構圖Fig 5 Hardware structure diagram of controller end
3.2.1 控制端軟件環(huán)境
控制端上安裝內(nèi)核版本為Linux—2.6.30.4 的嵌入式Linux 系統(tǒng)。在嵌入式Linux 系統(tǒng)中安裝了Qtopia 軟件平臺,可以運行QT 圖形界面程序。使用者可以通過觸摸屏操作軟件,用觸屏的方式進行人機交互。
3.2.2 控制端軟件設計
通過控制端軟件在控制端的觸摸屏上顯示感知區(qū)域的環(huán)境情況、路由節(jié)點的工作情況等。控制端軟件會把這些信息保存在控制端的嵌入式數(shù)據(jù)庫中??刂贫塑浖鶕?jù)設置好的參數(shù)和灌溉策略自動啟動和關閉灌溉系統(tǒng)。
3.2.3 灌溉策略
當控制端發(fā)現(xiàn)灌溉區(qū)域的土壤濕度低于設定的閾值時開啟灌溉系統(tǒng)。當土壤濕度高于設定的閾值時或當光強度弱、空氣溫度低、空氣濕度高時關閉或不啟動灌溉系統(tǒng)。
本論文提出的FNRR 算法為了與DSR 進行對比,對WSNs 的路由節(jié)點進行了仿真。仿真采用的是TinyOS 操作系統(tǒng)上的仿真器TOSSIM。TinyOS 是針對WSNs 開發(fā)的一套操作系統(tǒng)。TOSSIM 是TinyOS 操作系統(tǒng)上的仿真器,它可以模擬傳感器節(jié)點運行nesC 程序。
仿真過程:將FNRR 算法寫入路由節(jié)點,分別對4,6,8,10 個路由節(jié)點的WSNs 進行仿真。每次仿真都讓一個節(jié)點停止通信,然后讓剩余節(jié)點通過算法恢復路由。用DSR 協(xié)議也在4,6,8,10 個路由節(jié)點的WSNs 中進行同樣的仿真,然后在從建立路由到恢復路由的過程中對這兩種算法傳輸?shù)陌鼣?shù)量進行統(tǒng)計,如圖6 所示。
圖6 包數(shù)量統(tǒng)計圖Fig 6 Statistical graph of packages number
從仿真結果中可以看出:在WSNs 中使用FNRR 算法可以在路由節(jié)點損壞時讓其他路由節(jié)點產(chǎn)生新的路由繼續(xù)傳輸數(shù)據(jù),保持WSNs 的正常工作,并且FNRR 算法在通信使用的包數(shù)量上比DSR 算法更少,這樣節(jié)省了通信消耗的能量。
針對農(nóng)業(yè)應用的特點,本文設計了特定WSNs 的拓撲結構、路由、傳感器節(jié)點、控制端和農(nóng)業(yè)灌溉系統(tǒng)的控制策略。提出了一種特定WSNs 的路由恢復算法,并對這種路由恢復算法進行了仿真和分析。仿真結果表明:這種路由恢復算法傳輸?shù)陌鼣?shù)量比動態(tài)源路由協(xié)議更少,可以有效降低節(jié)點的能耗。
[1] Akyildiz I F,Su W,Sankarasubramaniam Y,et al.Wireless sensor networks:A survey[J].Computer Networks,2002,38(4):393-422.
[2] 王士明,俞阿龍,楊維衛(wèi).基于Zig Bee 的大水域水質(zhì)環(huán)境監(jiān)測系統(tǒng)設計[J].傳感器與微系統(tǒng),2014,33(11):102-105.
[3] 李加念,倪慧娜.基于無線傳感器網(wǎng)絡的小粒種咖啡園滴灌自動控制系統(tǒng)[J].傳感器與微系統(tǒng),2014,33(10):43-46.
[4] 肖克輝.基于無線傳感器網(wǎng)絡的精細農(nóng)業(yè)智能節(jié)水灌溉系統(tǒng)[J].農(nóng)業(yè)工程學報,2010,26(11):170-175.
[5] 朱性偉,王子榮.多深度土壤溫度無線傳感器網(wǎng)絡節(jié)點設計[J].傳感器與微系統(tǒng),2014,33(10):73-79.
[6] 劉 營,于宏毅.基于TinyOS 的無線傳感器網(wǎng)絡應用程序開發(fā)技術[J].傳感器與微系統(tǒng),2007,26(3):93-96.
[7] 夏靜清,張 榮.P—TOSSIM:一個基于TinyOS 傳感器網(wǎng)絡的任務調(diào)度仿真程序[J].計算機應用,2005,25(12):2968-2970.
[8] 孫發(fā)軍,吳 昊.一個基于TOSSIM 的異構傳感器網(wǎng)絡仿真方案[J].計算機仿真,2007,24(10):126-129.
[9] 莊春梅,王利利,陸建德.DSR 協(xié)議的路由緩存策略[J].計算機工程,2010,36(2):100-101.
[10]黃 偉,李臘元,孫 強.MANET 路由協(xié)議DSR 的OPNET 實現(xiàn)及仿真[J].武漢理工大學學報,2005,29(2):182-185.