# Distance calculation based on RSSI value

I want to calculate the RSSI value of a Bluetooth module (HC05) and from the derived RSSI value I want to calculate the distance of the surrounding devices. I'm using an Arduino Uno r3 as a controller and the Arduino IDE as a programmer.

Actually I have done the RSSI calculations with a NodeMCU device, but there also I can't convert it into a distance in meters. Please let me know the solution of this problem. The reason why I downgraded to Bluetooth from Wifi is the battery Capacity.

Also let me know about operating voltage levels of WiFi and Bluetooth and which one has better efficiency and power consumption.

• rssi can fluctuate based on microwave oven, humidity, walls, reflection, EMI/RFI, etc. In short, it's no good for rangefinding, sadly enough... – dandavis Aug 27 '18 at 19:26

## 1 Answer

First you have to know that only one RSSI gives you nothing about distance. Because it may vary from device to device. To calculate distance you must know "calibrated" value. For example, RSSI value measured with this device on 1 meter distance. When you do that you will have 2 RSSI values: calibrated and current. Then use this formula:

double Dist = pow(10.0, (double)(CalibratedRssi - Rssi) / 20.0);

(The formula is valid for "calibrated" RSSI measured on 1 meter distance).

• Do you know how to calculate RSSI value by using HC 05 module? – Arockia Jegan Aug 27 '18 at 5:39
• As you wrote you are able to get RSSI from HC-05 so I do not undertand your question.Any way, you can not calvulate it on HC05 except you changes it firmware. You must do it on Arduino side. About your other questions (voltage, power, battery) - it all very depends on device. Some WiFi device can be better than Bluetooth, some not. Also there is BLE technolofy that does not need too much power. – Mike Petrichenko Aug 27 '18 at 5:53