问题描述
我正在尝试将来自Arduino Uno的光传感器数据存储在.csv文件中。最初,我使用pyserial建立连接,使用此代码确实起作用:
import serial
ser = serial.Serial('COM3',baudrate=9600,timeout=1)
while 1:
arduinoData = ser.readline().decode('ascii')
print(arduinoData)
光传感器放置在暗盒中,因此您不断得到1.00 lux的值。但是,如果您在该框中打开光源,则数据会在2400到2500 lux之间波动。几乎是您所期望的。 Arduino IDE中的串行绘图仪具有相同的值。
然后,我继续编写代码以获取时间戳,将数据存储在.csv文件中并绘制图形:
import serial,time,pandas as pd,plotly.express as px
from datetime import datetime
try:
COM3 = serial.Serial('COM3',timeout=1)
print("Zum speichern der Daten COM3 entfernen")
dataFile = open('DataLog.csv','w')
dataFile.write('Zeit,Wert\r')
arduinoData = COM3.readline().decode('ascii')
except:
print("Es besteht keine Verbindung zu COM3")
quit()
while 1:
try:
currentTime = datetime.Now().strftime('%Y-%m-%d %H:%M:%s.%f')[:-3]
arduinoData = COM3.readline().decode('ascii')
dataFile.write(currentTime)
dataFile.write(',')
arduinoData = arduinoData.replace("\r\n","")
dataFile.write(arduinoData)
dataFile.write('\r')
print(arduinoData)
time.sleep(0.1)
except:
dataFile.close()
print("COM3 entfernt,Daten gespeichert")
df = pd.read_csv('DataLog.csv')
fig = px.line(df,x='Zeit',y='Wert',title='Messwerte')
fig.show()
quit()
我现在尝试记录一些数据,但是即使您打开灯,该值仍保持为1.00 lux。没有作用。 当您第一次打开光源,然后运行程序时,您会再次获得在2400到2500 lux之间波动的值。但是,即使很奇怪,当您关闭灯时,这种情况也会继续。尽管灯已关闭,但您仍会得到波动的值。
由于Arduino似乎为Arduino IDE和第一个python代码提供了正确的值,所以我想它必须与我的python程序有关;但我不知道怎么了任何帮助将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)