Agrobot — Humidificador Automático

Guía completa: materiales, cableado, código (Arduino y ESP32), control por sensor de humedad y buenas prácticas para ambientes agrícolas.

1 — Objetivo

Construir un sistema que mantenga la humedad relativa o humedad del sustrato en un rango definido mediante un humidificador (atomizador ultrasónico o bomba de niebla), controlado por una placa (Arduino/ESP32) con sensor DHT22 / SHT30 y protección de nivel de agua.

2 — Materiales

Ir a la Tienda

3 — Principio de funcionamiento

El microcontrolador lee la humedad ambiente (HR) y compara con el punto de consigna (setpoint). Si la HR es menor que el setpoint menos la histeresis, activa el humidificador; si es mayor que setpoint + histeresis, lo apaga. El sensor de nivel corta la alimentación al humidificador si hay falta de agua.

4 — Conexiones (Arduino UNO ejemplo)

Conexiones básicas

  • DHT22: VCC -> 5V, GND -> GND, DATA -> D4 (usa resistencia pull-up 10k)
  • Relé: IN -> D7, VCC -> 5V, GND -> GND (asegura que la bobina y la placa compartan GND)
  • Float switch (sensor nivel): NC o NO -> D6 (entrada digital)
  • Humidificador -> contacto del relé -> alimentación externa (no alimentar desde Arduino)

Mapa pines sugerido

  • DHT22 DATA -> D4
  • Float sensor -> D6
  • Relé IN -> D7
  • LED indicador -> D13 (opcional)

Esquema ASCII

  [DHT22]            [Arduino UNO]         [Relé]            [Humidificador]
   VCC  -----------> 5V
   GND  -----------> GND   -----+-----------> GND
   DATA -----------> D4 (pull-up 10k)

  Float switch -> D6 (INPUT)
  Relé IN -> D7
  Relé COM/N.O. -> +V fuente humidificador
  Relé COM/N.C. -> GND fuente humidificador

  IMPORTANTE: Alimentar el humidificador con su fuente adecuada y aislar la placa de control.

5 — Código Arduino (control simple con histeresis)

Este sketch utiliza la DHT library. Controla el relé según el setpoint y la histeresis y protege con el sensor de nivel.

// Agrobot - Humidificador básico con DHT22
#include <DHT.h>

#define DHTPIN 4
#define DHTTYPE DHT22
#define RELAY_PIN 7
#define FLOAT_PIN 6
#define LED_PIN 13

DHT dht(DHTPIN, DHTTYPE);

float setpoint = 70.0; // humedad relativa objetivo (%)
float hysteresis = 3.0; // margen en %

void setup(){
  Serial.begin(9600);
  dht.begin();
  pinMode(RELAY_PIN, OUTPUT);
  pinMode(FLOAT_PIN, INPUT_PULLUP); // asume float a GND cuando desciende
  pinMode(LED_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, LOW); // relé apagado por defecto
}

void loop(){
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  if(isnan(h)){
    Serial.println("Error leyendo DHT");
    delay(2000);
    return;
  }

  bool hasWater = digitalRead(FLOAT_PIN) == HIGH; // ajustar según cableado

  Serial.print("Humedad: "); Serial.print(h); Serial.print(" %\t");
  Serial.print("Temp: "); Serial.print(t); Serial.println(" C");

  if(!hasWater){
    // cortar humidificador si no hay agua
    digitalWrite(RELAY_PIN, LOW);
    digitalWrite(LED_PIN, LOW);
    Serial.println("Sin agua: humidificador apagado");
  } else {
    if(h < (setpoint - hysteresis)){
      digitalWrite(RELAY_PIN, HIGH); // activar
      digitalWrite(LED_PIN, HIGH);
      Serial.println("Activando humidificador");
    } else if(h > (setpoint + hysteresis)){
      digitalWrite(RELAY_PIN, LOW); // desactivar
      digitalWrite(LED_PIN, LOW);
      Serial.println("Apagando humidificador");
    } // si está dentro del rango, no cambiar
  }

  delay(3000);
}

Consejo: prueba el sistema con agua en un entorno seguro y comprueba comportamiento antes de instalar en campo.

6 — Versión avanzada: ESP32 + Web UI

Si quieres monitorizar y cambiar el setpoint de forma remota, usa un ESP32. A continuación un esquema básico de la idea (no es un firmware completo):

// Idea: ESP32 lee SHT30/DHT, expone página web con estado y botones para cambiar setpoint
// - Leer sensor
// - Servir web con /status y /control?set=75
// - Usar relé como antes

Si quieres, puedo generar el sketch completo para ESP32 con Wi‑Fi, WebServer y endpoints JSON.

7 — Buenas prácticas

8 — Extensiones útiles

9 — ¿Qué quieres que haga ahora?

Puedo:

Usar este tutorial

Libros y Articulos recomendados

Recursos recomendados:

Catalogo de proyectos

Recursos recomendados: