在python中,如何分离从串行端口接收的值并将其存储为单独的变量?

2024-10-06 11:40:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python、sensors和Stackoverflow都是新手。我正在我的大学里做一个项目,通过pyserial读取我个人电脑COM4上的4个传感器数据。我写了下面的代码来完成这个任务:

import serial
ser = serial.Serial('COM4', 9600, timeout=5)
ser.write("\r".encode())
response =  ser.read(60)
print (response)
ser.close()

我得到的输出如下:

^{pr2}$

值69、45117994分别是来自4个传感器的读数。我做了一些研究并将print (response)改为print (response.decode('utf-8')),现在我得到的输出如下所示:

reply:node01
69
45
117
994

我真的需要一些帮助来分离和存储传感器值和我的初始输出,或者添加print (response.decode('utf-8'))作为独立变量后收到的输出,比如field1=69,field2=45,field3=117,field4=994。这样我就可以把这个发送到thingspeak API:

https://api.thingspeak.com/update?api_key=XXXXXXXXXXXXXXXXXXX&field1=69&field=45&field3=117&field4=994

PS:可伸缩-在这个项目的后期阶段可能会添加更多的传感器,因此接收到的数据值的数量也会增加。在

拜托,我真的需要一些帮助。在


Tags: 数据项目apiresponseserial传感器serutf
1条回答
网友
1楼 · 发布于 2024-10-06 11:40:11

很好的调用从字节到文本的转换。现在假设您存储解码后的字符串,如

my_str = response.decode('utf-8')

您可以使用splitlinesstring方法为每一行获取字符串:

^{pr2}$

然后,您可以将这些值插入到某个模板中,以提供所需的URL。如果您想要一个值列表,只需使用

fields = my_str.splitlines()

相关问题 更多 >