【发布时间】:2021-04-09 12:07:05
【问题描述】:
我想将我的蓝牙低功耗运动手表 (Suunto Ambit 3) 与我的 Raspberry PI 3 B V1.2 配对 我正在使用带有内核版本 5.4.79-v7+ 的 RaspianOS 版本 10 buster 此操作系统包含 5.50 版中的 bluez 堆栈,该堆栈是通过 apt-get 从预定义的软件包安装的。
ble配对通常是通过android和IOS下的智能手机完成的。在进行配对过程时,手表会提供一个密码,必须由智能手机输入。 使用 android 下的 nRFConnect 应用程序,配对工作正常。 当我在树莓上运行 hcitool 并且手表处于配对模式时,它会出现。
sudo hcitool -i hci0 lescan
但是当我尝试使用scan on 运行sudo bluetoothctl 命令时,我的设备没有出现,并且与正确的mac 地址配对也不起作用。
其他设备仍然出现在 bluetoothctl
我还查看了https://github.com/raspberrypi/linux/issues/3689,但这似乎只与较新的树莓派模型有关。
知道是什么阻碍了我的设备在 bluetoothctl 扫描模式下被找到,或者我可以做些什么来配对我的设备并启用 pin 码?
【问题讨论】:
-
这听起来像是 bluetoothctl 或 Suunto watch 的错误。当你通过bluetoothctl找不到设备时,你能同时使用nRF Connect看到它吗?换句话说,您是否完全确定手表没有停止广告或没有自动连接到其他东西。我之所以问,是因为如果发生了这两件事中的一件,那么预计手表将不再通过 bluetoothctl 可见。
-
这是一个长镜头,但您也可以尝试重置 btmgmt,如以下答案所示:- stackoverflow.com/questions/62147384/…。也许这会以某种方式让事情发挥作用。
-
还值得检查的是,如果您执行
blutoothctl devices,手表不在列表中,因为如果现有设备已经被发现,它们通常会在扫描过程中被过滤掉。sudo service bluetooth restart通常是重置bluetoothd的好主意。要获得更多的调试可见性,请使用journalctl -f -u bluetooth和sudo btmon -
您好,感谢您的回复。
-
您好,感谢您的回复。我做了一些进一步的调查:看起来我的手表确实发送了一个未连接的广告帧。可能是为了防止其他应用程序连接到该手表我对帧格式不是很熟悉,但
hcidump --raw给了我04 3E 21 02 01 00 00 C0 81 ...我尝试使用 nRF 连接进行相同的模拟,而 bluetoothctl 的行为相同。因此,如果禁用可连接,则找不到。可能我必须访问它比 bluetoothctl 更深的级别。你知道是否有一些工具/库吗?
标签: raspberry-pi bluetooth-lowenergy bluez pairing