SISTEMA DE RIEGO AUTOMATICO

Buenas estaba realizando un sistema de cultivo automatico aunque ahora el codigo me va bien creo que lo tengo mal ya que hasta ahora solo tenia extraccion e inraccion de aire sensor de humedad, foco, y humidificador. Vale quería que se ejecutaran los reles sin que una accion interponga a otra.

#include <DHT.h>
#include <DHT_U.h>

int SENSOR= 5;
int Temperatura;
int Humedad;
const int extractor=2;
const int humidificador=3;
DHT dht (SENSOR, DHT22);

void setup() {

Serial.begin(9600);
dht.begin();
pinMode(humidificador,OUTPUT);
pinMode(extractor,OUTPUT);
}

void loop() {
float Temperatura,Humedad;
Temperatura = dht.readTemperature();
Humedad = dht.readHumidity();
Serial.print("Temperatura: “);
Serial.print(Temperatura);
Serial.print(” Humedad: “);
Serial.println(Humedad);
delay(5000);
Serial.println(” ");

if (Temperatura>=27 && Humedad>=90){
Serial.println(“Temperatura Alta Ivory”);
digitalWrite(extractor,LOW);
Serial.println(“Humedad Estable Ivory”);
digitalWrite(humidificador,LOW);
}
else if (Temperatura>=27 && Humedad<90){
Serial.println(“Temperatura Alta Ivory”);
digitalWrite(extractor,LOW);
Serial.println(“Humedad Baja Ivory”);
digitalWrite(humidificador,HIGH);
}
else if (Temperatura<27 && Humedad>=90){
Serial.println(“Temperatura Estable Ivory”);
digitalWrite(extractor,HIGH);
Serial.println(“Humedad Estable Ivory”);
digitalWrite(humidificador,LOW);
}
else if (Temperatura<27 && Humedad<90){
Serial.println(“Temperatura Estable Ivory”);
digitalWrite(extractor,HIGH);
Serial.println(“Humedad Baja Ivory”);
digitalWrite(humidificador,HIGH);
}

}

El problema que tienes es que utilizas el "delay". Te recomiendo utilizar "millis" y ya de paso simplificar el código un poco, ya que le haces dar muchos ciclos con comprobaciones que se auto-equivalen...

Luego si no has podido hacerlo o no te lo han solucionado aun, te modifico el código yo y te lo mando.

Hola @Ivory27, por favor lee las normas del foro y luego edita tú post inicial usando esta etiqueta </>. Selecciona todo el código y click ahi. Muy fácil. Luego le das post y esta corregido.
Cómo hacerlo? en las normas se expilca con detalle

Cuando edites y vea un código de acuerdo al comentario anterior te responderé.

Perdona @surbyte olvide recordarselo…

Bueno aquí tienes el código terminado y funcional al 100%

#include <Arduino.h>
#include <DHT.h>
#include <DHT_U.h>

const int Sensor = 5;
const int Extractor = 2;
const int Humidificador = 3;
float Temperatura;
float Humedad;
unsigned long Refresco = 5000;
unsigned long TiempoActual;
unsigned long TiempoAnterior;
bool Estado = false;

DHT dht (Sensor, DHT22);

void setup() {

    Serial.begin(9600);
    dht.begin();
    TiempoAnterior = millis();
    pinMode(Humidificador, OUTPUT);
    pinMode(Extractor, OUTPUT);

}

void loop() {

    TiempoActual = millis();
    Temperatura = dht.readTemperature();
    Humedad = dht.readHumidity();

    if ((TiempoActual - TiempoAnterior) >= Refresco) {
        Comprobacion();
        TiempoAnterior = millis();

    }

}

void Comprobacion() {

    Estado = !Estado;
   
    if (Temperatura <= 27) {

        Serial.println("Temperatura Estable Ivory");
        digitalWrite(Extractor, LOW);

    }
        else {
            Serial.println("Temperatura Alta Ivory");
            digitalWrite(Extractor, HIGH);
        }

    if (Humedad >= 90) {
        Serial.println("Humedad Estable Ivory");
        digitalWrite(Humidificador, LOW);
    }
        else {
            Serial.println("Humedad Baja Ivory");
            digitalWrite(Humidificador, HIGH);
        }

    Serial.print("Temperatura: ");
    Serial.print(Temperatura);
    Serial.print(" Humedad: ");
    Serial.println(Humedad);

}