【问题标题】:如何从(蓝牙)串口获取数据到python程序?
【发布时间】:2022-01-14 12:24:44
【问题描述】:

我已经通过实施这个解决方案成功地从蓝牙连接设备接收数据:

https://scribles.net/setting-up-bluetooth-serial-port-profile-on-raspberry-pi-using-d-bus-api/

使用 minicom 可以正常工作,但我需要处理到达 python 程序的数据。我到底要如何将数据输入 python 程序而不是在 minicom 中接收?

另外:由于我是 python、蓝牙和 github 的绝对初学者,这是我能够开始工作的唯一解决方案。在过去的几周里,我尝试了几种方法,我确信还有许多其他更好、更容易的方法,如果有更好/更简单的解决方案的建议,我将不胜感激。

Python 3.7 RPi3 (1.3)

bluetoothclt 中的连接状态->info:

Device 00:07:80:E0:A4:FC (public)
    Name: WT11i-A
    Alias: WT11i-A
    Class: 0x00001f00
    Paired: yes
    Trusted: yes
    Blocked: no
    Connected: yes
    LegacyPairing: no 
    UUID: Serial Port (00001101-0000-1000-8000-00805f9b34fb)
    UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
    Modalias: bluetooth:v0047pF000d0400

sudo rfcomm -a show hci0:

rfcomm0: B8:27:EB:A6:D7:4F -> 00:07:80:E0:A4:FC channel 1 connected [reuse-dlc release-on-hup tty-attached]

【问题讨论】:

  • @ukBaz thanx 4ur 回答,但经过数周的努力,我有一个工作连接发送 minicom 正在接收的数据。 Bluedot 的先决条件是 Raspi 和 2nd Raspi 或 Android 手机,对吗?在我的情况下,我有一个 Raspi 和一个(哑巴?)BT 设备(秤),当我按下物理按钮时它会发送数据。因此,感觉好像我很接近,但尝试使用 Bluedot 将重新开始。由于我在 SO 上阅读了您的许多帖子,因此我知道您是真正的专家,因此我非常重视您的意见。
  • @ukBaz 非常感谢您的回答。为什么BT设备是SPP客户端?难道BT设备不是服务器,RPi是客户端吗?我实施的解决方案 (scribles.net/…) 中的什么内容表明 BT 设备是 SPP 客户端?对不起,我是个砖头,但经过数周的努力,我完全迷失了方向。
  • @ukBaz 感谢您的澄清(=驱散一些迷雾),是的,您的理解是正确的。由于我能够与 Blueman 进行连接,我将尝试构建一个 Bluedot 服务器应用程序,在串行端口上侦听从 BT 设备发送的数据。我肯定会有问题,所以......我会回来的!
  • 让我们重新开始,因为我搞错了。如果您的 BT 设备正在做广告,那么您需要创建一个 Bluedot client 并将您的 BT 设备的地址作为 server 值。在连接 Bluedot 之前,您需要 pair RPi 和您的 BT 设备。配对是一次性操作,最好在 RPi 上使用bluetoothctl。您可以关注instructions 获取second raspberry pi。您的 BT 设备正在扮演第一个 RPi 的角色
  • @ukBaz 谢谢你的解释!由于我有一个可行的解决方案(如上所述),我假设不再需要配对和连接(我已经编辑了我的帖子,添加了上面的“连接状态”)。

标签: python bluetooth serial-port


【解决方案1】:

在 ukBaz 的惊人帮助下,我终于成功了。 诀窍是:抛弃 RFCOMM ......显然并不令人惊讶。 我断开了 RFCOMM 连接并且没有使用“Blueman 管理器”进行连接。相反,只需运行 Bluedot 默认客户端脚本就可以了!

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-21
  • 2017-10-03
  • 2017-12-14
  • 1970-01-01
  • 2019-02-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多