Saltar al contenido principal

Monitoreo Ambiental Agrícola con LoRaWAN: Hardware, Despliegue e Interfaces

Aviso de uso

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.

  • 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.

Panel de Home Assistant que muestra entidades de humedad del suelo, ambiente y sensor de CE

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.

DispositivoFunciónCuándo elegirlo
SenseCAP S2101SenseCAP S210x
Nodos de sensores de suelo y aire
Medir y reportarSiempre. Elige la variante por la magnitud que necesitas y la banda por tu región
SenseCAP S2100SenseCAP S2100
Registrador de datos LoRaWAN
Sonda de terceros a LoRaWANYa tienes sondas RS485 o analógicas
S-Soil MTEC-02BS-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 LoRaWANNecesitas humedad, temperatura y CE del suelo a través de la ruta S2100
SenseCAP M2 gatewaySenseCAP M2
Gateway LoRaWAN de interior
Reenvía a la nube SenseCAP o ejecuta ChirpStack por sí mismoQuieres un sitio totalmente local: cambia al servidor de red integrado en la interfaz web del M2
reComputer R1225reComputer R12 Series
Gateway LoRaWAN y controlador industrial
Es el gateway y aloja The Things Stack en la misma máquinaEstás autoalojando The Things Stack y no tienes gateway
reRouter CM4reRouter CM4
Host reRouter CM4
Ejecuta el servidor de red o ejecuta el panelNecesitas 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​

Fija la profundidad de la sonda según la zona radicular y luego deja la sonda en su lugar

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:

  1. Desplegar Home Assistant y el broker en el host Linux (los tres recorridos, un único despliegue con Docker compose).
  2. 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.
  3. 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.
  4. Unir los nodos (solo recorridos autoalojados): registra cada DevEUI, JoinEUI y AppKey en el servidor de red.
  5. Desplegar el bridge con la fuente configurada para el recorrido y las credenciales del broker rellenadas.
  6. 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>/state para el valor y a agri_env/sensecap_<deveui>/availability para 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 / puertoPayloadRetenido
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.identifiersSí
agri_env/sensecap_<deveui>/<entity_key>/state (1883)El valor de una medición, p. ej. 33.8Sí
agri_env/sensecap_<deveui>/availability (1883)online o offlineSí

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.

RecorridoQué lee el bridge
Nube SenseCAPEl SenseCAP OpenAPI más el flujo MQTT de la nube; rellena el historial mes a mes en el primer arranque
The Things StackLa integración MQTT del stack, después de que el formateador de payload haya decodificado el uplink
ChirpStackLa 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; ejecuta python3 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 measurementId a magnitud física en assets/config/measurements.yaml se extrajo de las fuentes del decodificador SenseCAP en Seeed-Solution/SenseCAP-Decoder, commit d0a2342: third_party/SenseCAP-Decoder/S210X/Helium/SenseCAP_S210X_Helium_Decoder.js para la serie S210X y third_party/SenseCAP-Decoder/T1000/TTN/SenseCAP_T1000_TTN_Decoder.js para 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 correspondencia id -> 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_measurement y state_class no 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.
Loading Comments...