希望你没事!真的希望你能在这方面帮助我。
我有两个ESP32和一个覆盆子。每个ESP32都有一个按钮,当我按下任何按钮时,必须通过每个ESP32的蓝牙发送消息
ESP32_1信息:“1L 100 200”
ESP32_2信息:“2R 100 200”
我可以在两个不同的终端上使用以下命令通过蓝牙成功连接ESP32和raspberry:
sudo rfcomm connect 1 XX:XX:XX:XX:XX(MAC1)
sudo rfcomm connect 2 XX:XX:XX:XX:XX(MAC2)
我需要的是,如果我按下ESP32_1的按钮_1,消息1必须以树莓色接收。否则,如果我按下ESP32_2的按钮_2,则必须接收消息2并在raspberry中打印
问题是,当我按下按钮2时不发送任何信息,当我按下按钮1之后,发送按钮2+按钮1的信息时,端口似乎在等待接收另一个按钮中的信息
下面是我为Raspberry编写的Python代码:
#! /usr/bin/python
import serial
import time
Incoming_Data1 = ""
Incoming_Data2 = ""
bluetoothSerial1 = serial.Serial("/dev/rfcomm1", baudrate =115200) #Connecting to source 1
bluetoothSerial2 = serial.Serial("/dev/rfcomm2", baudrate =115200) #Connecting to source 1
print("Bluetooth Connected GBF")
def Flush_all():
bluetoothSerial1.flush()
bluetoothSerial2.flush()
while 1:
try:
Flush_all()
Incoming_Data1 = bluetoothSerial1.readline()
print(Incoming_Data1)
Flush_all()
except:
Flush_all()
try:
Flush_all()
Incoming_Data2 = bluetoothSerial2.readline()
print(Incoming_Data2)
Flush_all()
except:
Flush_all()
提前谢谢
最好避免使用rfcomm,因为它早在2017年就开始使用了
如http://blog.kevindoran.co/bluetooth-programming-with-python-3/中所述,串行端口配置文件(SPP)蓝牙客户端连接可以通过Python3标准套接字库完成(在bluetoothctl中完成配对后)
Kevin博客中的例子可以扩展到连接两台设备。可能是这样的:
还有一个Bluedot库,它有助于提取一些细节: https://www.stuffaboutcode.com/2017/07/python-bluetooth-rfcomm-client-server.html
相关问题 更多 >
编程相关推荐