int Pin2=2;
//Se incluye la biblioteca Wire.h, que es necesaria para la comunicación I2C.
#include <Wire.h>
//Se Incluye la biblioteca LiquidCrystal_I2C.h, que simplifica el manejo de pantallas LCD mediante la comunicación I2C.
#include <LiquidCrystal_I2C.h>
//Se Incluye la biblioteca DHT.h, que se utiliza para trabajar con sensores de humedad y temperatura DHT.
#include <DHT.h>
//Se crea un objeto llamado lcd de la clase LiquidCrystal_I2C, con la dirección I2C 0x27, 16 columnas y 2 filas. Este objeto se utilizará para interactuar con la pantalla LCD.
LiquidCrystal_I2C lcd(0x27,16,2);
//Se define una constante llamada DHTPIN con el valor 2. Esta constante se utiliza posteriormente para indicar el pin al que está conectado el sensor DHT.
#define DHTPIN 2
//Se define una constante llamada DHTTYPE con el valor DHT22. Esta constante se utiliza para indicar el tipo de sensor DHT que se está utilizando (en este caso, DHT22).
#define DHTTYPE DHT22
//se utilizará para interactuar con el sensor de temperatura y humedad DHT. Se le pasan como parámetros el pin al que está conectado el sensor (DHTPIN) y el tipo de sensor (DHTTYPE).
DHT dht(DHTPIN, DHTTYPE);
//En esta función se realiza la inicialización del LCD, la activación de la luz de fondo, la configuración de la comunicación serie (para visualizar parámetros en el monitor serie) y la inicialización del sensor DHT.
void setup() {
// Inicializar el LCD
lcd.init();//Inicializa el objeto LCD.
//Encender la luz de fondo.
lcd.backlight();
// Inicialización de la comunicación en serie, activamos monitor en serie para la visualizacion de los parametros
Serial.begin(9600);
// Inicializa la comunicación con el sensor DHT.
dht.begin();
//Se ubica el cursor en la posición (0,0) de la pantalla LCD e imprime "T:".
lcd.setCursor(0,0);
lcd.print("T:");
//Se uUbica el cursor en la posición (8,0) de la pantalla LCD e imprime "H:".
lcd.setCursor(8,0);
lcd.print("H:");
}
//La funció es realizar mediciones periódicas de temperatura y humedad utilizando un sensor DHT22, mostrar estos valores en una pantalla LCD y enviarlos al monitor serie (Serial Monitor) para su visualización y seguimiento.
void loop() {
lcd.setCursor(2,0);
lcd.print(dht.readTemperature());
delay(10);
lcd.setCursor(10,0);
lcd.print(dht.readHumidity());
delay(10);
// Esperamos 3 segundos entre medidas, esta es una recomendacion del fabricante
delay(3000);
// Leemos la humedad relativa
float h = dht.readHumidity();
// Leemos la temperatura en grados centígrados (valor por defecto)
float t = dht.readTemperature();
// Comprobamos si ha habido algún error en la lectura
if (isnan(h)|| isnan(t)) {
Serial.println("Error obteniendo los datos del sensor DHT22");
return;
}
Serial.print("Humedad: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(t);
Serial.print(" °C ");
}