有没有人使用过 bleak 来连接多个 BLE 设备并同时接收所有设备的通知?

问题描述

我能够使用 bleak 并从所有 5 个 BLE 传感器中获取数据。但问题是我无法确定哪些数据来自哪个设备。我的意思是我需要一个表示设备地址的字符串以及数据本身。

解决方法

我能够在 Windows 和 raspberry pi 中使用 bleak 同时从所有 BLE 模块获取数据。

Windows 的唯一问题是,如果您使用蓝牙 4.2 适配器及更高版本。高速数据速率和适当的设备连接处理会更好。和 4.0 的适配器一样,每次启动脚本我都会经历一两个异常,我得到的最大连接数是 3。

当我在 Raspberry pi 3b+ 上尝试这个脚本时,它有蓝牙 4.2 的板载芯片。它能够提供高速数据速率,我的 5 个传感器同时连接到它。

此外,Github 上黯淡源代码中的 two_devices 示例是开始进一步编码的非常好的示例。

如果您运行脚本并在控制台上找到数据,但您无法从设备中获取数据。然后你需要使用functools,(它的作用是注入你当前连接的客户端,带有回调函数,它会让工作变得更容易)。

在 Github 上查看:https://github.com/hbldh/bleak/issues/601