我的任务是计算Raspberry Pi和几个蓝牙低功耗信标之间的距离(当然使用蓝牙)。
这似乎是一个相对常见的想法,但到目前为止,我发现的所有答案都不完整或不合适,通常是因为有不同的规则来管理蓝牙低功耗设备和设置,包括,例如,将两部手机连接在一起。
我的代码看起来像这个例子,虽然有一些小的改动:
https://github.com/tholum/bluez/blob/master/blue.py
也就是说我可以拿起信标的MAC地址,UUID,主要和次要号码以及" TX Power"的值,但是我显然需要另一个值 - 当前的RSSI ,由Raspberry Pi记录,用于描述信号的强度。
我可以通过终端获取RSSI(所以我知道它支持),使用
sudo btmon & hcitool lescan
但是我想通过Python获得它,所以我可以做一些计算并计算出以米为单位的距离(我知道干扰可能会影响这些读数,但我可以解决这个问题)。
有什么建议吗?
答案 0 :(得分:0)
要获得RSSI我正在使用显示RSSI的bluepy模块:
Device c2:d9:46:fa:67:82 (random), RSSI=-67 dB
Flags = 04
Tx Power = fa
16b Service Data = 0a180804951e0000
Incomplete 128b Services = ba5689a6fabfa2bd01467d6e00fbabad