#include <LCD-I2C.h>
#include <Wire.h>
#include "DHT.h"
#define DHTPIN 15 // Pin del sensor DHT
#define DHTTYPE DHT22 // Tipo de sensor DHT
LCD_I2C lcd(0x27, 16, 2); // Dirección de LCD I2C
DHT dht(DHTPIN, DHTTYPE); // Inicialización del sensor DHT
int led1 = 2;
int led2 = 4;
int led3 = 5;
int temp = 200;
void setup() {
Serial.begin(115200);
Serial.println("Hello, ESP32!");
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
Wire.begin();
lcd.begin(&Wire);
lcd.display();
lcd.backlight();
dht.begin(); // Iniciar el sensor DHT
}
void loop() {
// Control de los LEDs con temporización
digitalWrite(led1, HIGH);
delay(temp);
digitalWrite(led1, LOW);
delay(temp);
digitalWrite(led2, HIGH);
delay(temp);
digitalWrite(led2, LOW);
delay(temp);
digitalWrite(led3, HIGH);
delay(temp);
digitalWrite(led3, LOW);
delay(temp);
// Lectura de temperatura y humedad
float h = dht.readHumidity();
float t = dht.readTemperature();
// Verificar si la lectura falló
if (isnan(h) || isnan(t)) {
Serial.println("¡Error al leer del sensor DHT!");
lcd.setCursor(0, 0);
lcd.print("Error sensor");
delay(2000);
return;
}
// Mostrar los datos en el Serial
Serial.print("Humedad: ");
Serial.print(h);
Serial.print("% Temperatura: ");
Serial.print(t);
Serial.println("°C");
// Mostrar los datos en la pantalla LCD
lcd.setCursor(0, 0);
lcd.print("H: ");
lcd.print(h);
lcd.print("%");
lcd.setCursor(0, 1);
lcd.print("T: ");
lcd.print(t);
lcd.print("C");
delay(2000); // Intervalo de actualización
}