#include <Adafruit_Sensor.h> //Incluimos librerías para los sensores
#include <DHT.h> //Incluimos la librería de sensores de temperatura y humedad DHT22
#include <DHT_U.h> //Incluimos la librería de sensores de temperatura y humedad DHT22
#define DHTPIN 23 //Definimos cuál es el pin el cual irá conectado al sensor de temperatura
#define DHTTYPE DHT22 //Definimos el tipo de sensor de temperatura
int ledindicador = 2; //Definimos una variable de tipo entera llamada ledindicador el cual irá conectado al pin 2 del ESP32
DHT dht(DHTPIN, DHTTYPE); //Indicamos que "dht" irá conectado al pin 23 del ESP32 y al sensor de tipo DHT22
void setup() { //Se ejecuta una sola vez y se encarga de recoger la configuración para comenzar
Serial.begin(115200); //Configuración de la velocidad de transmisión con un valor de 115200
Serial.println(); //Función que nos permite escribir datos en el puerto serial
Serial.println("Reset"); //Nos imprime Reset una vez que inicializamos el programa
dht.begin(); //Empieza e inicializa
pinMode(ledindicador, OUTPUT); //Indicamos que el ledindicador será una salida (OUTPUT) de datos donde obtendremos un apagado o un encendido
}
void loop (){ //Realiza un bucle (Se ejecuta cíclicamente)
float temperatura = dht.readTemperature(); //La lectura de la temperatura se guardará en una variable flotante (con punto decimal) llamada temperatura
float humedad = dht.readHumidity(); //La lectura de la humedad se guardará en una variable flotante (con punto decimal) llamada humedad
Serial.println("Temperatura: " + String(temperatura, 2) + "°C"); //Nos "imprimirá" en la pantalla de Serial Monitor la lectura de temperatura en grados centígrados con dos decimales
Serial.println("Humedad: " + String(humedad, 2) + "%"); //Nos "imprimirá" en la pantalla de Serial Monitor el porcentaje de la lectura de humedad con dos decimales
if(temperatura >= 25.50){ //Nos indica que si el valor de va variable flotante llamada temperatura es mayor o igual a 25.5 se realizará lo que está dentro de la función if
digitalWrite(ledindicador, HIGH); //El ventilador se encenderá cuando la función if sea verdadera mandando una señal digital (1)
Serial.println("Ventilador Encendido"); //Se "imprimirá" en la pantalla de Serial Monitor que el ventilador está encendido
}
else{ //Si la variable flotante de temperatura no es igual o mayor a 25.50 se ejecutará else
digitalWrite (ledindicador, LOW); //Mandamos una señal digital de apagado hacia el ventilador
Serial.println("Ventilador Apagado");//Se "imprimirá" en la pantalla de Serial Monitor que el ventilador está apagado
}
Serial.println("---"); //Nos "imprimirá" en la pantalla de Serial Monitor un espaciamiento para que nos muestre los nuevos valores
delay (2000); //Es un retardo de dos segundos para que vuelva al ciclo y tome nuevos valores
}