基於藍芽 LE 廣告的 RSSI 判斷距離

當你的 Bluetooth LE Watcher 的回撥被觸發時,eventArgs 包含一個 RSSI 值,告訴你接收到的訊號強度(有多強)

private async void OnAdvertisementReceived(BluetoothLEAdvertisementWatcher watcher, BluetoothLEAdvertisementReceivedEventArgs eventArgs)
{
    // The received signal strength indicator (RSSI)
    Int16 rssi = eventArgs.RawSignalStrengthInDBm;
}

這可以粗略地轉換為距離,但不應該用於測量真實距離,因為每個單獨的無線電是不同的。不同的環境因素會使距離難以測量(例如牆壁,收音機周圍的情況,甚至空氣溼度)。

判斷純距離的另一種方法是定義。無線電通常在非常接近時報告 0 到 -50 DBm,當它們距離中等時為 -50 到 -90,而當它們距離很遠時低於 -90。試用和錯誤最好確定你希望這些儲存桶適用於你的應用程式。