snipplets.dev/projects/MicroPython/DTH11/main.py

42 lines
1.3 KiB
Python

import dht
import machine
import time
WAKE_TIME = 5 # Период в секундах пробуждения устройства
sensor = dht.DHT11(machine.Pin(0)) # Пин датчика DHT11
# Настравает RTC.ALARM0 для пробуждения устройства
rtc = machine.RTC()
rtc.irq(trigger=rtc.ALARM0, wake=machine.DEEPSLEEP)
# Проверка пробуждение устройства от глуюокого сна
if machine.reset_cause() == machine.DEEPSLEEP_RESET:
time.sleep(2)
print('Measuring', end = '')
retry = 0
while retry < 3:
try:
sensor.measure()
break
except:
retry = retry + 1
print('.', end = '')
print('')
if retry < 3:
print('Temperature: %3.1f °C' % sensor.temperature())
print(' Humidity: %3.1f %% RH' % sensor.humidity())
# Задержка, чтобы успеть подключиться к REPL
# и обновить скрипт, если что-то пойдёт не так!
time.sleep(5)
# Устанавливает RTC.ALARM0 для активации через указанный период (пробуждение устройства)
rtc.alarm(rtc.ALARM0, WAKE_TIME * 1000)
# Переводиит устройство в спящий режим
machine.deepsleep()