#include "DHTesp.h"
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 16
#define LCD_LINES 2
/*Declaración de variables Leds */
int LedTempVerde = 32;
int LedTempRojo = 33;
int LedHumedadVerde = 13;
int LedHumedadRojo = 14;
const int DHT_PIN = 15;
DHTesp dhtSensor;
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
void setup() {
Serial.begin(115200);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
lcd.init();
lcd.backlight();
/*Configuración de Pines Leds */
pinMode(LedTempVerde,OUTPUT);
pinMode (LedTempRojo,OUTPUT);
pinMode (LedHumedadVerde,OUTPUT);
pinMode (LedHumedadRojo,OUTPUT);
}
void loop() {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Temp: " + String(data.temperature, 1) + "°C");
Serial.println("Humidity: " + String(data.humidity, 1) + "%");
Serial.println("---");
/* Encender Leds Temperatura*/
if (data.temperature < 40.0) {
digitalWrite(LedTempVerde, HIGH);
digitalWrite(LedTempRojo, LOW);
Serial.println("Led Verde Temp Encendido");
}else {
digitalWrite(LedTempRojo, HIGH);
digitalWrite(LedTempVerde, LOW);
Serial.println("Led Rojo Temp Encendido");
}
/* Encender Leds Humedad*/
if (data.humidity < 70.0) {
digitalWrite(LedHumedadVerde, HIGH);
digitalWrite(LedHumedadRojo, LOW);
Serial.println("Led Verde Humedad Encendido");
}else {
digitalWrite(LedHumedadRojo, HIGH);
digitalWrite(LedHumedadVerde, LOW);
Serial.println("Led Rojo Humedad Encendido");
}
lcd.setCursor(0, 0);
lcd.print(" Temp: " + String(data.temperature, 1) + "\xDF"+"C ");
lcd.setCursor(0, 1);
lcd.print(" Humidity: " + String(data.humidity, 1) + "% ");
lcd.print("Wokwi Online IoT");
delay(1000);
}