徐春華 王俊


摘 要: 針對農業低成本定位需求,設計了一種基于無線傳感器網絡的農業定位系統,系統由定位平臺和定位節點兩部分構成,其中定位節點包括錨節點和移動節點。定位系統部署完成后,首先各錨節點向定位平臺發送包含自身位置、節點ID的數據包,定位平臺建立網絡拓撲圖和數據鏈表;然后移動節點向所有錨節點發出定位請求,接收并存儲各錨節點的RSSI值;最后定位平臺采集移動節點與各錨節點通信的RSSI值,并應用定位模型確定移動節點的估算位置。試驗表明,該定位系統具有簡單易實現、定位效果好等特點。
關鍵詞: 無線傳感器網絡; 農業定位; nRF903; 人工魚群算法
中圖分類號: TN711?34 文獻標識碼: A 文章編號: 1004?373X(2016)07?0010?05
Abstract: For the demand of agriculture low?cost localization, an agriculture localization system based on wireless sensor network was designed. The system is composed of localization node and localization platform. The localization node is composed of anchor nodes and mobile nodes. After system deployment, the data packet of node ID and location of each anchor node are sent to the localization platform to build the network topology and data linked list. And then the mobile nodes send the localization requests to all anchor nodes to receive and store RSSI values of each anchor node. Finally the localization platform is used to collect the RSSI values of mobile nodes and each anchor mode, and the localization model is used to determine the estimation location of the mobile nodes. The test results show that the system has the characteristics of easy implementation and good loca?lization effect.
Keywords: wireless sensor network; agriculture localization; nRF903; artificial fish swarm algorithm
0 引 言
無線傳感器網絡由大量的微型傳感器節點組成,這些傳感器節點價格低廉,它們能夠通過構建自組織多跳網絡,感知網絡覆蓋區域的信息。然后將采集的信息進行處理,再發送給觀察者[1?2]。無線傳感器網絡發展迅速,在現代農業中發揮了重要的作用,其在農作物的精準作業、設施農業環境智能調控、農田水利灌溉、果園管理以及畜禽養殖等諸多方面有著廣泛的應用 [3?4]。應用具備移動能力的傳感器節點對農業環境進行動態監測,不僅能夠減少所需節點的數量,還大幅提高了網絡的覆蓋范圍,更有利于采樣;同時可以通過數據轉發以提高網絡連通性和保障服務質量[5]。移動部署策略使傳感器網絡在資源配置方面得到了優化,可以顯著改善信息感知、數據融合、無線通信的質量。由于環境和成本的限制,如果每個節點都配置GPS定位終端顯然是不現實的,因此通過節點自定位技術獲得節點的絕對或相對位置信息顯得尤為重要。
常見的定位算法分為基于測距和無需測距的算法[6]。無需測距的定位算法不需要測量網絡節點相互間的距離,單純依賴網絡連通狀態完成位置估算,定位精確度相對較低。基于測距的定位算法和無需測距的定位算法不同,需要對節點之間的距離或者角度進行測量,從而實現節點的定位。常用測距方法有RSSI(Received Signal Strength Indicator),TOA(Time of Arrival),AOA(Angle of Arrival),TDOA(Time Difference of Arrival)等[7?8]。其中基于RSSI的測距技術應用較為廣泛,它主要依據無線收發芯片來獲取信號強度,在此基礎上通過信號強度與傳輸距離之間的數學關系來實現距離測量。目前很多的無線射頻芯片都具備RSSI采集功能,這些芯片價格低廉,功能強大,功耗較低,例如nRF903,CC1101,且它們均為獨立模塊,基于RSSI的測距技術已成為農業無線傳感器網絡定位的主要手段[9?10]。針對農業低成本的需求,本文設計了一種基于無線傳感器網絡的農業定位系統。當定位系統部署完成后,首先定位平臺接收錨節點發送的包含自身位置與ID的數據包,建立網絡的拓撲圖和數據鏈表;然后移動節點向錨節點發送定位請求,接收錨節點的RSSI值并進行存儲。最后定位平臺依據移動節點與錨節點通信的RSSI值,應用基于變步長的人工魚群算法定位模型確定移動節點的估算位置。
1 RSSI測距原理
2 無線定位系統組成
設計的無線定位系統由定位平臺和定位節點兩部分組成,其中定位節點又包括錨節點和移動節點兩部分。錨節點是指該節點被預先設定好位置,也就是說錨節點是一種參考定位節點;移動節點在網絡中的位置是未知的,而且它的移動軌跡是隨機的。網絡中的所有節點均為同構節點,具有相同的通信距離和計算能力。定位平臺主要包括節點通信模塊、人機交互接口、定位服務器3大部分。節點通信模塊負責采集定位節點的無線通信信號,下發定位平臺控制指令;人機交互接口負責設置定位參數、設備權限,及時接收移動節點與各錨節點通信的RSSI信息,通過定位模型進行處理后,輸出定位節點的位置,記錄所有定位操作發生的時間、地點,查詢指定時間段內移動節點歷史位置狀態信息,并生成統計報表供用戶查詢;定位服務器負責所有定位節點信息的添加、修改和刪除操作,包括錨節點、移動節點的編號信息,錨節點在定位區域內放置的地理位置信息,管理/啟動/更新相關服務,以及對服務狀態進行定時查詢和檢測。
定位平臺和定位節點之間的通信頻率為433 MHz,為有效防止同頻干擾問題,系統采用分時TDMA(Time Division Muhiple Access)技術。待系統準備就緒后,所有錨節點首先向定位平臺發送自身位置、節點ID等組成的數據包,定位平臺建立相應的網絡拓撲圖和數據鏈表;然后移動節點向錨節點發送定位請求,接收錨節點的RSSI值并進行存儲。最后定位平臺將依據移動節點與錨節點通信的RSSI值,通過定位模型確定移動節點的估算位置。
2.1 定位系統設計
定位節點采用Atmega161單片機為控制核心。Atmega161為8位單片機,功耗低,具有32個工作寄存器,16 KB的FLASH,35個通用的I/O接口,3個具有比較模式的定時器,2個可編程的UART,SPI口。nRF903為433/868/915 MHz, ISM頻段設計的單片UHF(Ultra High Frequency)無線收發芯片[11?13],具有較高的傳輸效率,當帶寬達到155.6 kHz時,傳輸速率可提高至76.8 Kb/s,最大發射功率為10 dBm,采用差分天線接口,供電電源為3 V的直流電源,可工作在待機和掉電模式,具備RSSI功能,通過讀取ADC寄存器可獲取當前的接收信號強度(0~255)。
將nRF903的CFG_CLK(配置寄存器時鐘)、CFG_DATA(配置寄存器數據)、CS(配置寄存器片選)三個接口分別與Atmega161的SPI端口的PB7(SCK),PB5(MOSI),PB4(SS)相連,對其工作頻率、通道、輸出功率和時鐘頻率等多個參數進行編程設置。nRF903的數據接口DATA與Atmega161的UART1相連,收發通信數據和讀取RSSI值。nRF903與Atmega161連接示意圖如圖1所示。
定位平臺采用Visual C++ 6.0環境下C語言進行開發。應用SQL Server 2012數據庫,由C/S模式(客戶端/服務器)開發而成,可分為硬件接口層、定位引擎層和圖形界面層三部分。硬件接口層與移動節點時刻保持通信,并將采集到的移動節點與錨節點的RSSI信息通過串口讀入到定位平臺, RSSI信息接收界面如圖2所示。
定位引擎層將定位平臺獲取的RSSI信息數據進行分析和處理,應用變步長的人工魚群算法處理后獲得移動節點的位置坐標。圖形界面主要用于人機交互界面的圖形顯示,不僅可以讀入用戶數據,比如移動節點的位置,以及移動節點的使用配置和命令等,而且還可以將拓撲圖導入到圖形界面,從而完成相關節點的定位顯示。
2.2 基于變步長的人工魚群算法定位模型
移動節點與錨節點時刻保持通信,將錨節點的RSSI值按序組成一個數組,并上傳至定位平臺,定位平臺完成對數據的分析和處理,然后依據路徑損耗模型計算各移動節點與錨節點之間的距離,通過變步長的人工魚群算法可以估算移動節點的位置,從而實現對移動節點的定位估算,然后計算相應的定位誤差。
人工魚群算法是一種優化的隨機搜索模型,通過模擬魚群的聚集和覓食行為,利用魚群不斷聚集實現移動節點的最終定位,達到利用魚群個體的局部尋優來實現全局尋優的目的[14?16]。相關符號定義如下:
[xi]為第[i]條人工魚的狀態,維數為3,表示待定位移動節點所處的三維空間位置;魚群中個體之間的相互距離表示為[dij=xi-xj];visual表示人工魚的感知距離;[δ]表示人工魚的擁擠度因子;try_number為覓食過程中魚群不斷嘗試的次數。
式中:[n]為錨節點總數;[(xi1,xi2,xi3)]為待定位的估計坐標,即人工魚狀態[xi;][(xj,yj,zj)]為錨節點的實際坐標;[dj]為待定位移動節點和各錨節點之間的測量距離。由于使用RSSI測距存在一定的誤差,定位的實質并不是消除誤差,而是使誤差最小化,因此當目標函數值達到最大時,魚群的食物濃度值達到最大,此時魚群聚集最多,定位結果達到最優化狀態。
基于變步長的人工魚群算法的移動節點定位主要包括4種典型的行為:覓食、聚群、追尾和隨機。
(1) 覓食行為。設人工魚的當前狀態為[xi,]當[dij≤]visual時,在該人工魚的感知距離范圍內選擇一個狀態[xj,]如果[yj>yi,]則向該方向前進一步;反之,重新選擇狀態,判斷是否滿足前進條件;經過數次嘗試后,如果仍然不能滿足前進的條件,則隨機向前移動一步;公式如下:
(2) 聚群行為。設人工魚的當前狀態為[xi,]當[dij≤]visual時,對其視野范圍內的魚群進行搜索,并確定伙伴魚群的中心位置,設伙伴數目為[nf,]伙伴魚群的中心距離為[xc。]當[nf]不為零,且[ycnf>δyj,]說明伙伴魚群的數量不為零,其中心聚集著較多的食物,且食物分布區域較廣,則需要向著伙伴魚群中心移動一步,否則繼續執行覓食行為;若[nf]為零,說明搜索區域內并未出現覓食的伙伴魚群,此時也要執行覓食行為。
(3) 追尾行為。設人工魚當前狀態為[xi,]探索其[dij≤]visual范圍內的伙伴中[yj]為最大的伙伴[xmax。]如果[ymaxnf>δyi,]表明伙伴[xmax]的狀態具有較高的食物濃度并且其周圍不太擁擠,則向伙伴[xmax]的方向前進一步;否則執行覓食行為。
(4) 隨機行為。隨機行為就是一種缺省狀態,就是隨機選擇一個方向,然后朝著這個方向移動,因此具有一定的隨機性和盲目性。
一般來說,步長越大算法運行前期收斂速度越快,但是算法運行后期會出現波動情況,難以快速收斂;因此可以通過適時改變步長的方式提高人工魚群算法的收斂性和準確性,即在算法運行前期,選用較大的步長,使人工魚能夠在較大范圍內進行粗搜索,隨著優化搜索的進行,逐步減小步長,使算法運行演化為局部搜索,定位在最優解附近區域完成精細搜索。
按照定位問題求取最優值的性質,采用試探法執行聚群、追尾等行為,通過對魚群行動后的取值進行比較評價,執行最大值,如果行為為缺省狀態的話,則判定此行為為覓食行為。在變步長的人工魚群定位算法中設立一個公告板,此公告板是用來記錄魚群最優個體位置以及當前的食物濃度值,每當魚群移動一次后就將此時魚群個體自身位置對應的食物濃度與上一次公告板記錄的進行對比,如果優于公告板上的記錄,則應該將此時的位置及食物濃度替換公告板上的記錄。
3 試驗與結果分析
為驗證所研制定位系統設計的合理性和實用性,進行了定位試驗。試驗三維區域為60 m×20 m×5 m,部署有6個錨節點和1個移動節點,網絡部署方式如圖3所示,圖中圓形代表錨節點,方形代表定位測試的移動節點。綜合考慮農業環境監測與定位的需要,同側錨節點間采用橫向等距布置,間距為30 m,且部署在距地面約2.5 m高度處,移動節點在網絡內隨機移動。錨節點與移動節點采用基于nRF903芯片開發的無線通信模塊,其發射功率為10 dBm,接收靈敏度為-104 dBm,最大視距傳輸距離為400 m,錨節點和移動節點安裝增益為3 dBi的膠棒天線,節點通信設置為波特率9 600 b/s,8位數據位,無奇偶校驗位,1位停止位。
定位平臺發送配置命令,以對錨節點的位置和參數閾值、數據采集周期、移動節點定位周期等進行配置,系統處于正常運行狀態,此后定位平臺周期性地采集移動節點與各錨節點通信的RSSI信息,運用定位模型對這些信息進行解析,隨后將得到的定位結果儲存到數據庫中。設置定位工作周期為3 min,系統連續運行1 h。
感知距離visual會對基于變步長的人工魚群算法定位模型的收斂性能產生比較大的影響。當感知距離大時,人工魚群算法的全局搜索能力比較強,這時定位模型收斂的速度比較快;當感知距離較小時,人工魚群算法的全局搜索能力就較弱,模型收斂的速度較慢,但是其局部搜索能力較強。感知距離visual對平均定位誤差的影響如圖4所示,從圖4可以看出:當感知距離visual∈[0.5,4]時,平均定位誤差較大;當visual∈(4,5]時,平均定位誤差迅速下降,并且當感知距離visual≥4.0時,平均定位誤差就會基本保持不變。因此,選取的最終定位模型的感知距離visual為4.0。
在試驗環境下記錄20次測試結果,計算移動節點的定位誤差,結果如圖5所示。從圖5中可以看出,定位誤差始終保持了較好的水平,定位誤差的最大值為3.113 9 m,最小值為1.066 8 m,均值為1.769 9 m,均方差為0.786 8 m,定位誤差≤1.5 m的比例達35%,定位誤差≤3.0 m的比例達95%。表明定位系統的性能穩定,具有較好的魯棒性。
在相同試驗環境中,將本文提出的定位模型與遺傳BP定位算法進行比較,遺傳BP定位算法參數設置為:輸入節點數為6,輸出節點數為3,種群規模為20,進化次數為50,變異概率為0.2,交叉概率為0.4。兩種算法定位誤差的波動范圍分別為[1.066 8 m, 3.113 9 m],[1.867 4 m, 6.015 7 m],表明本文所設計的定位系統性能更為優越。
4 結 論
本文研發了一種基于無線傳感器網絡的農業定位系統。以Atmega161單片機為定位節點的核心,nRF903無線收發模塊接于單片機的外圍;在Visual C++6.0環境下利用C++語言自主開發定位平臺,采用SQL Server 2012數據庫并且以C/S模式(客戶端/服務器)開發而成。試驗表明,該定位系統簡單易實現并且定位效果好。
(1) 感知距離visual會對定位模型的收斂性能產生較大的影響。當感知距離較大時,定位模型的全局搜索能力增強并且能夠快速地收斂;當感知距離較小時,定位模型的局部搜索能力增強。
(2) 模擬定位試驗中部署6個錨節點,定位效果良好,表明該定位系統對錨節點數量的依賴度低,即使在少量錨節點的情況下,也能夠獲得比較理想的定位效果,有效降低網絡的定位成本。
(3) 試驗結果表明,該定位系統具有較高的魯棒性和定位精度,定位結果波動范圍小,并且定位誤差小于1.5 m的試驗數據占全部試驗數據的35%,定位誤差小于3.0 m的試驗數據的比例是95%,該系統可以滿足農業環境的定位要求。
參考文獻
[1] 孫利民,李建中,陳渝,等.無線傳感器網絡[M].北京:清華大學出版社,2005.
[2] 李鳳保,李凌.無線傳感器網絡技術綜述[J].儀器儀表學報,2005,26(z2):559?561.
[3] 楊瑋,呂科,張棟,等.基于ZigBee技術的溫室無線智能控制終端開發[J].農業工程學報,2010,26(3):198?202.
[4] 韓華峰,杜克明,孫忠富,等.基于 ZigBee網絡的溫室環境遠程監控系統設計與應用[J].農業工程學報,2009,25(7):158?163.
[5] 喬曉軍,張馨,王成,等.無線傳感器網絡在農業中的應用[J].農業工程學報,2005,21(z2):232?234.
[6] 郝志凱,王碩.無線傳感器網絡定位方法綜述[J].華中科技大學學報(自然科學版),2008,36(z1):224?227.
[7] 王小平,羅軍,沈昌祥.無線傳感器網絡定位理論和算法[J].計算機研究與發展,2011,48(3):353?363.
[8] 王福豹,史龍,任豐原.無線傳感器網絡中的自身定位系統和算法[J].軟件學報,2005,16(5):857?868.
[9] 方震,趙湛,郭鵬,等.基于RSSI測距分析[J].傳感技術學報,2007,20(11):2526?2530.
[10] 趙海,朱劍,孫佩剛,等.基于 RSSI均值的等邊三角形定位算法[J].東北大學學報(自然科學版),2007,28(8):1094?1097.
[11] 林文斌,孟利民,張江鑫.無線收發芯片NRF903在無線多媒體中的應用[J].浙江工業大學學報,2004,32(6):679?683.
[12] 金保華,張勇,崔光照.基于nRF905的無線數據多點跳傳通信系統[J].儀表技術與傳感器,2004(9):39?40.
[13] 田海燕,劉婷,劉偉.基于無線收發芯片nRF905的礦工定位模塊[J].兵工自動化,2008,27(8):71?73.
[14] 賈強,季仲梅,王建輝.改進的人工魚群算法及其在無線定位中的應用[J].計算機應用研究,2011,28(6):2147?2150.
[15] 徐善永,黃友銳,曲立國.基于人工魚群算法的煤礦井下人員定位技術研究[J].煤炭工程,2013,45(11):129?131.
[16] 付波,黃英偉,程瓊,等.改進人工魚群優化粗糙集的水電機組故障診斷[J].湖北工業大學學報,2012,27(1):92?95.