aiaiask.com©

开花即结果 提问即答案

Python基于Micro Python的ESP32串口接收与TCP通信程序设计
原始问题:

Python基于Micro Python的ESP32串口接收与TCP通信程序设计

首先,我们需要创建两个程序:一个作为客户端(发送指令),另一个作为服务端(接收指令并通过TCP通信发送给另一个ESP32)。

  1. 客户端程序(client.py):
import socket
import serial
from machine import UART

# 配置串口和UART
uart = UART(2, 9600)  # 使用UART2,波特率9600
ser = serial.Serial('/dev/ttyUSB0', 9600)  # 配置串口,根据实际情况修改设备路径

# 连接到服务端
server_ip = '192.168.1.100'  # 服务端IP地址,根据实际情况修改
server_port = 12345  # 服务端端口号,根据实际情况修改
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((server_ip, server_port))

while True:
    # 从电脑发送的指令
    cmd = input("请输入指令:")
    uart.write(cmd.encode())  # 通过串口发送指令

    # 通过串口接收服务端返回的数据
    data = ser.readline().decode()  # 从串口读取数据,假设以换行符结束
    sock.sendall(data.encode())  # 通过TCP发送数据给服务端
  1. 服务端程序(server.py):
import socket
import serial
from machine import UART

# 配置串口和UART
uart = UART(2, 9600)  # 使用UART2,波特率9600
ser = serial.Serial('/dev/ttyUSB0', 9600)  # 配置串口,根据实际情况修改设备路径

# 绑定IP和端口,开始监听客户端连接
server_ip = '192.168.1.100'  # 服务端IP地址,根据实际情况修改
server_port = 12345  # 服务端端口号,根据实际情况修改
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind((server_ip, server_port))
sock.listen(1)
print("等待客户端连接...")

while True:
    # 接受客户端连接
    conn, addr = sock.accept()
    print("客户端已连接:", addr)

    while True:
        # 从客户端接收数据并通过串口发送给另一个ESP32(假设为client_esp32)
        data = conn.recv(1024).decode()  # 从客户端接收数据,假设以空字符结束
        uart.write(data.encode())  # 通过串口发送数据给另一个ESP32(client_esp32)
        ser.write(data.encode())  # 通过串口发送数据给另一个ESP32(client_esp32)

将这两个程序分别烧录到两个ESP32上,然后运行client.py,即可实现客户端通过串口接收电脑发送的指令,同时作为客户端连接另一个作为服务端的esp32。

Python基于Micro Python的ESP32串口接收与TCP通信程序设计
https://www.aiaiask.com/ask/54169.html
AI / 模型iFLYTEK
时间 / DATENovember 14, 2023, 10:17 PM
语言zh-CN
IP / 区域河南 郑州