愛在花開的季節 发表于 2024-12-17 02:55:45

python 实现树莓派打开多串口,获取多串口数据,websocket数据吸收与发送。

以下是一个利用 Python 在树莓派上实现打开多个串口、连续监测串口数据并在有数据时通过 WebSocket 以用户 A 身份发送,同时监测 WebSocket 毗连并以用户 B 身份吸收数据的示例代码。代码利用了pyserial库来操作串口以及websocket-client库来实现 WebSocket 通讯,运行前请确保已通过pip install pyserial websocket-client安装好相应的库。
import serial
import threading
import time
import websocket
import json

# 串口配置列表,可根据实际连接的串口情况添加更多配置项
serial_configs = [
    {
      "port": "/dev/ttyUSB0",# 根据实际情况修改串口设备路径
      "baudrate": 9600,
      "timeout": 1
    },
    {
      "port": "/dev/ttyUSB1",
      "baudrate": 9600,
      "timeout": 1
    }
]

# WebSocket服务器地址,替换为真实的服务器地址和端口
websocket_server_url = "ws://your_server_address:port"

# 存储打开的串口对象列表
serial_ports = []
# 存储用于读取串口数据的线程对象列表
serial_threads = []

# 用于存储WebSocket连接对象
ws = None


# 读取串口数据的函数,持续监测串口是否有数据
def read_serial(ser):
    while True:
      try:
            data = ser.readline().decode('utf-8').strip()
            if data:
                print(f"从串口 {ser.port} 读取到数据: {data}")
                # 调用发送数据到服务器的函数,以用户A的身份发送
                send_data_to_server(data, ser.port, "A")
            else:
                time.sleep(0.1)# 短暂休眠,避免空循环占用过多资源
      except serial.SerialException as e:
            print(f"串口 {ser.port} 读取出
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: python 实现树莓派打开多串口,获取多串口数据,websocket数据吸收与发送。