首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于PyBluez的ESP32在树莓Pi计算模块上的奇怪工作

基于PyBluez的ESP32在树莓Pi计算模块上的奇怪工作
EN

Stack Overflow用户
提问于 2019-08-16 12:40:18
回答 1查看 192关注 0票数 0

我正在使用一个Raspberry PI计算模块3在一个自定义主板连接到一个ESP32,使用HCI通过UART连接到移动电话通过蓝牙。它可以部分工作:手机可以与设备配对,设备可以看到蓝牙界面中的手机,SDPtool可以看到设备公开的服务(RFCOMM)。

但是,当我使用pybluez时,某些功能不起作用:首先,我尝试使用该设备作为蓝牙从站。这是我最喜欢的配置。btmon显示了手机试图连接,但是pybluez从未通过sock.accept()。代码与您在pybluez上的示例中看到的几乎完全一样,我成功地将相同的代码用于股票Raspberry Pi Zero W(与集成蓝牙一起使用)。

电话显示了android.bluetooth.BluetoothSocket.readAll(BluetoothSocket.java:698) ()命令中的以下错误: W/System.err: java.io.IOException: read,socket可能关闭或超时,read:-1W/System.err: at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:387) W/System.err: at android.bluetooth.BluetoothSocket.readInt(BluetoothSocket.java:710) W/System.err: at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:387)

很难在Pi设备的日志中找到任何有价值的东西,但我在btmon中确实看到了这一点:

ACL :Handl128个标志0x02 dlen 14 hci0 75.711662 L2CAP:命令拒绝(0x01) ident5len 6原因:请求中的CID无效(0x0002)目标CID: 0源CID: 0

我还尝试使用Android黑客直接使用通道ID (而不是UUID )进行连接(实质上跳过SDP查找)--我使用获得了通道ID,这导致了同样的错误。

在彻底地尝试了不同的东西之后,我改变了立场,尝试使用手机作为蓝牙从机,而不是设备。在这里,我看到了更多的成功,但事情仍然没有像预期的那样工作:碧蓝兹的discover_devices没有报告任何设备,尽管手机和蓝牙都显示设备是成对的。然而,如果我硬编码的设备地址,我看到的蓝牙able,我实际上能够连接。

我确信蓝牙配置有问题,可能是bluez或pybluez的版本,但我找不到其他人报告这类问题。我要注意的是,我使用的是蓝牙服务上的兼容性模式开关(否则它根本不起作用)。我相信布吕兹版本是5.43。

有人见过这样的东西吗?对解决这些问题(不同版本的bluez等)有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-11 02:20:18

我最终解决了这个问题,但我不确定是哪一种改变做到了这一点:

  1. 我把波特率降到了115200。
  2. 我在固件闪存中把它换成了经典的蓝牙。
  3. 我阻止了蓝牙睡眠。

这三个变化中的一个一定成功了。

代码语言:javascript
复制
ret = esp_bt_controller_enable(ESP_BT_MODE_CLASSIC_BT);
if (ret != ESP_OK) {
    ESP_LOGE(tag, "Bluetooth Controller initialize failed: %s", esp_err_to_name(ret));
    return;
}

ret = esp_bt_sleep_disable();
if (ret != ESP_OK) {
    ESP_LOGE(tag, "Bluetooth Sleep Disable Failed: %s", esp_err_to_name(ret));
    return;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57524829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档