用Python将传感器数据写入文本文件 - arduino



我仍在学习与Arduino和RPI一起探索Python编程力量的初学者。好吧,我写了一条简短的代码(从不同的教程和帖子中获得了帮助),用于将接收到的传感器数据以及时间戳将接收到的传感器数据写入.txt文件中。这是代码:

import serial, io
import numpy
import matplotlib.pyplot as plt
from drawnow import *
from datetime import datetime
arduinoData = serial.Serial('com3',9600)
outfile = 'C:/Python27/test.txt'
sio=io.TextIOWrapper(io.BufferedRWPair(arduinoData,arduinoData,1),encoding='ascii',newline='r')
with open(outfile,'w') as f:
    while True: # while loop that loops forever
        while (arduinoData.inWaiting()==0): #Wait here until there is data
            pass #do nothing
    arduinoString = sio.readline()
    f.write(datetime.now(),isoformat() + 't' + arduinoString + 'n')
    f.flush()
    f.close()
  • 请忽略 drawnow matplotlib 库,因为我以后会使用它们可视化数据。/li>

问题是,尽管文件是在上述位置创建的,但我没有在文件中写任何东西。我可能会完全弄乱。因此,我需要有关该程序问题的指导。

您的支持深表感谢!非常感谢!

欢呼

PRAMIT SOOD

您永远不会摆脱无限的while True:循环。

python中的凹痕很重要。
您可能打算这样做:

with open(outfile,'w') as f:
    while True: # while loop that loops forever
        while (arduinoData.inWaiting()==0): #Wait here until there is data
            pass #do nothing
        arduinoString = sio.readline()
        f.write(datetime.now(),isoformat() + 't' + arduinoString + 'n')
        f.flush()

也不要关闭文件,如果要继续写入文件。

最新更新