使用 Python 在 Ubuntu 上通过串口进行通信

在这一篇文章中,我们将学习如何在 Ubuntu 上通过 Python 进行串口通信。此过程可能对刚入门的小白来说有些复杂,但只要依照步骤来,您会发现其实很简单。下面我们将以表格的形式展示整个流程。

流程步骤

步骤 描述
1 安装必要的软件包
2 查找串口设备
3 编写 Python 代码进行串口通信
4 运行代码,进行串口通信测试

详细步骤说明

1. 安装必要的软件包

首先,我们需要安装 pyserial 库,这是一个用于串口通信的 Python 库。在终端中运行以下命令:

sudo apt-get update
sudo apt-get install python3-pip  # 确保安装了 pip
pip3 install pyserial              # 安装 pyserial 库
  • sudo apt-get update:更新软件包列表。
  • sudo apt-get install python3-pip:安装 Python 3 的 pip 工具(如果尚未安装)。
  • pip3 install pyserial:使用 pip 安装 pyserial 库。

2. 查找串口设备

在 Ubuntu 中,您可以通过以下命令查看连入的串口设备:

ls /dev/tty*

通常,串口设备会显示为 /dev/ttyUSB0/dev/ttyS0 等。

  • ls /dev/tty*:列出所有的串口设备。

3. 编写 Python 代码进行串口通信

接下来,我们编写一个简单的 Python 脚本,它可以打开串口、发送数据和接收数据。创建一个新的 Python 文件,例如 serial_test.py,并输入以下代码:

import serial  # 导入串口库
import time    # 导入时间库

# 设置串口参数
port = '/dev/ttyUSB0'  # 修改为你的串口
baudrate = 9600        # 波特率
timeout = 1            # 超时时间

# 初始化串口
ser = serial.Serial(port, baudrate, timeout=timeout)
time.sleep(2)  # 等待串口稳定

# 发送数据
data_to_send = b'Hello, Serial Port!'  # 数据使用字节格式
ser.write(data_to_send)  # 发送数据
print(f"Sent: {data_to_send.decode()}")  # 打印发送的数据

# 接收数据
received_data = ser.read(100)  # 读取100字节
print(f"Received: {received_data.decode()}")  # 打印接收的数据

# 关闭串口
ser.close()
  • import serial:导入串口库。
  • import time:导入时间库,以便使用延时。
  • port = '/dev/ttyUSB0':设置串口端口,请根据您的实际设备调整。
  • baudrate = 9600:设置波特率为 9600。
  • ser = serial.Serial(port, baudrate, timeout=timeout):初始化串口。
  • ser.write(data_to_send):发送数据到串口。
  • ser.read(100):从串口读取 100 字节的数据。
  • ser.close():关闭串口连接。

4. 运行代码,进行串口通信测试

在终端中,您可以使用以下命令来运行您的代码:

python3 serial_test.py

通过执行以上命令,您会发送一条消息到串口,并尝试接收返回的数据。记得在测试之前要确保串口设备已经连接,并根据您的设备调整 port 字段。

序列图

以下是串口通信的序列图,表示数据的发送和接收过程:

sequenceDiagram
    participant User
    participant Serial Port
    User->>Serial Port: Send "Hello, Serial Port!"
    Serial Port-->>User: Receive Data

实体关系图

以下是我们进行串口通信所涉及的实体关系图:

erDiagram
    SERIAL_PORT {
        String id PK
        String baudrate
        String data
    }
    USER {
        String id PK
        String name
    }
    USER ||--o| SERIAL_PORT : communicates

结语

通过这篇文章,您应该能够在 Ubuntu 系统中通过 Python 成功实现串口通信。我们详细讲解了每一个步骤以及所需的代码,以便您在实践中更好地理解和应用这些知识。串口通信在许多项目中都很常见,无论是与传感器、嵌入式设备还是其他硬件的通信,掌握这一技能将为您未来的开发工作奠定良好的基础。如果您在实现过程中遇到任何问题,请随时回顾每一步或向社区寻求帮助。祝您编程愉快!