42 lines
1.3 KiB
Python
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()
|