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