使用Python串口实时显示数据并绘图需要以下步骤:
1. 安装Python的Pyserial包
Pyserial是一个Python模块,它提供了在Python中访问串口的功能,可以很方便地与嵌入式设备进行通信。您可以通过pip命令安装Pyserial,示例代码如下:
pip install pyserial
2. 串口连接
在Python中使用串口,需要首先建立串口连接。可以使用Serial类实现,示例代码如下:
import serial
ser = serial.Serial('COM1', 9600, timeout=1)
其中,'COM1'为串口名称,如果您使用的是Linux或Mac系统,则是类似于'/dev/ttyUSB0'的串口名称,9600为波特率,timeout=1表示在读取串口数据时最多等待1秒钟。
3. 读取串口数据并进行实时显示和绘图
读取串口数据需要使用Serial类的read()方法,读取到的数据类型为bytes,需要使用decode()方法将其转化为字符串。接着,我们可以使用matplotlib库进行实时数据绘图。
以下是一个示例代码,可以实时将通过串口发送的数据绘制成折线图:
import serial
import matplotlib.pyplot as plt
ser = serial.Serial('COM1', 9600, timeout=1)
plt.ion()
plt.figure(figsize=(10, 6))
x = []
y = []
while True:
data = ser.read(size=8).decode().strip()
if data:
value = float(data)
x.append(len(x))
y.append(value)
plt.clf()
plt.plot(x, y)
plt.xlabel("Time (s)")
plt.ylabel("Value")
plt.title("Real-time Data Graph")
plt.pause(0.01)
上述代码需要不断循环读取串口数据,并将其解析后添加到x和y数组中,并实时绘制折线图。
另外一个示例是,可以通过串口接收并显示传感器数据,如温度、湿度等。例如,对于DHT11温湿度传感器,以下是一个示例代码,可以实时读取传感器数据并将其显示在控制台中:
import serial
ser = serial.Serial('COM1', 9600, timeout=1)
while True:
data = ser.readline().decode().strip().split(',')
if len(data) == 2:
temp = float(data[0])
humid = float(data[1])
print("Temperature: {} C, Humidity: {} %".format(temp, humid))
上述代码通过readline()方法读取串口数据,解析后显示温度和湿度信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Python串口实时显示数据并绘图的例子 - Python技术站