Automatización IoT

Agricultura inteligente IoT con MQTT: sensores, conectividad y arquitectura

Una guía práctica de agricultura inteligente IoT: qué sensores importan, cómo conectar parcelas sin Wi-Fi, cómo estructurar los topics MQTT de una explotación y cómo mantener el sistema funcionando campaña tras campaña.

Parcela con agricultura inteligente IoT, con sondas de suelo, una estación meteorológica, válvulas de riego y un gateway LoRaWAN que envía datos a un broker MQTT
Pruébalo en tu propio broker MQTTConsigue un broker MQTT privado y gestionado con el plan Free y empieza con ejemplos de código listos para usar.
Pruébalo gratis Ejemplos de código Sin tarjeta

La agricultura inteligente IoT consiste en instalar sensores y actuadores en parcelas, invernaderos y naves para que las decisiones sobre agua, clima y animales se basen en mediciones y no en conjeturas. Esta guía explica qué sensores merece la pena desplegar, cómo conectar ubicaciones sin Wi-Fi ni red eléctrica, cómo diseñar una única estructura de topics MQTT para toda la explotación y cómo mantener el sistema fiable durante una campaña completa.

Qué mide realmente la agricultura inteligente IoT

Las explotaciones son muy diversas, desde la agroindustria del Bajío mexicano o el valle central de Chile hasta los invernaderos de Almería, pero las mediciones útiles se agrupan en unas pocas categorías. Empieza por la que responde a tu pregunta más cara, normalmente el agua, y añade las demás cuando la ruta de datos funcione.

Área Sensores típicos Decisiones que respalda
Suelo Humedad capacitiva o TDR, temperatura del suelo, CE (salinidad) Cuándo y cuánto regar, momento del abonado
Clima Temperatura del aire, humedad, pluviómetro, viento, radiación solar, humectación foliar Avisos de helada, ventanas de tratamiento, estimaciones de evapotranspiración
Riego Caudalímetros, sensores de presión, posición de válvulas, corriente de la bomba Detección de fugas, confirmar que el agua se aplicó realmente
Cultivo protegido Clima del invernadero, CO2, luz Ventilación, calefacción, nebulización, sombreo
Ganado Nivel de bebederos, clima de la nave, collares GPS, nivel de tolvas de pienso Bienestar animal, alertas de robo y fuga, planificación de rellenado
Almacenamiento Temperatura y humedad de silos de grano, temperatura de cámaras frigoríficas Prevención de pérdidas

Un error habitual es comprar un gran kit de sensores antes de decidir qué acción desencadenará cada lectura. Un valor de humedad del suelo sobre el que nadie actúa no es más que una gráfica. Escribe primero la decisión y después la medición y el intervalo de muestreo que necesita.

La ubicación importa tanto como el propio sensor. Una sonda de suelo por parcela dice poco si la parcela tiene zonas arenosas y arcillosas; una sonda por sector de riego, colocada en un punto representativo a la profundidad de las raíces, es una mejor regla de partida. Las estaciones meteorológicas necesitan terreno despejado, lejos de edificios y árboles, y los sensores de las naves deben ir a la altura de los animales y no cerca del techo.

Conectividad sin Wi-Fi

Las parcelas rara vez tienen cobertura Wi-Fi, y tender cables por ellas no es práctico. La elección de la radio condiciona la autonomía de la batería, el coste y los payloads que puedes enviar.

Opción Alcance Consumo Ideal para
Wi-Fi Decenas de metros Alto Invernaderos, naves, cerca de edificios
LoRaWAN Varios kilómetros en terreno abierto Muy bajo Sensores de campo que envían lecturas pequeñas cada pocos minutos
NB-IoT / LTE-M Donde el operador tenga cobertura Bajo a moderado Ubicaciones remotas sin gateway, activos móviles
Router celular (4G) Cobertura del operador Alto (red eléctrica o solar grande) Casetas de bombeo, gateways, cámaras

En la mayoría de las explotaciones funciona una combinación: Wi-Fi o Ethernet dentro de los edificios, LoRaWAN para los sensores de campo con batería y un router celular en el gateway si la finca no tiene internet fijo. Los payloads de LoRaWAN son minúsculos (decenas de bytes), así que los dispositivos envían datos binarios compactos que un servidor de red decodifica a JSON.

Un solo broker para toda la explotación

