蓝牙低功耗信标与Python的距离

时间:2016-05-04 13:31:06

标签: python bluetooth bluez rssi

我的任务是计算Raspberry Pi和几个蓝牙低功耗信标之间的距离(当然使用蓝牙)。

这似乎是一个相对常见的想法,但到目前为止,我发现的所有答案都不完整或不合适,通常是因为有不同的规则来管理蓝牙低功耗设备和设置,包括,例如,将两部手机连接在一起。

我的代码看起来像这个例子,虽然有一些小的改动:

https://github.com/tholum/bluez/blob/master/blue.py

也就是说我可以拿起信标的MAC地址,UUID,主要和次要号码以及" TX Power"的值,但是我显然需要另一个值 - 当前的RSSI ,由Raspberry Pi记录,用于描述信号的强度。

我可以通过终端获取RSSI(所以我知道它支持),使用

sudo btmon & hcitool lescan

但是我想通过Python获得它,所以我可以做一些计算并计算出以米为单位的距离(我知道干扰可能会影响这些读数,但我可以解决这个问题)。

有什么建议吗?

1 个答案:

答案 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