Marcio Cunha

Cómo automatizar el riego de plantas con ESP32 y MQTT

Aprende a construir un sistema de riego automatizado usando microcontroladores ESP32, sensores de humedad de suelo y el protocolo MQTT para IoT residencial.

Marcio Cunha•4 min
También disponible en:EnglishPortuguês
Resumen
  • El microcontrolador ESP32 conecta dispositivos físicos a internet mediante Wi-Fi de bajo costo.
  • El protocolo MQTT posibilita la comunicación ligera entre sensores y plataformas de domótica.
  • Los sensores capacitivos miden la humedad del suelo sin sufrir corrosión rápida por electrólisis.
  • Los relés electromecánicos actúan como interruptores seguros para accionar bombas de agua de 12V.
  • La integración local garantiza funcionamiento continuo incluso ante caídas de internet externo.

El desafío de mantener plantas regadas en la rutina moderna

Quien cultiva plantas en casa sabe que regar en su justa medida es el secreto para evitar tanto la pudrición de raíces por exceso de agua como la deshidratación severa. En la práctica, esto significa monitorear constantemente la humedad de la tierra, tarea difícil para quien pasa el día fuera o viaja con frecuencia. La solución ideal consiste en delegar esta vigilancia a una pequeña computadora integrada capaz de tomar decisiones locales y conversar con nuestra casa inteligente. Si disfrutas integrando sistemas, puedes ver cómo estructurar rutinas robustas en otros escenarios consultando nuestra guía sobre cómo crear microservicios resilientes a caídas de red, cuyos principios de tolerancia a fallas aplican perfectamente al hardware.

Conociendo el ESP32 y su versatilidad en proyectos IoT

El corazón de nuestro proyecto es el ESP32, un chip diminuto y sumamente económico que viene de fábrica con conexiones Wi-Fi y Bluetooth integradas. En la práctica, funciona como una mini computadora sin pantalla que podemos programar para leer sensores físicos y enviar esos datos por la red inalámbrica. Comparado con los modelos tradicionales de Arduino, el ESP32 ofrece mucha más potencia de procesamiento y memoria, permitiendo ejecutar tareas simultáneas sin bloquearse. Esta capacidad de gestionar múltiples flujos de datos recuerda la lógica que discutimos al analizar cómo manejar concurrencia pesada en colas Go sin bloquear, donde el sistema debe responder rápido a estímulos externos intensos.

El papel del protocolo MQTT en la comunicación residencial

Para lograr que el ESP32 converse con el resto de nuestro hogar, utilizamos MQTT, un protocolo de mensajería ligero diseñado específicamente para el Internet de las Cosas. En la práctica, funciona como un sistema postal interno donde los dispositivos publican información en 'tópicos' específicos o se suscriben a ellos para recibir comandos. Un servidor central, llamado broker MQTT (como el popular Mosquitto), gestiona el tráfico de estos mensajes de forma instantánea y con consumo mínimo de batería y ancho de banda. Esto evita la necesidad de crear APIs web complejas, haciendo que el intercambio de datos sea sumamente ágil entre el jardín y el panel de control en la sala.

Elegir el sensor de humedad ideal y evitar la corrosión

Existen dos tipos principales de sensores de humedad en el mercado: los resistivos, que usan dos varillas metálicas expuestas, y los capacitivos, que miden la variación del campo eléctrico sin contacto directo del metal con la tierra. En la práctica, los sensores resistivos se oxidan y arruinan en pocas semanas debido a la electrólisis provocada por la corriente eléctrica continua en el suelo húmedo. Por eso, elegimos el sensor capacitivo, que posee una capa protectora de barniz y garantiza años de durabilidad. Este convierte la humedad de la tierra en una señal de voltaje que el ESP32 lee fácilmente a través de sus puertos analógicos.

Esquema de montaje y código básico de lectura

El montaje físico requiere conectar la alimentación del sensor a los pines de 3.3V y GND del ESP32, además de cablear el pin de señal a una entrada analógica disponible. Para accionar la bomba de agua, utilizamos un módulo relé, que es un interruptor eléctrico controlado por una señal de 3.3V del microcontrolador. A continuación, presentamos un fragmento de código en C++ usando el IDE de Arduino para realizar la lectura de humedad y publicar el dato vía MQTT:

#include <WiFi.h>\n#include <PubSubClient.h>\n\nconst char* ssid = 'TuRedWiFi';\nconst char* password = 'TuPasswordWiFi';\nconst char* mqtt_server = '192.168.1.100';\n\nWiFiClient espClient;\nPubSubClient client(espClient);\nconst int sensorPin = 34;\n\nvoid setup() {\n  Serial.begin(115200);\n  WiFi.begin(ssid, password);\n  client.setServer(mqtt_server, 1883);\n}\n\nvoid loop() {\n  if (!client.connected()) {\n    // Rutina de reconexión MQTT\n  }\n  client.loop();\n  \n  int humedad = analogRead(sensorPin);\n  client.publish('casa/jardin/humedad', String(humedad).c_str());\n  delay(5000);\n}

Manejo de fallas de red y garantía de operación autónoma

En proyectos de domótica, la red Wi-Fi puede caerse o el enrutador reiniciarse, y el sistema no puede dejar de funcionar por ese motivo. En la práctica, programamos el ESP32 con una lógica de reconexión automática y mantenemos reglas locales de seguridad que impiden que la bomba funcione eternamente si la señal se cae. Si la lectura del sensor indica que la tierra está seca y la conexión MQTT falla, el microcontrolador aún debe tener autonomía para decidir si ejecuta un riego de emergencia basado en temporizadores internos. Este enfoque defensivo asegura que tus plantas sigan vivas incluso durante un apagón general en tu red local.

Consideraciones finales sobre automatización e inteligencia en IoT

Automatizar el riego con ESP32 y MQTT transforma una tarea manual repetitiva en un ecosistema inteligente, confiable y totalmente integrado en tu hogar. Además de ahorrar agua y garantizar la salud de las plantas, el proyecto sirve como una base sólida para expandir tu red de sensores a otras habitaciones y dispositivos. Con una adecuada planificación de hardware y código resiliente, construyes una infraestructura de automatización verdaderamente autónoma y duradera.