//Incluir libreria DTH.h
#include "DHT.h"
#define DTHPIN 2 //registra datos del sensor DTH22
#define DHTTYPE DHT22 // Tipo de sensor DHT22
#define MAX_TEMP 45 // Maxima temperatura para activar alarma 45°C
#define HUMEDAD_MIN 25 // Valor minimo de humedad para la alarma (25%)
#define HUMEDAD_MAX 60 // Valor maximo de humedad para la alarma (60%)
#define LEDTEMP 14 // LED de alerta de temperatura
#define LEDHUMEDAD 15 // LED de alerta de humedad
#define BOTON1 26 // Pin conectado el boton No. 1
#define BOTON2 27 // Pin conectado el boton No. 2
DHT dht(DTHPIN, DHTTYPE);
unsigned long Tiempo1 = 0;
const long intervalo = 1000;
void setup() {
pinMode(LEDTEMP, OUTPUT);
pinMode(LEDHUMEDAD, OUTPUT);
pinMode(BOTON1, INPUT_PULLUP);
pinMode(BOTON2, INPUT_PULLUP);
dht.begin();
Serial.begin(9600);}
void loop() {
unsigned long Tiempo2 = millis();
// Verificación desde la ultima ejecucion
if (Tiempo2 - Tiempo1 >= intervalo) {
// Actualiza el tiempo de referencia
Tiempo1 = Tiempo2;
float temperatura = dht.readTemperature(); // Registra temperatura
float humedad = dht.readHumidity(); // Registra humedad
if (temperatura > MAX_TEMP) {
digitalWrite(LEDTEMP, HIGH); // Enciende el LED rojo de alerta de temperatura
Serial.print("Temperatura alta: " + String(temperatura) + " °C");
Serial.println(" ");
} else {
digitalWrite(LEDTEMP, LOW); // Apaga el LED rojo de alerta de temperatura
Serial.print("Temperatura optima: " + String(temperatura) + " °C");
Serial.println(" ");
}
if (humedad < HUMEDAD_MIN || humedad > HUMEDAD_MAX) {
digitalWrite(LEDHUMEDAD, HIGH); // Enciende el LED azul de alerta de humedad
Serial.println("Nivel humedad fuera del rango: " + String(humedad, 1) + " %");
Serial.println(" ");
} else {
digitalWrite(LEDHUMEDAD, LOW); // Apaga el LED azul de alerta de humedad
Serial.println("Nivel humedad adecuada: " + String(humedad, 1) + " %");
Serial.println(" ");
}
}
// Al presionar un boton se apagan LED
if (digitalRead(BOTON1) == LOW || digitalRead(BOTON2) == LOW) {
digitalWrite(LEDTEMP, LOW);
digitalWrite(LEDHUMEDAD, LOW);
}
}