基于TinyOS的CC2430 RSSI定位的設計與實現

匯聚節點組件連接如下:


4.4 程序移植與實驗結果
本實驗在Cygwin平臺下進行編譯與移植,編譯過程如圖6所示。

圖6 TinyOS編譯流程圖
進入Cygwin環境,切換到TinyOS定位程序目錄下,輸入編譯移植命令:
make cc2430em install NID=0x GRP=00
其中NID是節點號,是節點的身份標識,同一網絡中的節點號必須惟一;GRP是網絡號,同一網絡中所有節點的網絡號必須一致。
在所有節點的TinyOS移植完畢后,啟動所有節點,應用串口調試助手顯示匯聚節點發送到PC機的RSSI數據,數據結構如圖7所示,其中1~7個字節數據為信息包的包頭,8~9兩字節為中繼錨節點的節點號,10~11兩字節為源錨節點的節點號,12~13字節為源錨節點到匯聚節點的跳數,14~15字節為盲節點的節點號,21~22兩字節數據為錨節點的RSSI值。

圖7 錨節點RSSI值
在確定PC機能夠正確接收各錨節點的RSSI值后,還需要選取合適的RSSI測距信號衰減模型,將RSSI值轉化為距離。本實驗中采用在無線信號傳輸中應用廣泛的對數--常態模型,如式(1)所示:
RSSI=-(10n·lg(d)+A)+45 (1)
其中A為盲節點與錨節點相距1米時RSSI的絕對值,本實驗中測得A≈40,n為無線信號傳播指數,一般取2~4,經過多次試驗取3.0較為合適。將本模型應用在所測得的RSSI中,并對比實際距離得到如表1和圖8所示結果:表1中d為RSSI理論模型所得距離,D為實際測量結果。
表1 RSSI值與距離的轉換


圖8 RSSI測距模型驗證
在實驗室環境下布置了4個錨節點、1個匯聚節點和1個盲節點,4個錨節點分布在4.8x3.6 m2矩形的4個點,盲節點位于矩形區域內,匯聚節點在矩形區域外。
讀取如圖7所示的各錨節點RSSI值,在Matlab環境下通過對數--常態傳播模型將RSSI值轉變為距離,最后通過質心算法對盲節點進行定位,計算出盲節點的坐標。在實驗中采用10次測量取平均值來減小定位誤差,并計算對比盲節點理論坐標與實際坐標的誤差,得到如圖9所示的定位結果。

圖9 RSSI定位結果
通過定位算法計算出的盲節點坐標為(2.483 1,1.018 5),實際盲節點坐標為(2.4,1.2),誤差為0.199 6 m,基本實現了對盲節點的定位。
5 結論
本文在TinyOS操作系統下實現了基于CC2430模塊的RSSI定位,分析了盲節點、錨節點和匯聚節點的工作流程,確定了實驗室條件下無線傳輸模型Shadowing模型參數,最后利用Matlab計算出盲節點坐標。定位結果顯示,通過定位算法所得的盲節點坐標與實際坐標誤差為0.199 6 m,可滿足大多數無線傳感器網絡對節點定位的要求。
評論