李 丹,孫利新,戴 巍,王霓虹
(1.東北林業(yè)大學信息與計算機工程學院,150040哈爾濱;2.哈爾濱工程大學計算機科學與技術學院,150001哈爾濱)
近年來,隨著電子信息技術的提高,嵌入式技術得到了飛速發(fā)展.由于嵌入式微處理器具有體積小、可靠性高、功能強、靈活方便等優(yōu)點,其應用已深入到工業(yè)、林業(yè)、農(nóng)業(yè)、科研等多種領域.隨著嵌入式技術的不斷進步和“數(shù)字林業(yè)”概念的提出,逐漸將嵌入式技術應用于林業(yè)生產(chǎn),推動著林業(yè)生產(chǎn)信息化的進程,加快了現(xiàn)代化林業(yè)技術的發(fā)展[1-2].
在森林生境因子采集過程中對精確、快速、自動的測量技術的需求越來越高,而傳統(tǒng)的林業(yè)測量方式大多采用手工測量或是有線傳輸測量方式,林木生長環(huán)境地域廣闊、地形復雜,不具備現(xiàn)場布置大量的導線或電纜的實際條件,并且在線路上的傳輸信號會受到電磁干擾,造成較大的衰減,從而影響了測量數(shù)據(jù)的精度,導致了測量誤差.在此背景下急需研究低成本的林木生長環(huán)境信息采集傳感器和高可靠性的環(huán)境信息無線測控終端,并在此基礎上研究開發(fā)森林生境因子自動采集系統(tǒng),以便及時地了解森林生長環(huán)境狀況,為林木的撫育提供可靠的數(shù)據(jù)支持,為森林撫育以及經(jīng)營管理提供決策支持.
系統(tǒng)將最新的嵌入式技術與無線傳感器網(wǎng)絡技術相結合,采用無線射頻芯片nRF905和低功耗嵌入式芯片LPC2148,可以實現(xiàn)低成本、高效率地完成數(shù)據(jù)的采集和無線傳輸,通過設計以電池供電方式的生境因子采集電路,實現(xiàn)了整個檢測過程的無線化、自動化和可視化.
系統(tǒng)是將由匯聚節(jié)點、路由傳輸節(jié)點和傳感器采集節(jié)點組成的森林生境因子無線測控終端分布在森林監(jiān)測區(qū)域,構成森林生境因子采集系統(tǒng),通過實時采集森林環(huán)境信息,傳輸?shù)较到y(tǒng)監(jiān)測中心平臺,實時監(jiān)測森林環(huán)境因子的變化,其系統(tǒng)結構如圖1所示.其中,在指定的森林監(jiān)測區(qū)域隨機地分布大量的數(shù)據(jù)采集傳感器節(jié)點,這些節(jié)點能夠隨時通過自組網(wǎng)的方式構成監(jiān)測網(wǎng)絡,并采用多跳方式將采集到的數(shù)據(jù)沿著相鄰的節(jié)點進行傳輸.在傳輸過程中,傳感器節(jié)點所采集的數(shù)據(jù)將被其他傳輸節(jié)點處理,并傳送至最近的負責多點接收的匯聚節(jié)點,然后通過RS232串口通信將采集數(shù)據(jù)送給本地監(jiān)測中心的 PC機[3-4],將采集數(shù)據(jù)入庫.本地監(jiān)測中心對接收的數(shù)據(jù)進行分析、處理和存儲,并通過WebGIS將采集數(shù)據(jù)統(tǒng)一發(fā)布,以實現(xiàn)隨時隨地通過Internet網(wǎng)絡對生境因子進行實時監(jiān)測.

