Как управлять задержкой (короткий период времени) в Python
Я работаю над приложением, связанным с температурой, используя Python(с tkinter), Raspberry Pi с датчиком температуры DS18B20. Основным требованием приложения является
- Показывать температуру каждые 3 секунды и проверять, не превышает ли температура превышение порогового значения (скажем, 10C), для продолжения в течение 10 минут следует активировать реле кондиционера.
Код работает нормально, чтобы отобразить температуру (каждые 3 секунды) и активировать реле кондиционера, но я не могу управлять 10-минутным окном ожидания.
Я новичок в Python, поэтому любая помощь в отношении того же будет признателен.
2 ответа
Решение
Поскольку вы не поделились настоящим кодом, единственное, что я могу сделать, это описать вашу стратегию:
- Создайте переменную с именем
start_timestamp
, Еще до первой проверки температуры присвойте ей текущее время. - Каждый раз, когда вы проверяете, что текущая температура ниже или равна 10 ° С, установите
start_timestamp
к текущему времени еще раз. - Каждый раз, когда вы проверяете, что текущая температура выше 10C, ничего не делать с
start_timestamp
, - После каждой проверки температуры сравнивайте текущее время с (
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()