Как управлять задержкой (короткий период времени) в Python

Я работаю над приложением, связанным с температурой, используя Python(с tkinter), Raspberry Pi с датчиком температуры DS18B20. Основным требованием приложения является

  • Показывать температуру каждые 3 секунды и проверять, не превышает ли температура превышение порогового значения (скажем, 10C), для продолжения в течение 10 минут следует активировать реле кондиционера.

Код работает нормально, чтобы отобразить температуру (каждые 3 секунды) и активировать реле кондиционера, но я не могу управлять 10-минутным окном ожидания.

Я новичок в Python, поэтому любая помощь в отношении того же будет признателен.

2 ответа

Решение

Поскольку вы не поделились настоящим кодом, единственное, что я могу сделать, это описать вашу стратегию:

  1. Создайте переменную с именем start_timestamp, Еще до первой проверки температуры присвойте ей текущее время.
  2. Каждый раз, когда вы проверяете, что текущая температура ниже или равна 10 ° С, установите start_timestamp к текущему времени еще раз.
  3. Каждый раз, когда вы проверяете, что текущая температура выше 10C, ничего не делать с start_timestamp,
  4. После каждой проверки температуры сравнивайте текущее время с (start_timestamp плюс 600 секунд). Если оно больше, это означает, что в последний раз температура оказалась ниже 10 ° С, по крайней мере, 10 минут назад.

Поскольку вы утверждаете, что вы можете обновлять измерение температуры каждые 3 секунды, предполагая, update_every_3_seconds это функция для этого, добавьте:

high_temp_seconds = 0
...

def update_every_3_seconds():
    ...
    global high_temp_seconds
    if high_temp:
        high_temp_seconds += 3
    else:
        high_temp_seconds = 0
    if high_temp_seconds >= (10 * 60):
       activate_AC_relay()
Другие вопросы по тегам