Sea cual sea la radio, los datos deberían acabar en un único lugar donde todas las herramientas puedan usarlos. MQTT encaja bien en este papel: los dispositivos o gateways publican, y los dashboards, los controladores de riego, las alertas y el almacenamiento se suscriben de forma independiente. Añadir un nuevo consumidor nunca obliga a tocar un sensor.

 Field sensors --LoRaWAN--> Gateway --> TTN / ChirpStack --+
 Greenhouse ESP32 --Wi-Fi/TLS---------------------------+  |
 Pump controller --4G router---------------------------+|  |
                                                       vvv v
                                               MQTT broker (cloud)
                                                 |    |     |
                                    Node-RED logic  Dashboard  Python logger

Los servidores de red LoRaWAN exponen sus propias interfaces MQTT. Un pequeño bridge se suscribe allí y vuelve a publicar las lecturas decodificadas en el árbol de topics de tu explotación, como se muestra en los tutoriales de The Things Network MQTT y ChirpStack. Los dispositivos Wi-Fi, como un ESP32 en un invernadero, publican directamente en el broker.

Si ejecutas ese broker en un PC de la finca, se cae cuando se va la luz, y el acceso remoto exige redirección de puertos. Un broker MQTT en la nube es accesible desde cualquier parcela, cualquier móvil y cualquier contratista sin abrir la red de la explotación.

Diseñar los topics de una explotación

Una jerarquía coherente hace útiles los wildcards y mantiene el sistema comprensible años después. Un patrón que funciona:

<farm>/<site>/<zone>/<device>/<kind>

greenfield/north/field3/soil-07/telemetry
greenfield/north/field3/soil-07/status
greenfield/north/field3/valve-02/set
greenfield/north/field3/valve-02/state
greenfield/barn/climate/th-01/telemetry
greenfield/barn/trough-2/level-01/telemetry

Con esa estructura, greenfield/north/+/+/telemetry te da todos los sensores de la finca norte, y greenfield/+/+/+/status el estado de conexión de todos los dispositivos. Mantén los payloads en JSON, con las unidades en el nombre de los campos o con un esquema fijo:

{
  "ts": "2026-10-16T06:15:00Z",
  "moisture_pct": 31.5,
  "soil_temp_c": 14.2,
  "battery_v": 3.71,
  "rssi": -112
}

Incluir la tensión de la batería y la intensidad de la señal de radio en cada mensaje cuesta unos pocos bytes y ahorra horas de visitas al campo, porque puedes ver un sensor que falla antes de que deje de reportar. Publica un mensaje status retenido con un last will offline desde cada dispositivo conectado, para que los dashboards sepan al instante cuáles han desaparecido.

Si piensas en términos de empresa, centro, área y activo, es la misma idea que una jerarquía ISA-95, y la vista de dispositivos de ConnectMQ agrupa automáticamente los topics por esos niveles.

Un agregador mínimo en Python

Una vez que los datos fluyen, el primer consumidor útil suele ser un simple suscriptor que señala los sensores sin datos recientes o fuera de rango. Este ejemplo usa el servidor MQTT público gratuito de broker.connectmq.com con un prefijo único para que puedas probarlo de inmediato; recuerda que está pensado para pruebas y prototipos, no para datos de producción.

import json
import time
import paho.mqtt.client as mqtt

BROKER = "broker.connectmq.com"
PREFIX = "connectmq/demo/f7q2m1/farm"
STALE_AFTER_S = 3 * 3600
last_seen = {}

def on_connect(client, userdata, flags, reason_code, properties):
    print("connected:", reason_code)
    client.subscribe(f"{PREFIX}/+/+/+/telemetry", qos=1)

def on_message(client, userdata, msg):
    device = "/".join(msg.topic.split("/")[4:7])
    last_seen[device] = time.time()
    try:
        data = json.loads(msg.payload)
    except ValueError:
        print("bad payload from", device)
        return
    if data.get("battery_v", 4.0) < 3.4:
        print(f"LOW BATTERY {device}: {data['battery_v']} V")
    if data.get("moisture_pct", 50) < 20:
        print(f"DRY SOIL {device}: {data['moisture_pct']} %")

client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id="farm-agg-f7q2m1")
client.on_connect = on_connect
client.on_message = on_message
client.connect(BROKER, 1883, keepalive=60)
client.loop_start()

while True:
    now = time.time()
    for device, ts in list(last_seen.items()):
        if now - ts > STALE_AFTER_S:
            print(f"STALE {device}: no data for {int((now - ts) / 60)} min")
    time.sleep(300)

