from machine import Pin
from utime import sleep
import dht
from hd44780 import HD44780
# Настройка DHT-датчика
sensor_pin = Pin(22)
sensor = dht.DHT22(sensor_pin)
# Настройка LCD дисплея
lcd = HD44780(rs=Pin(12), enable=Pin(14), d4=Pin(15), d5=Pin(0), d6=Pin(4), d7=Pin(17))
# Настройка светодиодов
led_temp_pin = Pin(2, Pin.OUT) # Пин для светодиода температуры
led_humidity_pin = Pin(21, Pin.OUT) # Пин для светодиода влажности
# Инициализация LCD
lcd.init()
lcd.clear()
while True:
# Получение данных от DHT22
try:
sensor.measure()
temp = sensor.temperature()
hum = sensor.humidity()
# в консоль
print('Temperature: %3.1f C' % temp)
print('Humidity: %3.1f %%' % hum)
# Вывод данных на LCD-дисплей
lcd.move_to(0, 0) # Перемещение курсора на первую строку
lcd.putstr('Temp: %3.1f C' % temp) # Печать температуры
lcd.move_to(0, 1) # Перемещение курсора на вторую строку
lcd.putstr('Hum: %3.1f %%' % hum) # Печать влажности
# Логика для управления светодиодами
if temp < 17 or temp > 25:
led_temp_pin.on()
else:
led_temp_pin.off()
if hum < 40 or hum > 60:
led_humidity_pin.on()
else:
led_humidity_pin.off()
except Exception as e:
print('Error reading from sensor:', e)
# Пауза перед следующей итерацией
sleep(2)