圖1 系統(tǒng)總體結構
森林生境因子無線測控終端主要由傳感器終端節(jié)點、路由傳輸節(jié)點、匯聚節(jié)點3個部分組成.為了系統(tǒng)穩(wěn)定性與集成性,路由傳輸節(jié)點與傳感器終端節(jié)點采用集成式設計,封裝同一集成電路中,匯聚節(jié)點與本地監(jiān)測中心的PC機相連,傳感器節(jié)點由微處理器、串口通信模塊、無線通信模塊、溫濕度檢測模塊、光照強度檢測模塊和系統(tǒng)電源模塊組成.每個終端節(jié)點通過自組網(wǎng)方式將采集的森林環(huán)境信息發(fā)送至匯聚節(jié)點,再由匯聚節(jié)點傳輸至本地監(jiān)測中心,實現(xiàn)對森林溫度、森林濕度和森林光照強度的采集監(jiān)測.系統(tǒng)的采集終端節(jié)點硬件結構如圖2所示,由于系統(tǒng)工作在野外環(huán)境,所以使用前通過防護箱對節(jié)點進行封裝,節(jié)點實物和封裝如圖3所示.

圖2 系統(tǒng)硬件結構框圖

圖3 節(jié)點實物與節(jié)點電路封裝圖
光照強度采集模塊采用的主要元件是BH1750FVI.BH1750FVI是一種用于兩線式串行總線接口的16位數(shù)字型光照強度傳感器.它具有較高的分辨率,可以測量較大變化范圍的光照強度.
溫濕度采集采用SHTxx系列單芯片溫濕度復合傳感器,該傳感器本身含有已校準數(shù)字信號輸出.該傳感器內(nèi)部同時包括測溫和測濕元件,具有14位的內(nèi)置A/D轉換器,和串行接口電路無縫連接.系統(tǒng)采用的是SHT11溫濕度傳感器測量森林溫濕度,SHT11通過內(nèi)部的測溫和測濕元件產(chǎn)生溫濕度信號,經(jīng)過放大,送至A/D轉換器進行模數(shù)轉換、校準和糾錯.
無線射頻收發(fā)芯片nRF905工作于433MHz的ISM頻段.該芯片內(nèi)部含有功率放大器、頻率合成器、調(diào)制器和晶體振蕩器等功能模塊.芯片的通信頻道和輸出功率可以通過編寫軟件程序自行修改,采用曼徹斯特格式進行編碼和解碼.nRF905在和微處理器進行數(shù)據(jù)傳輸式通過SPI接口實現(xiàn),nRF905具有ShockBurstTM發(fā)送和接收兩種工作模式,以及關機和空閑兩種節(jié)能模式.
無線自組網(wǎng)協(xié)議棧的結構分為四層,由下至上分別為物理層、數(shù)據(jù)鏈路層、網(wǎng)絡層和應用層[5].協(xié)議棧的各層主要功能如下:
協(xié)議棧的最底層叫做物理層,物理層主要完成無線通信模塊與MCU之間的數(shù)據(jù)通信.無線通信模塊的硬件地址匹配、信道監(jiān)測等操作都是在這一層自動完成.本系統(tǒng)通過LPC2148芯片的GPIO口來實現(xiàn)nRF905的讀寫時序,從而實時讀取傳感器節(jié)點采集的數(shù)據(jù).
數(shù)據(jù)鏈路層主要完成對信道的沖突檢測和數(shù)據(jù)解析,采用CSMA/CA協(xié)議實現(xiàn)信道的沖突檢測.每個傳感器節(jié)點在發(fā)送數(shù)據(jù)之前,若檢測到信道被占用,則需要隨機等待一段時間之后再進行檢測,當檢測到信道空閑時才開始發(fā)送數(shù)據(jù)[6].
網(wǎng)絡層主要完成無線自組網(wǎng)、路由選擇和維護等工作.通過該層協(xié)議,本系統(tǒng)可以自動完成新節(jié)點入網(wǎng)、路由選擇和路由維護等操作.
應用層主要作用是當發(fā)送數(shù)據(jù)時,會自動啟動數(shù)據(jù)鏈路層和網(wǎng)絡層的相應協(xié)議添加節(jié)點信息和網(wǎng)絡信息,然后將這些信息分裝成幀,之后通過無線通信模塊將封裝好的數(shù)據(jù)發(fā)送出去.當接收到數(shù)據(jù)后,首先對收到的數(shù)據(jù)包進行解析,然后根據(jù)數(shù)據(jù)解析的結果選擇響應方式.
當無線傳感器網(wǎng)絡中有多個節(jié)點要同時發(fā)送數(shù)據(jù)時,發(fā)生數(shù)據(jù)沖突的可能性會增大,因此,在無線自組網(wǎng)協(xié)議站數(shù)據(jù)鏈路層中采用了CSMA/CA控制協(xié)議,以減少數(shù)據(jù)分組發(fā)送的沖突,從而提高信道利用率[7].
通過nRF905無線通信模塊來模擬CSMA/CA協(xié)議的載波監(jiān)聽功能.當nRF905無線通信模塊處于接收模式時,首先監(jiān)聽信道是否有載波,若有則將CD引腳置高,從而有效地避免了發(fā)送方在相同頻率下可能發(fā)生的數(shù)據(jù)沖突.因此,當節(jié)點要發(fā)送數(shù)據(jù)時,可以在接收模式下通過檢測CD引腳的高低來判斷信道的忙閑狀態(tài)[8].當CD引腳為低電平時,則說明此時信道空閑,可以發(fā)送數(shù)據(jù);反之,要先隨機退避一段時間,之后再次檢測CD引腳,直到其為低電平時才向外發(fā)送數(shù)據(jù).
系統(tǒng)采用多跳的無線傳輸網(wǎng)絡是通過自定義的自組網(wǎng)協(xié)議實現(xiàn).在自組網(wǎng)協(xié)議中使用不易產(chǎn)生誤碼干擾字符組合0x55和0xAA來表示整個自定義數(shù)據(jù)包的前導碼.當接收到新數(shù)據(jù)包后,通過檢查結束符是否匹配前導碼來判斷接收的新數(shù)據(jù)包是否完整.無線自組網(wǎng)中傳輸?shù)膸愋椭饕?入網(wǎng)請求幀、入網(wǎng)應答幀、查詢幀、數(shù)據(jù)幀等幾種類型.其中,幀類型使用一個字節(jié)來表示的,具體情況如表1所示.

