//HEADER
#include "DHTesp.h"
#define pinDHT22 13
#define ledRojo 15 //temperatura
#define ledVerde 14 //humedad
#define botonRojo 27
#define botonVerde 26
bool alarmaTemp = false;
bool estadoTempActivo = true;
bool alarmaHum = false;
bool estadoHumActivo = true;
DHTesp dht;
void setup() {
Serial.begin(115200);
Serial.println("Hola, ESP32!");
dht.setup(pinDHT22, DHTesp::DHT22);
pinMode(ledRojo, OUTPUT);
pinMode(ledVerde, OUTPUT);
pinMode(botonRojo, INPUT);
pinMode(botonVerde, INPUT);
}
void loop() {
TempAndHumidity data = dht.getTempAndHumidity();
if(digitalRead(botonRojo)==1 && estadoTempActivo==true)
{
estadoTempActivo=false;
}
else if (digitalRead(botonRojo)==0 && estadoTempActivo== false)
{
estadoTempActivo=true;
}
if(digitalRead(botonVerde)==1 && estadoHumActivo== true)
{
estadoHumActivo=false;
}
else if (digitalRead(botonVerde)==0 && estadoHumActivo== false)
{
estadoHumActivo=true;
}
if (data.temperature > 45)
{
alarmaTemp= true;
}
if(data.humidity < 25 || data.humidity > 60)
{
alarmaHum= true;
}
if(estadoTempActivo == true && alarmaTemp == true)
{
digitalWrite(ledRojo,1);
Serial.println("Alerta por temperatura activa");
}
else
{
digitalWrite(ledRojo,0);
alarmaTemp= false;
}
if(estadoHumActivo == true && alarmaHum == true)
{
digitalWrite(ledVerde,1);
Serial.println("Alerta por humedad activa");
}
else
{
digitalWrite(ledVerde,0);
alarmaHum= false;
}
Serial.println("Temperatura: " + String(data.temperature, 2) + "ºC " + "Humedad: " + String(data.humidity, 1) + "%");
if(estadoTempActivo == true)
{
Serial.println("Alarma por temperatura conectada");
}
else
{
Serial.println("Alarma por temperatura desconectada");
}
if(estadoHumActivo == true)
{
Serial.println("Alarma por humedad conectada");
}
else
{
Serial.println("Alarma por humedad desconectada");
}
Serial.println("----");
delay(1000); // this speeds up the simulation
}