我正在尝试从Arduino Uno捕获温度传感器读数,如果温度高或关闭则打开AC,然后将温度发送到Raspberry Pi并写入日志文件。
我在Raspberry Pi中的Python代码,用于捕获事件并记录到文件中。
Thread.sleep(TimeUnit.SECONDS.toMillis(15))
我可以得到温度值(有时它是一团糟 16707 ),但最重要的是它不会写入日志文件。
我错过了什么地方?我是否必须在Python代码中包含另一个库?
答案 0 :(得分:0)
您正在关闭每个循环结束时的日志文件。它应该运行一次,但在文件关闭后,它不会再次写入,直到你打开它。只需将f.close()
放在while循环之后。或者作为一种更好的做法:
ser = serial.Serial('/dev/ttyACM0', 9600)
with open("temperature.log", "w+") as f:
print 'before while'
while 1:
val = ser.readline()
f.write(now.strftime("%Y-%m-%d %H:%M"))
f.write(' -> ')
f.write(val)
一旦with
语句中的代码完成,这将自动关闭文件。