Monitoreo Ambiental Agrícola con LoRaWAN: Hardware, Despliegue e Interfaces
Este es un panel de operaciones, no un sistema de medición certificado: el valor mostrado es el valor bruto que reportó el nodo, con una unidad asociada.
Qué hace esta solución
La humedad y la CE del suelo en un invernadero determinan cuándo regar y cuándo fertilizar; la lluvia y la temperatura del suelo en un campo abierto deciden lo mismo para otro cultivo. Los nodos LoRaWAN SenseCAP miden esos valores y los reportan por el aire. Los uplinks se convierten en entidades de Home Assistant con la unidad, clase de dispositivo y clase de estado correctas: aparecen en un panel, acumulan historial y generan una notificación cuando un valor cruza un umbral.
Está pensada para invernaderos, parcelas a cielo abierto, sitios sin internet utilizable y despliegues SenseCAP existentes que quieren un panel local sin mover nada.
- Selección y despliegue: página de diseño de referencia
Los nodos SenseCAP funcionan desde el primer momento
Los nodos S210x reportan según el ciclo configurado en el nodo, sin necesidad de enviarles nada. Las entidades se crean mediante descubrimiento MQTT con unidades y clases configuradas; no hay que escribir YAML.
Las sondas de terceros se conectan de la misma forma
Las sondas RS485 o analógicas existentes entran a través del registrador de datos S2100 y usan el mismo mapeo de mediciones. El mapeo, los archivos compose, el panel y las automatizaciones se entregan en el paquete público de la solución; añadir una magnitud es una fila en un archivo de configuración.
Puede funcionar sin internet en absoluto
ChirpStack se ejecuta en el gateway M2, el bridge y Home Assistant en un host local. Sin cuenta en la nube, sin conexión saliente.
Cambia el servidor de red, conserva el panel
Los nombres de las entidades son idénticos en la nube SenseCAP, en un The Things Stack autoalojado y en un ChirpStack local, por lo que cambiar de ruta deja los paneles, automatizaciones y exportaciones intactos.