表1 幀類型格式
節(jié)點信息主要包括網(wǎng)絡 ID、節(jié)點地址、網(wǎng)絡級別以及當前節(jié)點電池電量等.每一個匯聚節(jié)點通過各自的網(wǎng)絡 ID來進行區(qū)分,并且各自都可以組建一個新的網(wǎng)絡.當節(jié)點要向外發(fā)送數(shù)據(jù)時,會在數(shù)據(jù)幀中通過攜帶自己的節(jié)點號來作為數(shù)據(jù)標識.節(jié)點的網(wǎng)絡級別由上一級節(jié)點動態(tài)分配,每個傳感器節(jié)點都實時監(jiān)測電池當前電量,并將電量信息封裝在數(shù)據(jù)幀中向外發(fā)送.
路由信息主要包括目的節(jié)點地址,下一跳節(jié)點地址,當前跳數(shù)以及在傳輸過程中所經(jīng)過的中間節(jié)點地址.當每個節(jié)點接收到數(shù)據(jù)包后,先用自身的節(jié)點地址和接收到該數(shù)據(jù)包中目的地址進行比較,然后確定將數(shù)據(jù)接收或者進行轉發(fā).本系統(tǒng)采用的無線傳感器網(wǎng)絡是基于多跳模式的,而每個節(jié)點傳輸數(shù)據(jù)可能要通過一個或多個中間節(jié)點來轉發(fā)才能到達目的節(jié)點,所以要利用中間節(jié)點地址來記錄已經(jīng)過的節(jié)點,并根據(jù)當前跳數(shù)來確定下一跳地址.
在傳輸過程中檢測接收的數(shù)據(jù)包是否發(fā)生錯誤是通過校驗碼實現(xiàn)的.當接收方接收到數(shù)據(jù)包之后,首先對數(shù)據(jù)包中攜帶的數(shù)據(jù)進行計算,然后與其攜帶的校驗碼進行比較,若一致則處理該數(shù)據(jù),否則將直接丟棄該數(shù)據(jù)包.
首先由傳感器節(jié)點通過廣播方式主動申請加入網(wǎng)絡,然后由匯聚節(jié)點負責組建新的網(wǎng)絡.當系統(tǒng)上電初始化后,匯聚節(jié)點將自動進入接收狀態(tài),以等待接收網(wǎng)絡內(nèi)其他傳感器節(jié)點的入網(wǎng)請求.當傳感器節(jié)點上電之后會主動向外廣播入網(wǎng)請求幀,并與距離最近已入網(wǎng)的節(jié)點進行通信,逐跳將入網(wǎng)請求幀傳至匯聚節(jié)點,等待匯聚節(jié)點入網(wǎng)應答.其中,已入網(wǎng)成功的節(jié)點可以接收并轉發(fā)其他未入網(wǎng)節(jié)點的入網(wǎng)請求幀.所以,整個無線傳感器網(wǎng)絡的組建工作是從匯聚節(jié)點開始,由傳感器節(jié)點發(fā)起,逐級向下延伸的.
當有新節(jié)點要加入已經(jīng)組建成功的網(wǎng)絡時,無線自組織網(wǎng)絡會自動接收新節(jié)點的入網(wǎng)請求,并將其信息添加到匯聚節(jié)點的網(wǎng)絡信息表中.當一個新節(jié)點要申請入網(wǎng)時,首先要以廣播形式向外發(fā)送入網(wǎng)請求幀,然后自動進入接收狀態(tài),等待相鄰已入網(wǎng)節(jié)點的應答.在其通訊范圍內(nèi)的其他節(jié)點都會接收到該廣播信息.
無線傳感器網(wǎng)絡的大部分功耗被無線通信模塊占據(jù),因此需要選擇一種合適的通信協(xié)議及其路由算法、時間同步算法和睡眠模式調(diào)度策略,來達到降低網(wǎng)絡功耗和傳輸延遲的目的,進而優(yōu)化資源配置[9-10].系統(tǒng)采用的通信協(xié)議在傳統(tǒng)的洪流水協(xié)議之上做了部分改進:在傳感器節(jié)點發(fā)送的數(shù)據(jù)包內(nèi)加入了自動編號機制,每當發(fā)送一個數(shù)據(jù)包之后編號自動增1,同時建立編號登記表.當匯聚節(jié)點收到新的數(shù)據(jù)包之后首先檢查自身的編號登記表,如果已經(jīng)收到過該數(shù)據(jù)包則不進行轉發(fā),否則先進行登記后再進行轉發(fā).這種機制不僅降低了測量面積大,監(jiān)測節(jié)點過多造成的網(wǎng)絡阻塞,還在一定程度上抑制了廣播風暴,通暢了網(wǎng)絡傳輸.
在匯聚節(jié)點正確收到數(shù)據(jù)之后,以廣播方式向網(wǎng)絡中各個路由節(jié)點發(fā)送時間同步應答信號.每個路由節(jié)點收到信息后進行解析,然后根據(jù)解析內(nèi)容調(diào)整傳感器節(jié)點的定時器,以便進行時間同步,隨后每個節(jié)點進入休眠模式以節(jié)省能耗[11].從而保證了各個路由節(jié)點與匯聚節(jié)點之間的時間同步,有效的抑制了間隙時間的疊加,從而降低了網(wǎng)絡丟包率.
傳感器節(jié)點的軟件設計采用模塊化設計方式[12-13],由節(jié)點初始化模塊、數(shù)據(jù)采集模塊、無線傳輸模塊、數(shù)據(jù)處理模塊、數(shù)據(jù)校驗模塊和數(shù)字顯示模塊等組成.系統(tǒng)的總體軟件結構如圖4所示,傳感器節(jié)點每經(jīng)過自定義的時間頻率進行采樣,系統(tǒng)默認采集時間是30 min,在每次完成數(shù)據(jù)信息采集后,立即關閉采集節(jié)點電源,從而減少了功耗,并同時設置一個定時器,在定時時間內(nèi)向匯聚節(jié)點發(fā)送采集的信息數(shù)據(jù)[14-15].當收到匯聚節(jié)點發(fā)來的同步信號后,傳感器節(jié)點將會進入休眠狀態(tài),直到定時時間到后才開始新一輪的數(shù)據(jù)采集.

