python与ardiuno通过串口进行tcp通讯案例
时间: 2023-06-27 17:07:51 浏览: 165
python串口通信案例
下面是一个简单的 Python 和 Arduino 之间通过串口进行 TCP 通信的示例代码。
Python 代码:
```python
import socket
import serial
# 设置串口参数
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
# 创建 TCP Server
tcp_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp_server.bind(('127.0.0.1', 8080))
tcp_server.listen(1)
while True:
# 等待客户端连接
print('Waiting for connection...')
conn, addr = tcp_server.accept()
print('Connected by', addr)
# 接收数据并发送给 Arduino
while True:
data = conn.recv(1024)
if not data:
break
ser.write(data)
# 关闭连接
conn.close()
print('Connection closed.')
```
Arduino 代码:
```c++
#include <SoftwareSerial.h>
// 设置软串口
SoftwareSerial softSerial(10, 11); // RX, TX
void setup() {
// 初始化串口
Serial.begin(9600);
while (!Serial) {
; // 等待串口连接
}
// 初始化软串口
softSerial.begin(9600);
// 输出欢迎消息
Serial.println("Ready to receive data...");
}
void loop() {
// 从软串口接收数据并输出到串口
if (softSerial.available()) {
Serial.write(softSerial.read());
}
}
```
在运行 Python 代码之前,请确保已经正确安装了 PySerial 库。然后,使用 Arduino IDE 将上面的 Arduino 代码上传到 Arduino 板子上。
运行 Python 代码后,它将等待客户端连接。可以使用 telnet 或其他 TCP 客户端连接到 127.0.0.1:8080,并向服务器发送数据。Python 代码将把接收到的数据发送到串口,然后 Arduino 代码将从软串口接收数据并将其输出到串口。
阅读全文