Qué hardware necesitas
Cuatro elementos en el sitio: los nodos LoRaWAN, un gateway que los escuche, un servidor de red y un host Linux con Docker.
① Los nodos: los sensores SenseCAP S210x miden directamente; un registrador de datos S2100 incorpora las sondas RS485 o analógicas de terceros existentes a la misma red LoRaWAN. No se despliega nada en ninguno de los dos: miden y reportan periódicamente según un ciclo configurado en el nodo.
② El gateway y el servidor de red: las tres rutas solo difieren aquí, y la elección determina si el sitio necesita internet.
| Dispositivo | Función | Cuándo elegirlo | |
|---|---|---|---|
![]() | SenseCAP S210x Nodos de sensores de suelo y aire | Medir y reportar | Siempre. Elige la variante por la magnitud que necesitas y la banda por tu región |
![]() | SenseCAP S2100 Registrador de datos LoRaWAN | Sonda de terceros a LoRaWAN | Ya tienes sondas RS485 o analógicas |
![]() | S-Soil MTEC-02B Sonda RS485 de humedad, temperatura y CE del suelo | Se cablea al S2100 mediante RS485 (Modbus-RTU); el S2100 envía el uplink LoRaWAN | Necesitas humedad, temperatura y CE del suelo a través de la ruta S2100 |
![]() | SenseCAP M2 Gateway LoRaWAN de interior | Reenvía a la nube SenseCAP o ejecuta ChirpStack por sí mismo | Quieres un sitio totalmente local: cambia al servidor de red integrado en la interfaz web del M2 |
![]() | reComputer R12 Series Gateway LoRaWAN y controlador industrial | Es el gateway y aloja The Things Stack en la misma máquina | Estás autoalojando The Things Stack y no tienes gateway |
![]() | reRouter CM4 Host reRouter CM4 | Ejecuta el servidor de red o ejecuta el panel | Necesitas un host y aún no tienes una máquina Linux con Docker |
③ El host del panel: cualquier máquina Linux con Docker. Ejecuta Home Assistant, el broker MQTT y agri-env-bridge, y no necesita acceso entrante a internet.
Pide nodos, gateway y concentrador para la misma banda (EU868 / US915 / AS923, etc.). La banda se fija en fábrica y no puede cambiarse por software. Para las dos rutas autoalojadas también necesitas el DevEUI, JoinEUI y AppKey de cada nodo para registrarlo en el servidor de red.
Límites de selección negativa
- Transmisión de alta velocidad: LoRaWAN está diseñado para telemetría periódica (intervalos de 5–60 min); para monitoreo de video continuo o control de subsegundo, usa 4G o Ethernet industrial cableado.
- Recintos y silos metálicos: Los silos metálicos gruesos o las obstrucciones pesadas subterráneas causan una atenuación de RF severa; usa antenas externas o sensores cableados RS-485.
Cómo se despliega un sitio
1. Monta los nodos
Las sondas de suelo leen la capa en la que se encuentran. Las lecturas a 10 cm y a 40 cm son entidades separadas (soil_moisture_10cm … soil_moisture_40cm). Decide la profundidad según la zona radicular del cultivo antes de cavar el primer hoyo; mover una sonda más tarde hace que el historial ya registrado en esa entidad no sea comparable.
La cobertura de radio tiene que medirse en el sitio; no se da aquí ninguna cifra de alcance. Antes de fijar las posiciones de los sensores, confirma en el sitio que el gateway recibe los uplinks de cada nodo.
2. Instala el software: de 3 a 6 pasos según la ruta
Los pasos por dispositivo y los paquetes de aplicación están en la página de diseño de referencia; elige una configuración para tu sitio y descárgala.
Esquema:
- Desplegar Home Assistant y el broker en el host Linux (los tres recorridos, un único despliegue con Docker compose).
- Levantar el servidor de red: nada que hacer en el recorrido de la nube; en el recorrido con ChirpStack cambia el M2 a su servidor de red local integrado en la interfaz web, o levanta un stack de ChirpStack con compose en un host Linux; en el recorrido con The Things Stack levanta el stack con su Postgres y Redis en la pasarela reComputer R12 Serie.
- Instalar el decodificador (solo recorridos autoalojados): el formateador de payload en The Things Stack, o el códec del perfil de dispositivo en ChirpStack. Sin él, no aparece ninguna entidad.
- Unir los nodos (solo recorridos autoalojados): registra cada DevEUI, JoinEUI y AppKey en el servidor de red.
- Desplegar el bridge con la fuente configurada para el recorrido y las credenciales del broker rellenadas.
- Importar el panel y las automatizaciones y confirmar que las entidades llevan valores.
Tiempo estimado 45 minutos, dificultad intermedia. El recorrido con The Things Stack lleva más tiempo: hay que montar físicamente el concentrador y el stack levanta su propia base de datos y caché.
La verificación es la misma en los tres recorridos: el panel Lovelace importado en el último paso muestra las entidades con valores.
Interfaces disponibles
Todo sale por un único broker MQTT en el puerto 1883, ejecutándose en el host del panel. Tres topics retenidos transportan toda la interfaz.
- Home Assistant: cero configuración. El bridge publica configuraciones de descubrimiento, así que las entidades aparecen por sí solas con la unidad, clase de dispositivo y clase de estado correctas; no se escribe YAML a mano.
- Un sistema de riego o de gestión agrícola: suscríbete a
agri_env/sensecap_<deveui>/<entity_key>/statepara el valor y aagri_env/sensecap_<deveui>/availabilitypara saber si el nodo sigue activo. Ambos son retenidos, así que un suscriptor que se conecte tarde sigue recibiendo la situación actual de inmediato. - Tu propio servicio: la configuración de descubrimiento en
homeassistant/…lleva todos los metadatos de la entidad (unidad, clase de dispositivo, clase de estado, identificadores del dispositivo), lo cual basta para construir un esquema.
Topics y payloads
| Topic / puerto | Payload | Retenido |
|---|---|---|
homeassistant/sensor/sensecap_<deveui>/<entity_key>/config (1883) | Configuración de descubrimiento, una por entidad: name, unique_id, object_id, state_topic, availability_topic, unit_of_measurement, state_class, device.identifiers | Sí |
agri_env/sensecap_<deveui>/<entity_key>/state (1883) | El valor de una medición, p. ej. 33.8 | Sí |
agri_env/sensecap_<deveui>/availability (1883) | online o offline | Sí |
Nombrado de entidades: el id de la entidad es sensor.sensecap_<deveui>_<entity_key>, con el DevEUI completo en minúsculas; una forma abreviada colisiona entre nodos cuyas direcciones comparten un sufijo. Cambiar la regla más tarde implica vaciar juntos los mensajes retenidos del broker y el registro de entidades de Home Assistant; de lo contrario, los topics antiguos vuelven tras un reinicio.
Mantén el broker en una LAN de confianza; no lo expongas a internet. Sus credenciales están en archivos .env en el host, y en el recorrido con ChirpStack el broker del lado LNS se ejecuta sin autenticación en la red de compose.
Rendimiento y datos medidos
Tiempo de ejecución y parámetros clave
Un servicio, agri-env-bridge, se sitúa detrás de los tres recorridos y se ejecuta en el host del panel junto a Home Assistant y el broker MQTT.
| Recorrido | Qué lee el bridge |
|---|---|
| Nube SenseCAP | El SenseCAP OpenAPI más el flujo MQTT de la nube; rellena el historial mes a mes en el primer arranque |
| The Things Stack | La integración MQTT del stack, después de que el formateador de payload haya decodificado el uplink |
| ChirpStack | La integración MQTT de ChirpStack, después de que el códec del perfil de dispositivo haya decodificado el uplink |
- Mapeo de mediciones:
assets/config/measurements.yaml. Cubre temperatura y humedad del suelo a cuatro profundidades, tensión del suelo, flujo de calor y contenido volumétrico de agua; temperatura del aire, humedad, CO2, presión barométrica, PM2.5 y PM10, ruido; pH, oxígeno disuelto, turbidez, TDS, salinidad y temperatura del agua; velocidad y dirección del viento, radiación solar, duración de la insolación, PAR y cuántica de luz; caudal, flujo total, nivel de líquido y fuga de agua. Añadir una magnitud es una fila nueva, sin cambio de código; los valores nunca se escalan, solo se les asigna una unidad. - Umbral de desconexión: por defecto dos ciclos de reporte S210x más margen. Al expirar, las entidades del nodo pasan a no disponibles en Home Assistant, conservando el último valor.
- Desduplicación: las lecturas se indexan por
(DevEUI, measurementId, timestamp), de modo que un relleno histórico desde la nube y el flujo en vivo nunca cuentan doble la misma lectura; cuando una entidad tiene dos valores, prevalece el más reciente. - Comprobación funcional: uplinks registrados reproducidos en el broker en los tres formatos de origen crearon 15 entidades.
- Reproducción: las pruebas de reproducción se encuentran en el repositorio
tests/replay_bench.py; ejecutapython3 tests/replay_bench.py --fixtures tests/data/para verificar tres tipos de uplink y el registro automático de 15 entidades.
Degradación conocida
- El broker es un único punto de fallo: mientras está caído, ninguno de los tres recorridos se actualiza. Los topics de estado son retenidos, así que Home Assistant recupera el último valor tras un reinicio.
Procedencia de datos y recursos
- La tabla de
measurementIda magnitud física enassets/config/measurements.yamlse extrajo de las fuentes del decodificador SenseCAP en Seeed-Solution/SenseCAP-Decoder, commitd0a2342:third_party/SenseCAP-Decoder/S210X/Helium/SenseCAP_S210X_Helium_Decoder.jspara la serie S210X ythird_party/SenseCAP-Decoder/T1000/TTN/SenseCAP_T1000_TTN_Decoder.jspara la T1000. Cada entrada en el YAML lleva el archivo fuente y la línea de la que procede. - La licencia de ese repositorio no está confirmada: no tiene archivo LICENSE ni sección de licencias en su README; la única declaración de licencia que contiene es un encabezado de archivo aportado por terceros que dice
Unlicensed for internal use. El paquete de la solución no redistribuye el decodificador. Solo utiliza la correspondenciaid -> quantity; la guía de despliegue para los dos recorridos autoalojados enlaza al repositorio original. Confirma la licencia con Seeed antes de distribuir el propio decodificador. - Las columnas
device_class,unit_of_measurementystate_classno proceden del decodificador: esa información no existe allí. Se derivaron de la documentación de sensores de Home Assistant. - Los diagramas de arquitectura en la página de diseño de referencia se dibujan a partir de un IR de Arquitectura; el arte de producto procede del catálogo revisado de pegatinas de producto de Seeed.





