Advice on displaying the location of a BLE device on windows application relative to my PC/Scanner

Viewed 335

I would like some advice on how to start implementing the below-mentioned idea:

I have a 3 BLE (Bluetooth low energy) beacons. I would like to create an application on windows, using visual studio.

For now, I am using an ESP32 micro-controller board that gets the info that is transmitted by the BLE beacons. This information includes the RSSI, temperature, and humidity levels. All of this information is then sent to my desktop (running Windows 10) via serial communication.

Now my knowledge of how to then proceed fails drastically.

I know you can use the RSSI to calculate the distance but this is not reliable. The reason for this is due to a metal object being placed in front of the beacon. This will cause the RSSI to drop drastically. Hence to the PC, the beacon seems further however, in reality, it as not moved.

I have heard of using AOA (angle of arrival) or AOD (angle of departure), but I not sure of how to implement this in Visual Studio or even if this is correct.

Basically, I want to graphically show the position of the beacon in relation to my PC/ scanner. The scanner (ESP32) is located very close to my PC.

Can someone offer any recommendations on how to turn this idea into reality?

1 Answers

You are right, the RSSI is not ideal for this kind of task. Not only does the value fluctuate, you also have to translate the RSSI (signal strength) to the correct distance yourself.

The new Bluetooth direction finding feature (AOA and AOD) would indeed be a better way of determine the position of your device in relation to the beacons, but the ESP32 does not offer these features since they where introduced in the BLE specification 5.1.

AOA and AOD need special hardware that has two antennas. One SoC that offers Bluetooth direction finding is the nRF5340 from Nordic semiconductor.

Another approach could be to taking a rolling average of the received RSSI value to smooth out the fluctuations and use this value as the distance. If you know the position of the beacons around you the position of your receiving device can be calculated using the distance. This approach only works if the beacons are stationary and your PC moves, not the other way around.

Related