from machine import Pin
from utime import sleep
import dht # Убедитесь, что вы импортируете библиотеку DHT для работы с датчиком.
from hd44780 import HD44780 # Импортируйте библиотеку для работы с LCD
# Настройка DHT-датчика
sensor_pin = Pin(22) # Определите пин для DHT22
sensor = dht.DHT22(sensor_pin)
# Настройка LCD дисплея
lcd = HD44780(rs=Pin(12), enable=Pin(13), d4=Pin(14), d5=Pin(27), d6=Pin(26), d7=Pin(25))
# Настройка светодиодов
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.clear()
# Вывод данных на 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) # Обновление каждые 2 секунды