大家好~~:)我有一个Arduino Uno通过USB将传感器数据发送到PyCharm(Python IDE),之后我必须编译这些数据并写入CSV文件,以便稍后进行机器学习。你知道吗
我正在尝试用Python构建一个字典,作为一个函数,如下所示:
def readData(): # reads inputs from Arduino
try:
datastring = arduino.readline()
except:
pass
return datastring
def build_dictionary(): # function to build dictionary
incomingdata = readData()
for incomingdata in arduino:
incomingdata = incomingdata.strip()
if incomingdata:
datasplit = incomingdata.split(',')
i = 0
temperature = datasplit[i]
i = i + 1
humidity = datasplit[i]
i = i + 1
light = datasplit[i]
i = 0
dic = {'Temp': temperature, 'Humidity': humidity, 'Light': light}
当我把字典的某些部分打印出来时,“dic”,紧跟在“dic={…}之后,如:
print "dic['Temp']: ", dic['Temp']
我能够正常地获得输出(即PyCharm打印了Arduino发送给它的所有内容)。然而,当我做了以下事情:
def build_dictionary(): # function to build dictionary
incomingdata = readData()
for incomingdata in arduino:
incomingdata = incomingdata.strip()
if incomingdata:
datasplit = incomingdata.split(',')
i = 0
temperature = datasplit[i]
i = i + 1
humidity = datasplit[i]
i = i + 1
light = datasplit[i]
i = 0
global dic
dic = {'Temp': temperature, 'Humidity': humidity, 'Light': light}
return dic
while True:
print "dic['Temp']: ", dic['Temp']
结果是:
dic['Temp']: 24.00
dic['Temp']: 25.00
只有前两个输出奇怪地打印出来。对Arduino板的检查显示,它仍在向PyCharm(Python)发送信息,但它们只是没有被打印出来。你知道吗
我能问一下我哪里出错了吗?你知道吗
非常感谢!:)
听起来您需要从串行端口读取一行,然后处理该行,然后返回并获取新行,依此类推:
注意:
这个代码永远循环。它无法停止(除非按ctrl-C)
更新:
使用计数器在多个样本后中断:
相关问题 更多 >
编程相关推荐