问题描述
我正在研究一个项目,该项目使用HC-05蓝牙模块通过蓝牙连接在树莓派和一系列Arduino之间进行通信。我可以使用bluetoothctl配对arduino,并使用python脚本进行通讯,但是我也想在脚本中包含配对过程,但是我没有找到在脚本中包含蓝牙配对销的解决方案。
我尝试过的事情:
import subprocess,shlex
addr = "00:14:03:06:12:84"
pinCode = "1234"
args = ["bluetoothctl",f"pair {addr}",pinCode]
args = shlex(args)
subprocess.Popen(args)
- 我也尝试使用bluetoothctl wrapper,但这里也没有引脚选项。
是否可以通过python配对?
解决方法
Bluez希望通过D-Bus Agent API来做到这一点,该文档记录在https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/agent-api.txt
Bluez源代码树中还有一个Python示例:https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test/simple-agent
由于配对通常是一次性的设置/安全性步骤,在该步骤中交换密钥并建立一个受信任的设备,因此我质疑自动配对过程的价值。您真的要与随机打开且在范围内的设备配对吗?
RPi和HC-05之间的后续连接不需要先进行配对步骤。只需要求Raspberry Pi调用连接命令,因为两个设备已经配对并受到信任。