tutoriales.com

Sistema IoT de Monitoreo de Compostaje Inteligente con ESP32 y Sensores de Temperatura y Humedad

Este tutorial práctico explica paso a paso cómo automatizar y supervisar el proceso de compostaje orgánico mediante el uso de un microcontrolador ESP32 y sensores ambientales para optimizar la descomposición.

Intermedio8 min de lectura9 views
Reportar error

🌿 Introducción al Compostaje Inteligente con IoT

El compostaje es un proceso biológico aeróbico mediante el cual los microorganismos descomponen la materia orgánica para convertirla en un abono rico en nutrientes. Sin embargo, para que este proceso sea eficiente, es necesario mantener un control riguroso de variables críticas como la temperatura y la humedad. Si la temperatura sube demasiado o baja en exceso, la actividad microbiana se detiene. Lo mismo ocurre si el nivel de humedad no es el adecuado.

En este tutorial completo, aprenderás a construir un sistema IoT avanzado utilizando un módulo ESP32 y sensores especializados para supervisar tu pila de compostaje en tiempo real desde cualquier lugar del mundo. Este proyecto combina la electrónica de bajo costo con el poder del internet de las cosas.

Intermedio IoT ESP32


🛠️ Materiales y Componentes Necesarios

Antes de comenzar con el ensamblaje, asegúrate de reunir todos los componentes electrónicos y herramientas de trabajo necesarios para el proyecto.

ComponenteDescripciónCantidad
---------
ESP32 NodeMCUMicrocontrolador con WiFi y Bluetooth integrado1
Sensor DS18B20Sensor de temperatura sumergible con carcasa de acero inoxidable1
---------
Resistencia 4.7kΩResistencia de pull-up para el bus OneWire del DS18B201
Sensor DHT22 / AM2302Sensor digital de temperatura y humedad ambiental1
---------
Protoboard y CablesCables de conexión tipo Dupont (macho-macho y macho-hembra)1 set
Caja Estanca IP65Carcasa de protección para la electrónica frente a la intemperie1
---------
Fuente de AlimentaciónAdaptador de corriente USB de 5V o panel solar con batería 186501
💡 Consejo: El sensor DS18B20 con carcasa metálica es ideal para introducirlo directamente dentro de la pila de compost sin temor a que la humedad lo dañe, ya que es totalmente estanco.

📐 Arquitectura del Sistema IoT

Para entender cómo se comunican los dispositivos en este proyecto, es útil visualizar el flujo de datos desde los sensores hasta la interfaz de usuario final.

Arquitectura IoT: Telemetría de Sensores DS18B20 Temperatura DHT22 Temp & Hum ESP32 Microcontrolador MQTT Broker (Nube) Dash- board WiFi MQTT Publicación Real-time Entrada de Datos Procesamiento Visualización

El flujo de trabajo es el siguiente:

Paso 1: Adquisición - Los sensores leen la temperatura interna y ambiental, así como la humedad del compost.
Paso 2: Procesamiento - El ESP32 procesa las señales digitales y convierte los valores a unidades legibles.
Paso 3: Transmisión - El ESP32 se conecta a la red WiFi local y publica los datos mediante el protocolo MQTT.
Paso 4: Visualización - Una plataforma IoT recibe los mensajes y los muestra en gráficos interactivos con alertas configurables.

🔌 Conexiones de Hardware y Diagrama Eléctrico

El montaje del circuito debe realizarse con precaución para evitar cortocircuitos. A continuación se detallan las conexiones que debes realizar entre el ESP32 y los sensores.

Conexión del sensor DS18B20 (Temperatura interna)

El sensor DS18B20 utiliza el protocolo OneWire. Sus tres pines son:

  • Rojo (VCC): Conectarse a 3.3V del ESP32.
  • Negro o Blanco (GND): Conectarse a GND del ESP32.
  • Amarillo o Azul (Datos): Conectarse al pin digital GPIO 4 del ESP32. Además, debes colocar una resistencia de 4.7kΩ entre el pin de datos y VCC.

Conexión del sensor DHT22 (Humedad y temperatura ambiental)

El sensor DHT22 cuenta con cuatro pines (o tres si viene en módulo con placa)

  • VCC: Conectarse a 3.3V o 5V (preferiblemente 3.3V).
  • GND: Conectarse a GND.
  • DATA: Conectarse al pin digital GPIO 15 del ESP32.
⚠️ Advertencia: Nunca alimentes el ESP32 con voltajes superiores a 5V en su pin VIN o 3.3V en su pin 3V3, ya que podrías dañar permanentemente el microcontrolador.

💻 Programación del ESP32

Para programar el ESP32 utilizaremos el entorno de desarrollo Arduino IDE. Asegúrate de tener instaladas las librerías necesarias para el manejo del ESP32, el protocolo MQTT (como PubSubClient), y las librerías de los sensores (DHT sensor library y OneWire).

