python - 随着时间的推移处理微 Controller 数据

标签 python arduino

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

目前,我已经以某种方式对 Arduino 进行了编程,使其每分钟发送一次数据。 Python 程序正在等待数据并插入它。

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 中等待另一个选择?

最佳答案

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

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

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 代码。

关于python - 随着时间的推移处理微 Controller 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5489378/

相关文章:

python - pandas - 与相同类别的列连接变成对象

python - BNF 可以处理远期消费吗?

python - 如何检查 AlchemyAPI 中剩余的调用次数? Python

arduino - 从具有相同地址的 i2c 传感器读取值

ios - 外部视频输入到 iOS 设备

python - 将多维矩阵转换为一维向量

bash (Linux) 中的 Python3.4 不提供文本着色

c++ - Arduino 在另一个类的构造函数中传入一个对象作为参数

c++ - 使用类模板参数比使用实例变量有什么好处?

Python I2C 通信 TTP229