圖4 系統(tǒng)總體軟件結構
實時監(jiān)測界面使用Fusion Widgets實時監(jiān)控圖表形式面向用戶,分別展示溫度、濕度、光照強度3個生境因子的實時監(jiān)測數(shù)值.歷史監(jiān)測數(shù)據(jù)以列表形式按時間段選擇顯示采集時間、溫度、濕度、光照強度4個信息值.實時監(jiān)測界面如圖5所示,歷史監(jiān)測數(shù)據(jù)界面如圖6所示.
系統(tǒng)以ArcGIS Server 9.3為GIS二次開發(fā)環(huán)境,通過 WebGIS平臺實現(xiàn)展現(xiàn)監(jiān)測點信息.WebGIS實現(xiàn)過程中使用Arcgis api for flex進行開發(fā).通過BlazeDS技術從java端獲取數(shù)據(jù)庫中的節(jié)點監(jiān)測信息,包括監(jiān)測點是否異常工作,采集時間、溫度、濕度、光照強度等信息.WebGIS展現(xiàn)監(jiān)測點信息界面如圖7所示.

圖5 實時監(jiān)測界面

圖6 歷史監(jiān)測數(shù)據(jù)界面

圖7 WebGⅠS展現(xiàn)監(jiān)測點信息
通過測試不同通信距離條件下的誤幀率大小的方式來測試系統(tǒng)的整體通信質(zhì)量.測試前先將nRF905的發(fā)射頻率設置為433 MHz,工作電壓為直流5 V,傳輸速率和發(fā)射功率分別設置為9 600 bps和10 dBm,其測試結果如表2所示.

