Arduino MLX90614 到 Pyserial 错误将字符串转换为浮点数
Arduino MLX90614 to Pyserial error converting String to Float
美好的一天!我在为我的 arduino MLX90614 代码苦苦挣扎,我的 pyserial 无法读取它显示的数据
这是我的 arduino MLX90614 代码:
#include <Wire.h>
#include <Adafruit_MLX90614.h>
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
void setup() {
Serial.begin(9600);
mlx.begin();
}
void loop() {
Serial.print("Ambient = "); Serial.print(mlx.readAmbientTempC());
Serial.print("*C\tObject = "); Serial.print(mlx.readObjectTempC()); Serial.println("*C");
Serial.print("Ambient = "); Serial.print(mlx.readAmbientTempF());
Serial.print("*F\tObject = "); Serial.print(mlx.readObjectTempF()); Serial.println("*F");
Serial.println();
delay(500);
}
这是我的 python 代码“Pyserial”,用于从我的 arduino
读取数据
import csv
from time import time
import serial
# Your serial port might be different!
ser = serial.Serial('COM5', timeout=1)
f = open("df.csv", "a+")
writer = csv.writer(f, delimiter=',')
while True:
s = ser.readline().decode()
if s != "":
rows = [float(x) for x in s.split(',')]
# Insert local time to list's first position
rows.insert(0, int(time()))
print(rows)
writer.writerow(rows)
f.flush()
但结果显示的是这个
"rows = [float(x) for x in s.split(',')]
ValueError:无法将字符串转换为浮点数:'Ambient 30c /n'"
请有人帮我解决这个问题我真的很难将我的 Arduino MLX90614 连接到我的 Arduino。提前致谢
如果 s != '' 不是 space,请在引号之间添加白色 space,这是无法传递给 int 构造函数的返回值。
注释掉列表推导式并改为打印以查看您的代码存储的当前值。
美好的一天!我在为我的 arduino MLX90614 代码苦苦挣扎,我的 pyserial 无法读取它显示的数据
这是我的 arduino MLX90614 代码:
#include <Wire.h>
#include <Adafruit_MLX90614.h>
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
void setup() {
Serial.begin(9600);
mlx.begin();
}
void loop() {
Serial.print("Ambient = "); Serial.print(mlx.readAmbientTempC());
Serial.print("*C\tObject = "); Serial.print(mlx.readObjectTempC()); Serial.println("*C");
Serial.print("Ambient = "); Serial.print(mlx.readAmbientTempF());
Serial.print("*F\tObject = "); Serial.print(mlx.readObjectTempF()); Serial.println("*F");
Serial.println();
delay(500);
}
这是我的 python 代码“Pyserial”,用于从我的 arduino
读取数据import csv
from time import time
import serial
# Your serial port might be different!
ser = serial.Serial('COM5', timeout=1)
f = open("df.csv", "a+")
writer = csv.writer(f, delimiter=',')
while True:
s = ser.readline().decode()
if s != "":
rows = [float(x) for x in s.split(',')]
# Insert local time to list's first position
rows.insert(0, int(time()))
print(rows)
writer.writerow(rows)
f.flush()
但结果显示的是这个
"rows = [float(x) for x in s.split(',')] ValueError:无法将字符串转换为浮点数:'Ambient 30c /n'"
请有人帮我解决这个问题我真的很难将我的 Arduino MLX90614 连接到我的 Arduino。提前致谢
如果 s != '' 不是 space,请在引号之间添加白色 space,这是无法传递给 int 构造函数的返回值。
注释掉列表推导式并改为打印以查看您的代码存储的当前值。