国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 熱點 > 微信 > 正文

微信小程序iBeacon測距及穩定程序的實現解析

2024-07-22 01:17:50
字體:
來源:轉載
供稿:網友

前言

iBeacon是蘋果公司推出的一項低耗能藍牙技術,由藍牙設備發射包含指定信息的信號,再由移動設備接收信號,從而實現近場通信。微信小程序2017年開始支持iBeacon,搖一搖附近就是基于iBeacon實現的,此外iBeacon還可以實現距離測量,本文將介紹如何基于微信小程序實現iBeacon測距。

iBeacon測距原理

藍牙信標發射的信號強度(rssi)與收發設備之間的距離,某種程度上呈正相關,因此通過合理的運算轉化,可以通過rssi的值反推出與接收設備間的距離。

藍牙信標的rssi值是一個參考值,沒有固定標準。想要計算出藍牙信標的距離,還必須知道這個信標設備的txPower值。txPower是指當距離藍牙信標1m時的rssi值,不同的藍牙設備或相同設備不同的工況甚至不同的場地環境,都會影響txPower值,因此這個值雖然可以測量,但一定程度上是個經驗值,無法測準。

rssi測距公式

知道rssi和txPower后就可以計算距離了,有兩種計算公式:

一、

這個公式里的三個變量A、B、C都是經驗值,需要根據手機系統或硬件型號精確調校,通常會將所有設備的校準結果保存成一個設備信息表,移動終端先檢測本機型號,然后匹配設備信息調取相應的計算配置,再進行計算。很明顯這個公式是比較依賴硬件調校的,沒有數據儲備的前提下這個公式會很難用。

轉換成js代碼:

const calculateAccuracy = function (txPower, rssi) { return (0.89976) * Math.pow(rssi / txPower, 7.7095) + 0.111}

未精校情況下的測距表現:

先說這個圖怎么看。

縱軸代表測量距離,橫軸代表時間,每隔一秒取樣一次,圖中是近10次取樣的數值曲線。 綠線是設備接收到的rssi值,反應硬件真實接收到的數據情況; 紅線是套用公式計算得出的瞬時距離; 黃線是微信小程序自帶的瞬時測距結果。

藍牙信標與手機的實際距離1m,測試設備為紅米Note7。

從上圖可見,rssi值相對穩定,說明硬件沒有太大問題。紅線和黃線的波動都很大,說明準確度不咋地。二者的波動趨勢幾乎一致,所以有理由懷疑微信小程序內部也是用的這個測距公式。從結果來看,這個公式的準確度比較差,可能是因為沒有精校的原因。

二、

這個公式里的A就是rssi,tx是txPower,n是經驗值,n的取值跟物理環境有關。

const calculateAccuracy = function (txPower, rssi) { return Math.pow(10, Math.abs(rssi - txPower) / (10 * 4))}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 剑川县| 大同县| 乌兰县| 全南县| 宝丰县| 农安县| 绥阳县| 遂昌县| 石首市| 颍上县| 邯郸市| 淮南市| 邵阳县| 来宾市| 田林县| 许昌市| 乌鲁木齐市| 会宁县| 怀宁县| 台州市| 西贡区| 博兴县| 会昌县| 巴塘县| 双辽市| 铁力市| 临颍县| 通榆县| 湟中县| 鄂尔多斯市| 灵台县| 武威市| 青川县| 蒙阴县| 祁门县| 舞阳县| 海伦市| 凌源市| 洞头县| 山东省| 浠水县|