#include <DHT.h>
#define RELEE_PIN 27
#define HUMIFICADOR_PIN 26
#define DHT_PIN 25
#define DHT_TYPE 21
DHT dht(DHT_PIN, DHT_TYPE);
int periodo = 5000;
unsigned long tiempoAnterior = 0;
unsigned long tiempoActual = 0;
float humedadOptima = 90;
float temperaturaOptima = 37.5;
float humedad;
float temperatura;
boolean estadoHumificador = false;
boolean estadoRelee = false;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
dht.begin();
pinMode(HUMIFICADOR_PIN, OUTPUT);
pinMode(RELEE_PIN, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
tiempoActual = millis();
if (tiempoActual - tiempoAnterior >= periodo) {
medirClima();
tiempoAnterior = tiempoActual;
}
}
void medirClima(){
humedad = dht.readHumidity();
temperatura= dht.readTemperature();
Serial.print("Humnedad: ");
Serial.print(humedad);
Serial.print("%, Temperatura: ");
Serial.print(temperatura);
Serial.println(" °C");
if ((humedad < humedadOptima && estadoHumificador == 0) || (humedad >= humedadOptima && estadoHumificador == 1)) {
cambiarEstadoHumificador();
}
if ((temperatura < temperaturaOptima && estadoRelee == 0) || (temperatura >= temperaturaOptima && estadoRelee == 1)) {
cambiarEstadoRele();
}
}
void cambiarEstadoHumificador() {
estadoHumificador = !estadoHumificador;
digitalWrite(HUMIFICADOR_PIN, estadoHumificador);
Serial.print("Estado Humificador: ");
Serial.println(estadoHumificador);
}
void cambiarEstadoRele() {
estadoRelee = !estadoRelee;
digitalWrite(RELEE_PIN, estadoRelee);
Serial.print("Estado Releé: ");
Serial.println(estadoRelee);
}