表2 通信距離與誤幀率記錄結果
從表2可以看出,在50 m測量范圍之內(nèi)誤幀率變化不大,一旦超出50 m,誤幀率顯著上升,所以各個節(jié)點應當布置在通信半徑小于50 m的范圍之內(nèi)為最佳選擇.
實驗中布置了9個傳感器節(jié)點、4個路由傳輸節(jié)點和1個匯聚節(jié)點,匯聚節(jié)點放置于本地監(jiān)測站內(nèi),路由節(jié)點處于傳感器節(jié)點和匯聚節(jié)點之間,負責數(shù)據(jù)的轉發(fā)[16].每隔10 min傳感器節(jié)點采集一次數(shù)據(jù),發(fā)送一次數(shù)據(jù)后等待時間同步信號進入休眠模式.連續(xù)監(jiān)測10 d,經(jīng)測試,整個網(wǎng)絡的平均丟包率為0.66%,因此該系統(tǒng)通信可靠,網(wǎng)絡丟包測試結果如表3所示.

表3 網(wǎng)絡丟包率測試結果
森林生境因子自動采集系統(tǒng)通過由SHT11溫濕度傳感器和BH175DFVI光強傳感器組成的傳感器節(jié)點獲取森林溫度、濕度和光照強度,通過路由節(jié)點轉發(fā),由匯聚節(jié)點匯總數(shù)據(jù),并通過RS232串口通信將監(jiān)測點數(shù)據(jù)傳輸至監(jiān)測站PC,實現(xiàn)生境因子的實時在線監(jiān)測.研究并實現(xiàn)了基于nRF905模塊的無線傳感器網(wǎng)絡組網(wǎng)與通訊設計,并通過供電電路設計實現(xiàn)低功耗傳輸,整個傳輸過程使用無線傳輸方式,擴大了傳輸范圍.最后進行了完整的測試實驗,測試結果表明測量結果可靠,系統(tǒng)運行穩(wěn)定,達到了設計要求.克服了傳統(tǒng)森林信息調(diào)查過程中森林生境因子獲取手段單一、動態(tài)變化不及時、數(shù)據(jù)精度低等缺點,通過軟件處理提高了生境因子的采集速度和測量精度,并運用數(shù)據(jù)庫技術將大量數(shù)據(jù)存儲,從而提高了該系統(tǒng)的實際應用價值.
[1]翟繼強,王克奇.無線傳感器網(wǎng)絡在林火監(jiān)測中應用[J].東北林業(yè)大學學報,2013,41(8):126-149.
[2]ZHANG Q,YANG X L,ZHOU Y M,et al.A wireless solution for greenhouse monitoring and control system based on ZigBee technology[J].Journal of Zhejiang University Science A,2007,8(10):1584-1587.
[3]鄒賽,劉昌明,李法平.基于無線傳感器網(wǎng)絡的水環(huán)境監(jiān)測系統(tǒng)[J].傳感器與微系統(tǒng),2010,29(9):104-109.
[4]KIM Y,EVANS R G,IVERSEN W M.Evaluation of closed-loop site-specific irrigation with wireless sensor network [J].Journal of Irrigation and Drainage Engineering,2009,135(1):25-31.
[5]朱林,吳戰(zhàn)國,李琦.工業(yè)遠程監(jiān)測系統(tǒng)中自組織網(wǎng)絡結構研究與實現(xiàn)[J].計算機測量與控制.2012.20(1):15-24.
[6]孫利民,李建中,陳渝,等.無線傳感器網(wǎng)絡[M].北京:清華大學出版社,2005:17-23.
[7]蔡義華,劉剛,李莉,等.基于無線傳感器網(wǎng)絡的農(nóng)田信息采集節(jié)點設計與實驗[J].農(nóng)業(yè)工程學報,2009,25(4):176-178.
[8]薛敏迪.基于nRF905的低功耗溫濕度無線測量系統(tǒng)[J].現(xiàn)代電子技術,2010,33(1):135-138.
[9]李莉,張彥娥,汪懋華,等.現(xiàn)代通信技術在溫室中的應用[J]. 農(nóng)業(yè)機械學報,2007,38(2):195-200.
[10]JENNIFER Y,BISWANATH M,DIPAK G.Wireless sensor network survey[J].Computer Networks,2008,52(12):2292-2330.
[11]王衛(wèi)星,羅錫文,孫道宗,等.茶園信息采集無線傳感器網(wǎng)絡節(jié)點設計[J].農(nóng)業(yè)工程學報,2011,27(5):169-173.
[12]黃建清,王衛(wèi)星,孫道宗,等.基于無線傳感器網(wǎng)絡的水產(chǎn)養(yǎng)殖水質(zhì)監(jiān)測系統(tǒng)開發(fā)與實驗[J].農(nóng)業(yè)工程學報,2013,29(4):183-190.
[13]GOLDHAMER D A, FERERESE.Irrigation scheduling of almond trees with trunk diameter sensors[J].Irrigation Science,2004,23(1):11-19.
[14]刁智華,陳立平,吳剛,等.設施環(huán)境無線監(jiān)控系統(tǒng)的設計與實現(xiàn)[J].農(nóng)業(yè)工程學報,2008,24(7):146-150.
[15]BURRREL J,BROOKE T,BECKWITH R.Vineyard computing:sensor networks in agriculture production[J].Persvasive Computing,2004,3(1):38-45.
[16]題原,宋飛,劉樹東,等.基于nRF905的無線溫濕度檢測與傳輸系統(tǒng)設計[J].化工自動化及儀表,2011,38(4):404-407.