【发布时间】: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 之前,您需要pairRPi 和您的 BT 设备。配对是一次性操作,最好在 RPi 上使用bluetoothctl。您可以关注instructions 获取second raspberry pi。您的 BT 设备正在扮演第一个 RPi 的角色 -
@ukBaz 谢谢你的解释!由于我有一个可行的解决方案(如上所述),我假设不再需要配对和连接(我已经编辑了我的帖子,添加了上面的“连接状态”)。
标签: python bluetooth serial-port