A continuación se muestra el código completo optimizado para conectar tu ESP32, leer los sensores y enviar la información mediante MQTT.

#include <WiFi.h>
#include <PubSubClient.h>
#include <DHT.h>
#include <OneWire.h>
#include <DallasTemperature.h>

// Configuración de Red WiFi
const char* ssid = "TU_SSID_WIFI";
const char* password = "TU_CONTRASEÑA_WIFI";

// Configuración del Servidor MQTT
const char* mqtt_server = "broker.hivemq.com";

WiFiClient espClient;
PubSubClient client(espClient);

// Definición de Pines y Sensores
#define DHTPIN 15
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

#define ONE_WIRE_BUS 4
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

unsigned long lastMsg = 0;
#define MSG_BUFFER_SIZE  (50)
char msg[MSG_BUFFER_SIZE];

void setup_wifi() {
  delay(10);
  Serial.println();
  Serial.print("Conectando a ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi conectado");
  Serial.println("Dirección IP: ");
  Serial.println(WiFi.localIP());
}

void reconnect() {
  while (!client.connected()) {
    Serial.print("Intentando conexión MQTT...");
    String clientId = "ESP32CompostClient-";
    clientId += String(random(0xffff), HEX);
    if (client.connect(clientId.c_str())) {
      Serial.println("conectado");
    } else {
      Serial.print("falló, rc=");
      Serial.print(client.state());
      Serial.println(" reintentando en 5 segundos");
      delay(5000);
    }
  }
}

void setup() {
  Serial.begin(115200);
  dht.begin();
  sensors.begin();
  setup_wifi();
  client.setServer(mqtt_server, 1883);
}

void loop() {
  if (!client.connected()) {
    reconnect();
  }
  client.loop();

  unsigned long now = millis();
  if (now - lastMsg > 10000) {
    lastMsg = now;

    // Lectura de Sensores
    sensors.requestTemperatures(); 
    float tempCompost = sensors.getTempCByIndex(0);
    float humAmb = dht.readHumidity();
    float tempAmb = dht.readTemperature();

    if (isnan(humAmb) || isnan(tempAmb) || tempCompost == DEVICE_DISCONNECTED_C) {
      Serial.println("Error al leer los sensores!");
      return;
    }

    // Publicar datos MQTT
    snprintf (msg, MSG_BUFFER_SIZE, "%.2f", tempCompost);
    client.publish("compost/sensor/temp_interna", msg);

    snprintf (msg, MSG_BUFFER_SIZE, "%.2f", humAmb);
    client.publish("compost/sensor/humedad_amb", msg);

    snprintf (msg, MSG_BUFFER_SIZE, "%.2f", tempAmb);
    client.publish("compost/sensor/temp_amb", msg);

    Serial.println("Datos enviados al broker MQTT exitosamente.");
  }
}
🔥 Importante: Recuerda modificar las variables TU_SSID_WIFI y TU_CONTRASEÑA_WIFI con las credenciales de tu red inalámbrica antes de compilar y cargar el código en la placa ESP32.

📊 Configuración del Panel de Control (Dashboard)

Una vez que el dispositivo está enviando datos al Broker MQTT, necesitas visualizarlos de forma gráfica. Puedes utilizar plataformas gratuitas o de código abierto como Node-RED, Blynk, o ThingsBoard.

Fases ideales del compostaje a monitorizar:

  • Fase Mesófila (15°C - 45°C): Inicio del proceso, proliferación de bacterias que descomponen azúcares.
  • Fase Termófila (45°C - 65°C): Temperatura óptima donde se eliminan patógenos y semillas de malas hierbas.
  • Fase de Enfriamiento y Maduración: La temperatura desciende y se estabiliza cerca de la temperatura ambiente.
Progreso Óptimo: 55°C (Termófila)

❓ Preguntas Frecuentes (FAQ)

¿Qué pasa si el sensor DS18B20 se moja completamente con el líquido del compost? El sensor DS18B20 con carcasa de acero inoxidable está diseñado para ser sumergible y resistente a la corrosión moderada. Sin embargo, se recomienda revisar periódicamente el sellado de silicona si se utiliza en entornos muy ácidos.
¿Puedo alimentar este sistema con energía solar? Sí, puedes conectar un panel solar de 5V junto con un módulo de carga TP4056 y una batería recargable de Ion de Litio (18650) para lograr un funcionamiento completamente autónomo en el jardín.

🎉 Conclusión

Has construido con éxito un sistema IoT completo para supervisar las condiciones físicas de tu pila de compostaje. Con esta herramienta podrás tomar decisiones informadas sobre cuándo voltear el abono o cuándo añadir agua, acelerando significativamente el proceso de descomposición y obteniendo un humus de excelente calidad.

Tutoriales relacionados

Comentarios (0)

Aún no hay comentarios. ¡Sé el primero!