Publica una lectura de prueba con mosquitto_pub -h broker.connectmq.com -p 1883 -i t-f7q2m1 -t 'connectmq/demo/f7q2m1/farm/north/field3/soil-07/telemetry' -m '{"moisture_pct":18,"battery_v":3.3}' y se imprimirán ambos avisos.

Alimentación y cajas estancas

El hardware de campo vive entre lluvia, polvo, calor y heladas. Lecciones prácticas aplicables a casi cualquier despliegue:

  1. Calcula primero la energía. Un sensor que duerme entre lecturas y transmite por LoRaWAN puede funcionar mucho tiempo con baterías; un dispositivo Wi-Fi siempre conectado, no. Los pequeños paneles solares con regulador de carga son adecuados para gateways y controladores.
  2. Usa cajas con grado de protección y prensaestopas. La condensación dentro de una caja mata más electrónica que la lluvia de fuera. Añade un respiradero transpirable y desecante.
  3. Instala por encima de la altura del cultivo y lejos del paso de maquinaria. Tractores y desbrozadoras son un peligro real para cables y estacas.
  4. Etiqueta cada dispositivo con su ID y su topic, para que quien lo encuentre en el campo sepa qué es.
  5. Planifica el fuera de temporada. Retira o prepara para el invierno los sensores que no se necesiten y anota los valores de calibración antes de desmontarlos.

Seguridad y propiedad de los datos

Los datos de la explotación revelan rendimientos, prácticas y los momentos en que no hay nadie en la finca. Cifra con TLS todas las conexiones que salen de la explotación, usa credenciales distintas por gateway o controlador y nunca publiques datos reales en un área pública de pruebas. Los actuadores requieren el máximo cuidado: cualquiera que pueda publicar en el topic set de una válvula puede abrirla. La guía de buenas prácticas de seguridad MQTT cubre lo esencial, y un broker MQTT gestionado se ocupa de los certificados TLS, la autenticación y de mantener el broker actualizado.

Por dónde empezar

Empieza poco a poco: un sensor de suelo, una lectura meteorológica, un broker y un dashboard. El montaje del sensor de humedad del suelo con MQTT es un buen primer dispositivo y, cuando las lecturas sean fiables, el tutorial del sistema de riego automático cierra el ciclo accionando válvulas. Para patrones más amplios en hogares, edificios y explotaciones, la guía de automatización IoT lo une todo.

Construye la red de tu explotación con ConnectMQ

ConnectMQ da a tu explotación un broker MQTT privado con TLS, credenciales generadas, un explorador de topics en vivo, un dashboard y reglas de alerta por umbral para valores críticos como heladas o suelo seco. Crea un broker Serverless gratuito en app.connectmq.com, sin tarjeta de crédito, y conecta hoy mismo tu primer sensor de campo.

Preguntas frecuentes

¿Qué es mejor para la agricultura inteligente IoT, LoRaWAN o Wi-Fi?

LoRaWAN para sensores con batería repartidos por las parcelas, Wi-Fi para dispositivos dentro de los edificios o cerca de ellos. Muchas explotaciones usan ambos, unidos en el broker MQTT.

¿Con qué frecuencia deben reportar los sensores agrícolas?

La humedad del suelo cambia despacio, así que cada 15 a 60 minutos suele bastar. Las heladas y el clima del invernadero requieren actualizaciones más rápidas, cada uno a cinco minutos.

¿Necesito un servidor en la explotación?

No necesariamente. Los gateways y controladores pueden publicar directamente en un broker en la nube por red celular o internet fijo, y la lógica puede ejecutarse en Node-RED o Python donde resulte más cómodo.

¿Puede funcionar MQTT con conexiones rurales poco fiables?

Sí. MQTT es ligero, admite sesiones persistentes y reenvío con QoS 1, y los clientes se reconectan automáticamente, lo que encaja con enlaces celulares irregulares.

Artículos relacionados

Guía para configurar Zigbee2MQTT: del coordinador al panel

Instala Zigbee2MQTT con Docker, configura el coordinador y la conexión MQTT, empareja y renombra dispositivos, contrólalos por MQTT y consulta sus estados en un panel, probando primero en un servidor MQTT público gratuito.

8 min de lectura

Todos los artículos →

Tu broker MQTT privado, a unos pocos clics

Crea una cuenta, obtén las credenciales de tu broker y conecta tu primer dispositivo, sin servidores que instalar, parchear ni escalar.