//Incluir libreria DTH.h
#include "DHT.h"
#define DTHPIN 2 //registra datos del sensor DTH22
#define DHTTYPE DHT22 // Tipo de sensor utilizado DHT22
//Definicion de variables
#define TEMPERATURA_MAXIMA 45 // Temperatura máxima > 45°C se activa alarma
#define HUMEDAD_MINIMA 25 // Humedad mínima >= 25% se activa alarma
#define HUMEDAD_MAXIMA 60 // Humedad máxiuma <= 60% se activa alarma
#define LED_TEMPERATURA 14 // LED para temperatura
#define LED_HUMEDAD 15 // LED para humedad
#define BOTON_BLANCO 26 // Pin conectado al boton blanco
#define BOTON_NEGRO 27 // Pin conectado al boton negro
//Inicializa el sensor DHT22
DHT dht(DTHPIN, DHTTYPE);
void setup() {
pinMode(LED_TEMPERATURA, OUTPUT);
pinMode(LED_HUMEDAD, OUTPUT);
pinMode(BOTON_BLANCO, INPUT_PULLUP);
pinMode(BOTON_NEGRO, INPUT_PULLUP);
dht.begin();
Serial.begin(9600);}
void loop() {
float temperatura = dht.readTemperature(); // Registra valores de temperatura
float humedad = dht.readHumidity(); // Registra valores de humedad
delay(1000);
if (temperatura > TEMPERATURA_MAXIMA) {
digitalWrite(LED_TEMPERATURA, HIGH); // Enciende el LED rojo de alerta de temperatura
Serial.print("Temperatura elevada: " + String(temperatura) + " °C");
Serial.println(" ");
} else {
digitalWrite(LED_TEMPERATURA, LOW); // Apaga el LED rojo de alerta de temperatura
Serial.print("Temperatura normal: " + String(temperatura) + " °C");
Serial.println(" ");
}
if (humedad < HUMEDAD_MINIMA || humedad > HUMEDAD_MAXIMA) {
digitalWrite(LED_HUMEDAD, HIGH); // Enciende el LED celeste de alerta de humedad
Serial.println("Humedad fuera de rango: " + String(humedad, 1) + " %");
Serial.println(" ");
} else {
digitalWrite(LED_HUMEDAD, LOW); // Apaga el LED celeste de alerta de humedad
Serial.println("Humedad adecuada: " + String(humedad, 1) + " %");
Serial.println(" ");
}
// Al presionar un boton se apagan LED con un delay de 2 segundos
if (digitalRead(BOTON_BLANCO) == LOW || digitalRead(BOTON_NEGRO) == LOW) {
digitalWrite(LED_TEMPERATURA, LOW);
digitalWrite(LED_HUMEDAD, LOW);
delay(2000);
}
}