#include <DHT.h>
#define UMBRAL_TEMPERATURA 45 // Umbral de temperatura para la alarma (45 grados Celsius)
#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 LED_PIN_TEMPERATURA 14 // Pin donde esta conectado el LED de alerta de temperatura
#define LED_PIN_HUMEDAD 15 // Pin donde esta conectado el LED de alerta de humedad
#define BOTON_TEMPERATURA_PIN 26 // Pin donde esta conectado el primer boton ROJO
#define BOTON_HUMEDAD_PIN 27 // Pin donde esta conectado el segundo boton AMARILLO
#define DHTPIN 2 // Pin donde esta conectado el sensor DHT22
#define DHTTYPE DHT22 // Tipo de sensor DHT22
DHT dht(DHTPIN, DHTTYPE);
unsigned long anterior_milisegundos = 0;
unsigned long inicial_milisegundos = 0;
unsigned long actual_milisegundos = 0;
const long intervalo_milisegundos = 1000; // intervaloo de 1 segundo
unsigned long elapsedSeconds;
void setup() {
pinMode(LED_PIN_TEMPERATURA, OUTPUT);
pinMode(LED_PIN_HUMEDAD, OUTPUT);
//pinMode(BOTON_TEMPERATURA_PIN, INPUT_PULLUP);
pinMode(BOTON_TEMPERATURA_PIN, INPUT);
//pinMode(BOTON_HUMEDAD_PIN, INPUT_PULLUP);
pinMode(BOTON_HUMEDAD_PIN, INPUT);
dht.begin();
Serial.begin(115200);
inicial_milisegundos = millis();
}
void loop() {
// Verifica si ha pasado 1 segundo desde la ultima ejecucion
actual_milisegundos = millis();
elapsedSeconds = (actual_milisegundos - inicial_milisegundos) / 1000; // Calcular los segundos transcurridos
//Serial.println("segundos: " + String(elapsedSeconds));
//float temperatura = dht.readTemperature(); // Lee la temperatura
//float humedad = dht.readHumidity(); // Lee la humedad
float temperatura = 46; // Lee la temperatura
float humedad = 61; // Lee la humedad
if (actual_milisegundos - anterior_milisegundos >= intervalo_milisegundos) {
// Actualiza el tiempo de referencia
anterior_milisegundos = actual_milisegundos;
// Mostrar los datos de la temperatura y humedad
Serial.println("Temperatura: " + String(temperatura, 2) + "°C");
Serial.println("Humedad: " + String(humedad, 1) + "%");
Serial.println("---");
if (temperatura > UMBRAL_TEMPERATURA) {
digitalWrite(LED_PIN_TEMPERATURA, HIGH); // Enciende el LED de alerta de temperatura
} else {
digitalWrite(LED_PIN_TEMPERATURA, LOW); // Apaga el LED de alerta de temperatura
}
if ((humedad < HUMEDAD_MIN || humedad > HUMEDAD_MAX)) {
digitalWrite(LED_PIN_HUMEDAD, HIGH); // Enciende el LED de alerta de humedad
} else {
digitalWrite(LED_PIN_HUMEDAD, LOW);
}
}
/*
if ( (digitalRead(BOTON_HUMEDAD_PIN) == HIGH ) && (humedad >= HUMEDAD_MIN && humedad <= HUMEDAD_MAX)) {
digitalWrite(LED_PIN_HUMEDAD, LOW);
humedad=50;
temperatura=30;
}
*/
// Verifica si se presiono alguno de los botones para apagar los LEDs
if (digitalRead(BOTON_HUMEDAD_PIN) == LOW || digitalRead(BOTON_TEMPERATURA_PIN) == LOW) {
digitalWrite(LED_PIN_TEMPERATURA, LOW);
digitalWrite(LED_PIN_HUMEDAD, LOW);
humedad=50;
temperatura=30;
}
Serial.println(digitalRead(BOTON_HUMEDAD_PIN));
// Leer el estado de los botones
//int botonTemperatura = digitalRead(BOTON_TEMPERATURA_PIN);
//int botonHumedad = digitalRead(BOTON_HUMEDAD_PIN);
// Mostrar los datos de la temperatura y humedad
//Serial.println("botonTemperatura: " + String(botonTemperatura));
//Serial.println("botonHumedad: " + String(botonHumedad));
//Serial.println("---");
// Verifica si se presiono alguno de los botones para apagar los LEDs
//if (digitalRead(BOTON_TEMPERATURA_PIN) == LOW) {
// digitalWrite(LED_PIN_TEMPERATURA, LOW);
//}
//if (digitalRead(BOTON_HUMEDAD_PIN) == LOW) {
// digitalWrite(LED_PIN_HUMEDAD, LOW);
//}
}