I would like to read an Eddystone Beacon using my Raspberry Pi 3 to calculate distance from the beacon. I can't find any resources to do this from the official Eddystone documentation. How should I go about retrieving the distance data from the beacon?
1 Answer
TL:DR - There is no distance data you can obtained from Bluetooth Low Energy (BLE) beacon. However, there is a ranging proximity data that you could used as a rough estimation of distance.
There is a general misunderstanding in the market regarding BLE as a location technology, it is not, it is a radio transmission that provide a "proximity" beacon signal. Bluetooth LE (which EddyStone beacon is based on) only broadcast a radio transmission which is detected by a client (i.e. a Phone). In telecom terms, such radio transmission signal can be measured as received signal strength indicator (RSSI) of the power present at the receiver. BLE does use the RSSI data to provide a rough PROXIMITY estimation zones (immediate, near, far, unknown based on the signal strength). While the RSSI or proximity zone data can theoretically be used to derive a distance estimation with careful calibration if you have a light of sight and fixed location (as point-to-point). However in practice in mobile environemnt this is far from trivial and hardly be accurate due to the fluctuations in the signal strength. Weather you put your phone in the back pocket or holding on the hand, or whether you facing the beacon with or without blocking can greately affect the signal strength. Having said that, all the BLE device vendors provide Proximity Ranging API or information that you can experiencing.
Google Eddystone provided extract info such as lat/long for the beacon location, it is however still does not provide distance information.
This not really answer your question, however I hope this clarify and set the direction for your further exploration.
beacon
that transmits it's lat/long, or aGoogle Place ID
. Then using the location of the Raspberry Pi calculate the difference - this would allow you to work out the distance and direction from the Beacon. Bear in mind you'd need to be close enough to thebeacon
to receive it's signal (so e.g. bluetooth - you'd have to be almost on top of it) - and likely the margins of error in the beacon location and your Raspberry Pi location will make your calculation a rough estimate at best...