串行数据过滤

时间:2018-03-13 00:50:09

标签: python arduino serial-port type-conversion temperature

我在Arduino Leonardo上使用LM-35温度传感器 然后我用Python连接这个Arduino并通过串口下载温度值。

代码正在运行,Arduino正在发送数据,但我需要做的是将数值与其他字符组合在一起。 当我运行代码时,我在我的显示器上获得了类似的结果:

b'26.88\r\n'
<class 'bytes'>

我需要做的是将值26.88(摄氏温度)分开作为浮点数,但我不知道该怎么做?

以下是我的代码:

import serial, time

ser = serial.Serial('COM4', 9600)

while 1:
    str1 = ser.readline()
    print (str1)
    print (type(str1))

1 个答案:

答案 0 :(得分:0)

您需要删除\ r和\ n字符。试试这个:

import serial, time

ser = serial.Serial('COM4', 9600)

while 1:
    str1 = ser.readline()

    finalValue = str1.decode('utf-8').replace('\r','').replace('\n','')
    print (float(finalValue))