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()
