#El siguiente codigo es una simulacion el cual mediante el sensor DTH22 dependiendo de los
#niveles de temperatura y humedad encenderan y apagaran un LED-
#EL funcionamiento para prender el LED DE TEMPERATURA (Rojo), se presionara el boton 1 el cual solo
# si la temperatura es mayor a 50 grados se ENCENDERA. Debe cumplir esas dos condiciones
#y solo se apagara presionando el mismo boton independientemente del valor de la temperatura.
#EL funcionamiento para prender el LED DE humedad (Azul), se presionara el boton 2 el cual solo
# si la humedad es menor a 25 grados o mayor a 60 se ENCENDERA. Debe cumplir que el boton este presioando
#y que la humedad este en cualquiera de los rangos senalados.
#y solo se apagara presionando el mismo boton independientemente del valor de la humedad.
#Primero importaremos las librerias a usar en este caso son 3
from machine import Pin
#Desde el modulo machine se importa la clase pin permite la comunicacion con
#la ESP32 para acceder a sus pines de entrada y salida.
from time import sleep
#se importa la funcion sleep el cual sera utilizada para pausar la ejecucion del programa
import dht
#proporciona funciones para controlar el sensor DHT22 el cual representa sensores de temperatura y humedad.
# se realiza la declaracion de variables asignandole los Pines correspondientes
led_temperatura = Pin(14, Pin.OUT) # Pin del LED de temperatura
led_humedad = Pin(15, Pin.OUT) # Pin del LED de humedad
boton_temperatura = Pin(27, Pin.IN) # Pin del botón de temperatura
boton_humedad = Pin(26, Pin.IN) # Pin del botón de humedad
sensor = dht.DHT22(Pin(21)) # Pin del sensor DHT22
#se declara el estado inicial de ambos leds en este caso apagados
estado_led_temperatura = False
estado_led_humedad = False
while True: # Bucle principal donde se ejecutara todas las funciones principales
if boton_temperatura.value(): # se verifica el boton de temperatura
sensor.measure() # Se toma la medicion del sensor
temperatura = sensor.temperature() #se define la variable de temperatura que tendra el valor de medicion
if temperatura > 50: #se realiza una condicion de si el sensor es mayor a 50 grados
estado_led_temperatura = not estado_led_temperatura # el estado de led cambiara en este caso de FALSE pasaria a True
#se asigna ese valor logico al led
led_temperatura.value(estado_led_temperatura)
#se muestra el led encendido o apagado y esto lo mostramos en mensaje en pantalla
print("LED de temperatura encendido" if estado_led_temperatura else "LED de temperatura apagado")
sleep(0.5) # Breve pausa para evitar rebotes del botón
#en este caso para cualquier valor de la temperatura si el led esta encendido lo podemos apagar
else:
estado_led_temperatura = False #se asigna que el estado del led es falso
led_temperatura.value(estado_led_temperatura) # se muestra ese estado.
if boton_humedad.value(): # se realiza el mismo codigo pero ahora tomando en cuenta los variables de la humedad
sensor.measure() #se toma la medicion del sensor nuevamente
humedad = sensor.humidity() #se define la variable de humedad que tendra el valor de la medicion
#se declara la condicion para que pueda ser encendido el Led de humedad enste caso mientras sea
#a menor a %25 o mayor a %60 se podra dar paso para que se encienda el led posterior a presionar el boton
if humedad < 25 or humedad > 60:
# Cambiara el estado del LED
estado_led_humedad = not estado_led_humedad
led_humedad.value(estado_led_humedad)
#anadimos un print para mostrar en pantalla si estara apagado o encendido
print("LED de humedad encendido" if estado_led_humedad else "LED de humedad apagado")
sleep(0.5) # Breve pausa para evitar rebotes del botón
#en este caso para cualquier valor de la humedad si el led esta encendido lo podemos apagar
else:
estado_led_humedad = False
led_humedad.value(estado_led_humedad)