啥也不说了直接上代码
# sudo pip3 install bluepy
from bluepy.btle import Scanner, Peripheral
import time
def scan():
scanner=Scanner()
devs=scanner.scan(2)
print("扫描到的设备一共有:" + str(len(devs)))
for dev in devs:
distance(dev.addr,dev.rssi)
def distance(mac,rssi):
# d = 10^((abs(RSSI) - A) / (10 * n))
# d - 计算所得距离
# RSSI - 接收信号强度(负值)
# A - 发射端和接收端相隔1米时的信号强度
# n - 环境衰减因子
rssi = abs(rssi)
power = ((rssi - 59)/(10 * 2.0))
power = (10 ** power)
print("MAC = "+ mac +", distance = "+str(power) + " m")
while True:
scan()
time.sleep(1)
由于n A 没有测在网上找的值所以测出来的距离有点偏差。后续可以的话会尝试使用三个树莓派进行未知点的定位。
网友评论