#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
// Configuración de la pantalla LCD y sensor DHT22
#define I2C_ADDR 0x27
#define LCD_COLUMNS 16
#define LCD_ROWS 2
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_ROWS);
#define DHTPIN 4 // Pin de datos del DHT22
#define DHTTYPE DHT22 // Especificamos el modelo del sensor
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
// Inicializamos la pantalla LCD con el número de columnas y filas
lcd.init();
lcd.begin(LCD_COLUMNS, LCD_ROWS);
lcd.backlight(); // Encendemos la retroiluminación
dht.begin();
lcd.setCursor(0, 0);
lcd.print("Iniciando...");
delay(2000);
lcd.clear();
}
void loop() {
float humedad = dht.readHumidity();
float temperatura = dht.readTemperature();
if (isnan(humedad) || isnan(temperatura)) {
Serial.println("Error al leer el DHT22");
lcd.setCursor(0, 0);
lcd.print("Error DHT22!");
} else {
Serial.print("Humedad: ");
Serial.print(humedad);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(temperatura);
Serial.println(" *C");
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temperatura);
lcd.print((char)223); // Símbolo de grado
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Hum: ");
lcd.print(humedad);
lcd.print(" %");
}
delay(2000);
}