#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
// Definir los pines y el tipo de sensor
#define DHTPIN 23 // Pin al que está conectado el DATA del DHT11
#define DHTTYPE DHT11 // Definir el tipo de sensor DHT
// Inicializar el sensor DHT y el LCD
DHT dht(DHTPIN, DHTTYPE);
// Configura el LCD con la dirección I2C, el número de columnas y filas
LiquidCrystal_I2C lcd(0x27, 16, 2); // Ajusta la dirección I2C según tu LCD
void setup() {
// Inicializar comunicación serial
Serial.begin(115200);
// Inicializar el sensor DHT
dht.begin();
// Inicializar el LCD
lcd.init();
lcd.backlight();
lcd.print("Inicio...");
delay(2000); // Esperar 2 segundos para estabilizar el sensor
}
void loop() {
// Leer la humedad y temperatura
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// Verificar si las lecturas fallaron y salir si es así
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Error al leer del sensor DHT11");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Error sensor");
delay(2000); // Esperar 2 segundos antes de intentar leer nuevamente
return;
}
// Imprimir las lecturas en el monitor serial
Serial.print("Humedad: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(temperature);
Serial.println(" *C");
// Imprimir las lecturas en el LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Humedad: ");
lcd.print(humidity);
lcd.print(" %");
lcd.setCursor(0, 1);
lcd.print("Temp: ");
lcd.print(temperature);
lcd.print(" C");
// Esperar 2 segundos antes de la siguiente lectura
delay(2000);
}