############################
# E017_DHT11.PY: Lee datos de temperatura y humedad con DHT11/22
# ENTRADAS: Datos de DHT11/22 y temperatura y humedad máximas
# SALIDAS: Temperatura (C), humedad (%) y LED alarma
############################
import dht # Gestión del sensor DHT11/22
from machine import Pin # Acceso al GPIO
import time # Gestión de tiempo
# Configura el pin al que conectaste el DATA del DHT11/22
pin_dht = Pin(32, Pin.IN) # Ajusta el número del pin según tu conexión
# Configura los pines de los LED de alarmas
led1=Pin(26, Pin.OUT) # LED verde
led2=Pin(27, Pin.OUT) # LED rojo
led1.off() # Apaga verde
led2.off() # Apaga rojo
# Crear un objeto DHT (usar DHT11 o DHT22)
sensor = dht.DHT22(pin_dht)
t_max = 22 # Temperatura máxima
h_max = 65 # Humedad máxima
print('SENSOR TEMPERATURA Y HUMEDAD DHT11')
while True: # Bucle de lectura de datos
try:
# Lee los datos del sensor
sensor.measure()
temperatura = sensor.temperature() # Captura temperatura
humedad = sensor.humidity() # Captura humedad
if temperatura >= t_max or humedad >= h_max: # Hay alarma?
led1.off() # Enciende LED rojo
led2.on()
else:
led1.on() # Enciende LED verde
led2.off()
# Imprime los resultados con formato
print("Temperatura: {}C, Humedad: {}%".format(temperatura, humedad))
except Exception as e:
print("Error al leer el sensor:", e)
# Espera antes de la siguiente lectura
# El DHT11/22 necesita 1s/2s entre lecturas
time.sleep(2)