張鳳英
摘要 我國人口老齡化狀態(tài)日益嚴(yán)重,未來養(yǎng)老院養(yǎng)老勢必成為主流。本文針對(duì)養(yǎng)老院場地較大,老人發(fā)生安全問題時(shí),人員無法及時(shí)定位救助的問題,設(shè)計(jì)了一種基于Zigbee技術(shù)的室內(nèi)無線定位系統(tǒng)。本設(shè)計(jì)采用TI公司的CC2530芯片作為系統(tǒng)核心,基于Z-STACK協(xié)議棧,使用IAR軟件平臺(tái)開發(fā)。經(jīng)實(shí)際測試該定位系統(tǒng)易于操作、精度較高,是一種適應(yīng)性較強(qiáng)的定位系統(tǒng)。
【關(guān)鍵詞】Zigbee 室內(nèi)定位CC2530 RSSI
1 引言
近年來,隨著生活水平的日益提高及醫(yī)療技術(shù)的不斷發(fā)展65歲以上的老齡化人口越來越多,養(yǎng)老方式成為社會(huì)研究的重要課題,這其中養(yǎng)老院養(yǎng)老成為越來越多老齡人口選擇的養(yǎng)老方式,老年人隨著年齡增長慢慢會(huì)得的老年病,典型的阿茲海默癥,失智癥,在老年群體越來越嚴(yán)重。所以對(duì)于在養(yǎng)老院養(yǎng)老的老齡人口進(jìn)行及時(shí)定位救助非常有必要。ZigBee技術(shù)是一種易于施、能耗低、復(fù)雜度低、花費(fèi)低的無線通信技術(shù)?;赯igBee的定位方式所采納無線射頻信號(hào)能夠進(jìn)行較為健壯的傳輸,是一種較為穩(wěn)定的系統(tǒng)。再者ZigBee更多的關(guān)注于低數(shù)據(jù)傳輸速率,其更加適用于節(jié)點(diǎn)個(gè)數(shù)多、分布區(qū)域廣、所處環(huán)境復(fù)雜等特點(diǎn)的定位需求。
2 系統(tǒng)整體設(shè)計(jì)
2.1 定位系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
與其他定位網(wǎng)絡(luò)架構(gòu)相比較,ZigBee定位網(wǎng)絡(luò)在鋪設(shè)己知錨節(jié)點(diǎn)和需求取未知節(jié)點(diǎn)外,還需要協(xié)調(diào)器(網(wǎng)關(guān))這關(guān)鍵一環(huán)才能構(gòu)建并達(dá)成設(shè)計(jì)目的。網(wǎng)關(guān)是整個(gè)系統(tǒng)中的重要角色,首先它需要能夠響應(yīng)主機(jī)發(fā)出的命令,打開網(wǎng)絡(luò),等待其他類型節(jié)點(diǎn)訪問網(wǎng)絡(luò),并接收節(jié)點(diǎn)發(fā)送回來的數(shù)據(jù),將數(shù)據(jù)傳輸?shù)缴衔粰C(jī)進(jìn)行處理。對(duì)錨節(jié)點(diǎn)而言是無法移動(dòng)節(jié)點(diǎn),其各自的位置參數(shù)是已明確設(shè)置的。它的任務(wù)是獲取包括RSSI參數(shù)等定位相關(guān)參數(shù)并對(duì)所需參量采取合理算法進(jìn)行處理。最后,發(fā)送盲點(diǎn)填充的參數(shù)均值后,發(fā)送盲點(diǎn)填充參數(shù),將協(xié)調(diào)器返回到上位計(jì)算機(jī)軟件處理。而且能起到鏈路路由的作用進(jìn)行數(shù)據(jù)中繼。盲節(jié)點(diǎn)是可在錨節(jié)點(diǎn)的物理范圍內(nèi)隨機(jī)移動(dòng)的非固定節(jié)點(diǎn),定位的目的是獲取本類節(jié)點(diǎn)的坐標(biāo)參數(shù)。
2.2 定位系統(tǒng)方法研究
基于RSSI(接收信號(hào)的強(qiáng)度指示值)的定位方法是一種普遍適用的方法,節(jié)點(diǎn)依據(jù)接收信號(hào)的強(qiáng)度指示值與傳送距離的相合映射關(guān)系(函數(shù)關(guān)系式)得到距離參數(shù)。這是定位流程中最為核心的環(huán)節(jié),必須在完成了這一核心環(huán)節(jié)后,進(jìn)而調(diào)用其他各類定位算法計(jì)算盲節(jié)點(diǎn)的位置信息。
2.2.1 理想測距模型
理想狀況下,RSSI是接收雙方間所傳輸功率和距離的映射關(guān)系。接收信號(hào)強(qiáng)度一般為負(fù)值隨著距離的增加而減少。下面公式4.1給出了RSSI與距離d的理想關(guān)系。該式中,λ為信號(hào)傳播常量,也稱為傳播指數(shù);d是信號(hào)放射距離。A是在1m處的接收信號(hào)強(qiáng)度值。
RSS/(d)=-(lOλlgd+A)
(1)
在實(shí)驗(yàn)室環(huán)境下為了獲取一個(gè)有實(shí)際意義的理論關(guān)系式,在環(huán)境中的多個(gè)位置布設(shè)兩個(gè)節(jié)點(diǎn)間距1米情況下,測試10次RSSI值,取平均值得到A,則n取1~5一個(gè)數(shù)值的時(shí)候,可以繪制接受信號(hào)強(qiáng)度值的擬合曲線。通過曲線得到RSSI和距離的關(guān)系式。其他盲節(jié)點(diǎn)信號(hào)強(qiáng)度值可以通過這些關(guān)系轉(zhuǎn)換為相應(yīng)的距離d。在得到距離信息后,使用某種基于距離的定位幾何數(shù)學(xué)算法即可得到坐標(biāo)完成任務(wù)要求。
2.2.2 模型參數(shù)優(yōu)化
在通過協(xié)議棧獲取改進(jìn)的RSSI參數(shù)值后,緊接著把RSSI值用響應(yīng)算法對(duì)應(yīng)程序語言實(shí)現(xiàn)距離的轉(zhuǎn)化。對(duì)于封閉建筑這類復(fù)雜度較高的空間場景而言,已有的自用空間模型等模型已不在符合,一種基于統(tǒng)計(jì)學(xué)模型的對(duì)數(shù)路徑損耗模型是目前較為常用的模型,它已實(shí)現(xiàn)于多樣化實(shí)際區(qū)域中取得證實(shí),其通用模型為下式:
在公式中,RS(d)代表距離發(fā)射點(diǎn)d(單位:m)處接收到的RSSI值,測量值在運(yùn)算時(shí)可使用絕對(duì)值。RS(do)代表距離發(fā)射點(diǎn)do處接收到的RSSI值,也稱參考衰減RSSI(ReceivedSignal Strength Indication)值,其中do稱為參考距離,一般情況下取一米。λ為路徑動(dòng)態(tài)衰減指數(shù),表示信號(hào)依據(jù)傳送距離的增加其功率的衰減速度,該值與所處環(huán)空間因素有很大關(guān)系,取決于現(xiàn)場區(qū)域的類型。ξ來表示一個(gè)均值為0、標(biāo)準(zhǔn)差為σ的高斯分布隨機(jī)噪聲,其在不同室內(nèi)場景下的賦值也是有差異一般在3.0到14.0 dB。
則由上面公式推算得到盲節(jié)點(diǎn)與錨節(jié)點(diǎn)的距離d為:
式中RS(d)、λ和ξ稱為模型參數(shù)值,三個(gè)實(shí)參一起決定距離的最終求取值。為提高使用性一般情況下采用多次測量多種環(huán)境下參數(shù)值進(jìn)行賦值。此次方案可移植性杰出,在實(shí)際場景改動(dòng)后不必對(duì)常量重新測量后系統(tǒng)設(shè)置模型參數(shù)值,而依托自身算法重新給定參數(shù)。
2.2.3三邊定位算法
基于RSSI的三邊定位算法是未知點(diǎn)的己知三點(diǎn)坐標(biāo)和RSSI的信號(hào)值,這三個(gè)點(diǎn)被解決,未知坐標(biāo)被求解。第一種是將RSSI信號(hào)值轉(zhuǎn)換為從未知點(diǎn)到三點(diǎn)的距離,剩下的是解決未知點(diǎn)坐標(biāo)問題。我們都知道,兩個(gè)圓將在一個(gè)或兩個(gè)點(diǎn)相交(如果相交),那么三個(gè)圓,如果它們相交,必然會(huì)在一個(gè)點(diǎn)相交(這里不考慮三個(gè)檢測裝置在直線上有兩點(diǎn)相交)所以我們需要解決的盲節(jié)點(diǎn)是以三個(gè)己知節(jié)點(diǎn)為中心繪制的三個(gè)圓的交點(diǎn),以及它們與未知節(jié)點(diǎn)的距離作為半徑,如圖1所示。然后,坐標(biāo)求解轉(zhuǎn)化為找到三個(gè)己知圓的交集,然后根據(jù)圖形幾何關(guān)聯(lián)求方程。
在實(shí)際應(yīng)用過程中,很多時(shí)候存在導(dǎo)致三個(gè)圓也許無法匯聚一點(diǎn),假設(shè)移動(dòng)節(jié)點(diǎn)僅在參考節(jié)點(diǎn)的物范圍內(nèi)活動(dòng),則會(huì)產(chǎn)生如圖2所示的四種情形,所以在實(shí)際操作中,首先需要判斷三個(gè)圓中哪幾個(gè)相交,采用的辦法是將三個(gè)圓的方程兩兩組合,根據(jù)計(jì)算判斷是否有解。
如果方程(1)有解(x12,y12)、(x21,y21),判斷其中哪個(gè)點(diǎn)到(x3,y3)的距離近,選取該點(diǎn)為D;如果方程(2)有解(x13,y13)、(x31,y31),判斷其中哪個(gè)點(diǎn)到(x2,y2)的距離近,選取該點(diǎn)為F;如果方程(3)有解( x23,y23)、(x32,y23),判斷其中哪個(gè)點(diǎn)到(xl,yl)的距離近,選取該點(diǎn)為E;所求盲節(jié)點(diǎn)的二維坐標(biāo)即三角形DEF的中心坐標(biāo)。如果其中方程(1)無實(shí)根,則連接兩圓圓心,與圓相交兩點(diǎn)的直線中心就是D;對(duì)于方程(2)、(3)無實(shí)根情況下,E、F點(diǎn)也依此求得,就此則可獲取中心作為移動(dòng)節(jié)點(diǎn)坐標(biāo)。
3 定位系統(tǒng)實(shí)現(xiàn)
3.1 硬件設(shè)計(jì)
硬件設(shè)計(jì)包括核心模塊和擴(kuò)展模塊兩大部分,核心模塊選擇TI公司的CC2530片上系統(tǒng),該芯片集成了無線收發(fā)器和增強(qiáng)型8051處理器。并在在單芯片上組裝了ZigBee無線電磁發(fā)射模組,存儲(chǔ)器和MCU。供電電路采用直流(Direct Curren)電池模組供能,直流為5V電源適配器。移動(dòng)節(jié)點(diǎn)采用4節(jié)5號(hào)電池進(jìn)行供能。協(xié)調(diào)器模塊需要和上位機(jī)通信,所以除了必要的無線通信外還需要串口通信功能,為方便調(diào)試串口通信使用Prolific公司生產(chǎn)的一種高度集成的RS232-USB接口轉(zhuǎn)換器。硬件功能模塊圖如圖3所示。
3.2 定位系統(tǒng)軟件設(shè)計(jì)
無線傳感網(wǎng)絡(luò)定位的基本思想是將盲節(jié)點(diǎn)附近所有的節(jié)點(diǎn)無線覆蓋范圍內(nèi)的己知錨節(jié)點(diǎn)的信號(hào)強(qiáng)度值傳輸給協(xié)調(diào)器,同時(shí)利用相應(yīng)的定位算法,由協(xié)調(diào)器將信號(hào)強(qiáng)度值傳遞到上位機(jī)監(jiān)控軟件,計(jì)算出未知節(jié)點(diǎn)的坐標(biāo)值并進(jìn)行顯示。協(xié)調(diào)器建立網(wǎng)絡(luò)成功后,首先向盲節(jié)點(diǎn)廣播發(fā)送請(qǐng)求定位幀。盲節(jié)點(diǎn)收到上述廣播幀后,將封裝有RSSI值和步跳數(shù)設(shè)置為1的結(jié)構(gòu)體數(shù)據(jù)包進(jìn)行廣播,保證只有在單跳范圍內(nèi)的參考節(jié)點(diǎn)才能接收到該封裝信息包。
參考節(jié)點(diǎn)對(duì)一跳范圍內(nèi)的錨節(jié)點(diǎn)接收到RSSI信號(hào)進(jìn)行預(yù)處理,記錄該盲點(diǎn)的RSSI值,由于無法處在理想場景下存在干擾波動(dòng),該數(shù)值并非穩(wěn)定不變。因此各錨節(jié)點(diǎn)可對(duì)收取的RSSI值進(jìn)行適當(dāng)加工,即簡單的對(duì)RSSI值求和作平均。盲節(jié)點(diǎn)發(fā)送RSSI的數(shù)據(jù)包請(qǐng)求信號(hào),接收到數(shù)據(jù)包請(qǐng)求命令信號(hào)后,參考節(jié)點(diǎn)將各種所需參數(shù)值按特定協(xié)議封裝,發(fā)送到盲節(jié)點(diǎn)。盲節(jié)點(diǎn)將數(shù)據(jù)包發(fā)送到協(xié)調(diào)器??紤]到協(xié)調(diào)器將組網(wǎng)和串口通信功效用外,仍可兼具錨節(jié)點(diǎn)部分效用,所以僅需編譯兩類相近的算法與數(shù)據(jù)結(jié)構(gòu)。盲節(jié)點(diǎn)定位流程圖如圖4所示。
3.3 上位機(jī)軟件設(shè)計(jì)
協(xié)調(diào)器將收到的數(shù)據(jù)通過下述過程發(fā)送給主機(jī)進(jìn)行位置信息的顯示,基于ZigBee網(wǎng)絡(luò)定位系統(tǒng)PC處理軟件中,與定位相關(guān)的功能主要包括兩大類:串口通信和訊息處置。定位信息處理包括2個(gè)方面:
(1)提供PC和網(wǎng)關(guān)節(jié)點(diǎn)硬件與軟件接口,PC通過調(diào)用串口與網(wǎng)關(guān)來交互。
(2)區(qū)塊定位。移用相應(yīng)定位算法實(shí)現(xiàn)程序,打印串口發(fā)送數(shù)據(jù)在PC端顯示獲取未知節(jié)點(diǎn)二維坐標(biāo)訊息,并顯示和保存定位二維坐標(biāo)。協(xié)調(diào)器發(fā)送數(shù)據(jù)給主機(jī)流程如圖5所示。
4 定位測試與誤差分析
通過比較未知節(jié)點(diǎn)標(biāo)準(zhǔn)位置與多次實(shí)測節(jié)點(diǎn)的二維坐標(biāo)值進(jìn)行為誤差分析,設(shè)置標(biāo)準(zhǔn)節(jié)點(diǎn)的位置坐標(biāo)為(0.5,0.5),為了提高系統(tǒng)測試精度,數(shù)據(jù)進(jìn)行10次采集。將十次結(jié)果進(jìn)行平均值,通過測試計(jì)算得X平均值為0.51603米,Y平均值為0.48896米,X值的誤差為1.063%,Y值的誤差為2.208%。整體測量誤差在正負(fù)1.635%。如表1所示。
5 總結(jié)
本文論述了基于Zigbee技術(shù)和RSSI的室內(nèi)定位技術(shù),詳細(xì)說明了室內(nèi)定位系統(tǒng)的基本原理和算法,從理想模型出發(fā),優(yōu)化了RSSI算法,計(jì)算出盲節(jié)點(diǎn)與參考節(jié)點(diǎn)之間的準(zhǔn)確距離;最后在上位機(jī)中通過串口打印位置信息,利用校園室內(nèi)環(huán)境進(jìn)行實(shí)際測試,測試結(jié)果表明該對(duì)于平面定位需求該系統(tǒng)定位精確,誤差小。后續(xù)將進(jìn)行節(jié)點(diǎn)合理封裝,適宜佩戴,并且考慮增加參考節(jié)點(diǎn)個(gè)數(shù),實(shí)現(xiàn)不同樓層間精確定位。
參考文獻(xiàn)
[1]陳鵬飛,姜可宇,嚴(yán)翔忠,基于ZigBee的無線傳感器網(wǎng)絡(luò)定位技術(shù)研究[J]通訊世界,2017 (12).
[2]白旭華,張瑞峰,王桂英.基于ZigBee網(wǎng)絡(luò)的室內(nèi)定位系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J],天津理工大學(xué)學(xué)報(bào),2012 (02).
[3]侯啟真,史秉鑫,劉衍帆,基于RSSI的Zigbee定位技術(shù)研究[J],計(jì)算機(jī)應(yīng)用與軟件,2016 (04).
[4]張亞琳.基于ZigBee中繼器礦山井下人員定位算法[J].物聯(lián)網(wǎng)技術(shù),2016 (08).
[5]李樹明,肖艷,林巧民.基于ZigBee的定位監(jiān)護(hù)醫(yī)療服務(wù)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2015 (08).
[6]申靜濤,基于RSSI的對(duì)數(shù)距離路徑損耗模型研究[J].電子質(zhì)量,2013 (12).