Python 1Hz测量温度

时间:2016-03-02 21:29:38

标签: csv python-3.x

我想在python中创建csv文件,存储来自传感器的数据加上读数的时间戳。但传感器测量速度快,我需要在1秒后准确地从传感器进行1次测量。例如传感器值为20时12:34:15。我需要在12:34:16准确值。我不必使用time.sleep因为它会产生超过秒的延迟,并且如果我必须读取超过100的读数将影响日志文件。

1 个答案:

答案 0 :(得分:0)

消费者PC没有实时操作系统,并且无法保证特定进程每秒至少执行一次,当然也无法保证每隔1秒执行一次。如果您希望使用Python进行精确定时测量,则应该在微控制器板上执行Micropython。它可能能够做你想要的。 Raspberry Pi板上的Python也可能比PC更好。

在常规PC上,我会先使用perf_counter开始。

from time import perf_counter as timer
from somewhere import sensor, save  # read temperature, save value
t0 = t1 = timer()
delta = .99999  # adjust by experiment to average 1 sec reading intervals
while True:
    while t1 - t0 < delta:
        t1 = timer()
    value = sensor())
    save(value)
    t0 = t1