如何从python获取蓝牙扫描信息? RPi3

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从python获取蓝牙扫描信息? RPi3相关的知识,希望对你有一定的参考价值。

我想使用bluetoothctl和Python来获取有关扫描scan on的所有内容的信息,但我无法获得正确的代码来执行此操作。它们只显示一个列表,其中包含可以找到的设备的名称和地址。

我正在使用带有sudo bluetoothctl的BlueZ 5.47,当我在终端窗口中为BLE设备添加scan on时,我从传感器获取数据,我想用Python保存这个输出,我怎么能用Python做这个呢?

[bluetooth]# scan on
Discovery started
[CHG] Controller B8:27:EB:47:AE:DD Discovering: yes
[CHG] Device 04:B3:EC:00:1E:65 RSSI: -76
[CHG] Device 04:B3:EC:00:1E:65 UUIDs: 0000fbb0-0000-1000-8000-00805f9b34fb
[CHG] Device 04:B3:EC:00:1E:65 ManufacturerData Key: 0x00ac
[CHG] Device 04:B3:EC:00:1E:65 ManufacturerData Value:
  b2 00 52 01 12 17 0c 15 0e 65 1e 00 ec b3 04     ..R......e..... 
[CHG] Device 04:B3:EC:00:1E:65 AdvertisingFlags:
  06                                               .               
[CHG] Device 04:B3:EC:00:1E:65 ManufacturerData Key: 0x00ac
[CHG] Device 04:B3:EC:00:1E:65 ManufacturerData Value:
  b2 2e 52 01 12 45 0c 15 0e 65 1e 00 ec b3 04     ..R..E...e..... 

我看到PyBluez可以提供帮助,但似乎它只会在scan on中给我提供可用BLE设备的名称和信息。你知道另一种可以提供帮助的工具吗?谢谢!

答案

我不熟悉PyBluez,但如果你只想存储bluetoothctl输出,你可以使用像这样的Python 3 check_output函数。

from subprocess import check_output

ouput = check_output(['bluetoothctl'])

然后,您可以按照自己的方式解析和使用它。

以上是关于如何从python获取蓝牙扫描信息? RPi3的主要内容,如果未能解决你的问题,请参考以下文章

在运行 Windows IoT 的 RPi3 上以编程方式接受入站蓝牙配对请求

如何在 iOS 中使用 Core Bluetooth 获取蓝牙设备的唯一 ID

使用 pyjnius java wrapper 的 Python 蓝牙设备扫描

蓝牙 LE iOS 无法在后台扫描

iOS 蓝牙获取MAC地址

lesimpleble如何开启蓝牙