啥也不說了直接上代碼
# sudo pip3 install bluepy
from bluepy.btle import Scanner, Peripheral
import time
def scan():
scanner=Scanner()
devs=scanner.scan(2)
print("掃描到的設(shè)備一共有:" + str(len(devs)))
for dev in devs:
distance(dev.addr,dev.rssi)
def distance(mac,rssi):
# d = 10^((abs(RSSI) - A) / (10 * n))
# d - 計(jì)算所得距離
# RSSI - 接收信號(hào)強(qiáng)度(負(fù)值)
# A - 發(fā)射端和接收端相隔1米時(shí)的信號(hào)強(qiáng)度
# n - 環(huá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 沒有測(cè)在網(wǎng)上找的值所以測(cè)出來(lái)的距離有點(diǎn)偏差。后續(xù)可以的話會(huì)嘗試使用三個(gè)樹莓派進(jìn)行未知點(diǎn)的定位。