from machine import Pin
from time import sleep
from dht import DHT22
# Ініціалізація пінів
dht_sensor = DHT22(Pin(0)) # Датчик DHT22 на GP0
red_led = Pin(18, Pin.OUT) # Червоний світлодіод (R) на GP18
yellow_led = Pin(28, Pin.OUT) # Жовтий світлодіод (Y) на GP28
green_led = Pin(17, Pin.OUT) # Зелений світлодіод (G) на GP17
print("Алексєєнко Д.В., Лабораторна робота №2")
while True:
try:
# Зчитування даних з датчика
dht_sensor.measure()
temperature = dht_sensor.temperature()
humidity = dht_sensor.humidity()
print(f"Температура: {temperature}°C, Вологість: {humidity}%")
# Визначення статусів для температури та вологості
t_status = ""
if 18 <= temperature <= 24:
t_status = "N"
elif temperature > 24:
t_status = "AN"
else: # temperature < 18
t_status = "BN"
h_status = ""
if 40 <= humidity <= 60:
h_status = "N"
elif humidity > 60:
h_status = "AN"
else: # humidity < 40
h_status = "BN"
# Скидання стану всіх світлодіодів
green_led.value(0)
red_led.value(0)
yellow_led.value(0)
# Реалізація логіки з таблиці 2.1
if t_status == "N" and h_status == "N":
green_led.value(1)
elif t_status == "AN" and h_status == "N":
green_led.value(1)
red_led.value(1)
elif t_status == "N" and h_status == "AN":
green_led.value(1)
yellow_led.value(1)
elif t_status == "AN" and h_status == "AN":
red_led.value(1)
yellow_led.value(1)
elif t_status == "BN" and h_status == "N":
red_led.value(1)
elif t_status == "N" and h_status == "BN":
yellow_led.value(1)
# У випадку BN/BN всі світлодіоди вимкнені, що вже є станом за замовчуванням
except Exception as e:
print(f"Помилка: {e}")
sleep(2)