首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >随着时间的推移处理微控制器数据

随着时间的推移处理微控制器数据
EN

Stack Overflow用户
提问于 2011-03-31 00:45:52
回答 1查看 292关注 0票数 2

我正在做一个涉及Arduino和Python的项目。基本上,我从传感器接收数据,并使用Python将它们写入数据库。

目前,我对Arduino进行了编程,在某种程度上,它每分钟都在发送数据。Python程序正在等待数据并将其插入。

代码语言:javascript
复制
ser = serial.Serial('/dev/ttyUSB0',9600)
while 1:
ser.open()
if ser.readline() != "":
    db.data.insert({"Light" : ser.readline(), "Ts" : time()})
ser.close()

这种方法被证明不是很好,因为我不是每分钟一次,而是大约每4分钟插入一次。

那么,你对处理这个问题有什么建议呢?编程Arduino一直输出数据(在计算机处理器上的工作量更少),然后只需在Python中等待另一个选择?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-31 00:55:33

除非您的Arduino代码将所有内容发送两次,否则问题的一半在于您在每次迭代中调用ser.readline()两次。这意味着每两条消息中将有一条插入。

另一件看起来很奇怪的事情是,您在每次迭代期间打开和关闭串行端口。我怀疑这是否与您的问题有关,但为什么不在一开始就打开端口一次呢?

代码语言:javascript
复制
ser = serial.Serial('/dev/ttyUSB0',9600)
ser.open()
while 1:
  line = ser.readline()
  if line != "":
    db.data.insert({"Light" : line, "Ts" : time()})
ser.close()

要获得更多帮助,请发布Arduino代码。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5489378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档