-
-
Save eklimcz-zz/446b56c0cb9cfe61d575 to your computer and use it in GitHub Desktop.
function calculateDistance(rssi) { | |
var txPower = -59 //hard coded power value. Usually ranges between -59 to -65 | |
if (rssi == 0) { | |
return -1.0; | |
} | |
var ratio = rssi*1.0/txPower; | |
if (ratio < 1.0) { | |
return Math.pow(ratio,10); | |
} | |
else { | |
var distance = (0.89976)*Math.pow(ratio,7.7095) + 0.111; | |
return distance; | |
} | |
} |
it is not accurate
🥇
Thanks.
Is it possible to get latitude and longitude by using RSSI without GPS?
I am working on beacon tracking application. Beacon sends data to gateway and gateway pass data to server.
@jimmy2020
Nope, rssi stand for Received signal strength indication. Basically it is just a signal strength
Can someone explain the need for lines 10-12?
@totterfree Not sure how those values came to be but do read the answer in the stackOverflow post
https://stackoverflow.com/a/20434019/2104970
Not accurate, 0.89976, 7.7095 and 0.111 are average numbers
When I tested your code on my application, I was 2 meters far from the sender and the function returned a distance of 0.0829... . The rssi was -46dB. It seems like I should change the variable txPower much under -59. If anyone has an idea for my problem
Your code says that if you receive less than -59dB, then the sender is at most 1 meter far from you. Whereas after testing on my experience -59dB represents a longer distance
Distance in meter or in feet?