Trabajo Fin de Máster

Marco modular demonitorización IoT paraentornos con conectividadrestringida

Estación agrícola con inferencia LSTM en el borde

Cesar Edwardo Almeida Leon
Tutora · Sara Blanc Clavero
Universitat Politècnica de ValènciaMáster Universitario en Ingeniería de Computadores y Redes
Riego de cítricos

¿Hay que regar
mañana?

Estado hídrico del suelo

ahora

Meteorología prevista

próximas 24 h

Tomarla bien ahorra agua, energía de bombeo y estrés en el árbol.

Sin acometida eléctrica cercana

Cobertura móvil intermitente

Mantenimiento que debe ser mínimo

Dos ideas que recorren el trabajo

Conciliarlas es el reto técnico central.

Objetivo general

Diseñar, implementar y validar una estación IoT modular para agricultura de precisión que opere en entornos con conectividad restringida y ejecute inferencia en el borde.

  1. 1Una arquitectura que separe estación, aplicación y backend, y justifique el hardware
  2. 2El firmware Savia: sensores configurables sin reprogramar, almacenamiento local, BLE y hora sin RTC
  3. 3Portar y cuantizar a int8 el LSTM y medirlo en la placa real
  4. 4Las comunicaciones LoRaWAN, sus modos de operación y su autenticación
  5. 5La aplicación TerraLink y el backend SaviaCloud
  6. 6La validación con vectores de referencia compartidos y hardware real

Proyecto de dos autores con alcances disjuntos.

La estación hace cuatro cosas.

Adquirircadencia configurable, 1 h por defecto; retención de 48 h
Agregarmedias horarias por puerto, magnitud y profundidad
Inferiruna vez al día: 48 h propias más el pronóstico de temperatura
ServirBLE con contrato GATT: lecturas y predicción
La estación · elección de placa

Tres placas para el mismo trabajo.Deciden dos límites: memoria y energía.

Raspberry Pi Zero 2 W
Raspberry Pi Zero 2 WLinux · Cortex-A53 ×4elegida
Raspberry Pi Pico 2 W
Raspberry Pi Pico 2 WRP2350 · Cortex-M33 ×2elegida
Raspberry Pi Pico W
Raspberry Pi Pico WRP2040 · Cortex-M0+ ×2elegida
Procesador
4× Cortex-A53 · 1 GHz
2× Cortex-M33 · 150 MHz
2× Cortex-M0+ · 133 MHz
Coma flotante
FPU + NEON
FPU en hardware
sin FPU · por software
Memoria
512 MB
520 KB
264 KB
Almacenamiento
microSD · hasta 2 TB
4 MB de flash
2 MB de flash
En reposo
≈120 mA · 0,6 W
57 µA · 188 µW
180 µA · 594 µW
Sistema
Linux
sin sistema operativo
sin sistema operativo

El intérprete del LSTM pide unos 350 KB de arena: no caben en 264 KB. Y un nodo a batería no puede llevar Linux encendido todo el día.

Pico: solo el chip, según su datasheet (RP2350 en P1.7, RP2040 en DORMANT, a 3,3 V). Zero 2 W: la placa entera a 5 V; no hay cifra oficial y ~120 mA es la medida publicada por CNX Software. Fotos: Raspberry Pi.

La estación · memoria persistente

Dónde vive
el dato

La única memoria que sobrevive al apagón es un chip aparte, la W25Q32 de 4 MB. Su granularidad manda en todo lo que viene: para cambiar un byte hay que borrar los 4 KB que lo rodean.

La sonda no entrega números: entrega texto. Contesta cuánto tarda y cuántos valores trae, y se recogen con 0D0! y 0D1!. Con 0M1! da además las cuatro temperaturas.

Cada número viene en SFU, la escala propia de la sonda. El firmware lo divide entre cien —la escala en que se entrenó el modelo—, le pone profundidad y puerto y lo sella con la hora.

Guardar es convertir cada lectura en quince bytes y dejarlos caer en la página. La flash no escribe bytes sueltos: cuando la página de 256 B se llena, se programa entera.

El anillo de lecturas vive en RAM, así que la estación guarda una imagen periódica en los últimos 32 KB de la flash, los que el programa no usa.

La estación · inferencia en el borde

El modelo,
cuantizado

Partimos de un modelo ya entrenado: un .h5 de Keras con dos entradas, tres LSTM y dos densas. Son 39 896 pesos en coma flotante.

Convertirlo tal cual falla: con unroll=False la LSTM es un bucle que guarda cada paso en una lista de tensores sin forma conocida. Y Flex, lo que propone el error, no existe en la Pico.

La salida es desenrollar: los 48 pasos se escriben uno tras otro con operaciones básicas. Mismos pesos y misma salida, a cambio de 1703 operaciones.

Al pasarlo a enteros de 8 bits, cada canal lleva por defecto su propia escala, y la placa guarda en RAM 8 bytes por canal y por capa: con 242 capas desenrolladas no cabe. Con una escala por capa, sí.

La misma ventana, con el modelo original y con los bytes de la placa: casi se tocan. En 3600 horas de prueba la diferencia media es 0,007, y tres de cada cuatro horas quedan por debajo de 0,01.

La estación · la hora, sin reloj de pila

Sincronización
del reloj

La Pico no tiene reloj con pila: al encender solo cuenta milisegundos. Lo primero que hace es pedir la hora, y cada hora que le llega pasa tres filtros. La última buena, la LKG, queda en flash y acota el apagón.

La estación · cableado de campo

Esquemático de la estación Savia

vídeo del móvilvideos/9.0.mp4
La estación · servicio BLE

El contrato
BLE

La estación es periférico y el móvil, central. Un único servicio GATT que comparten TerraLink y el cuadro de mando: nueve características, y cada mensaje es un mapa CBOR con nombres de campo fijos.

TerraLink · primera configuración

Configurar
la estación

Una placa recién flasheada no tiene nada guardado. TerraLink lo detecta y ofrece un asistente con lo mínimo que la estación necesita para empezar a trabajar.

vídeo del móvilvideos/11.0.mp4
SaviaCloud · el backend

La estación
y la nube

El móvil pide un ping y la estación lo envía por LoRa como uplink confirmado. SaviaCloud lo registra a las 14:41:21; segundos después, el ACK vuelve a la estación con la calidad del enlace.

La estación no mide la temperatura del aire, y el LSTM la necesita: 48 h pasadas y 24 de previsión. SaviaCloud se la pide a Open-Meteo y se la manda por LoRa junto con la hora.

Uplinks recibidos en SaviaCloud
vídeo del móvilvideos/12.0.mp4
TerraLink · diagnóstico

Consolas de
diagnóstico

Para la puesta en marcha en campo, sin instrumentación externa: la app encola un comando por BLE y lee la respuesta literal. Una consola habla con el módulo LoRa; la otra, con la sonda.

vídeo del móvilvideos/13.0.mp4
TerraLink · histórico

El ciclo de vida
de la estación

La estación no guarda su propia historia: solo lecturas recientes, el último pronóstico y un registro corto. TerraLink la recoge en cada conexión y la pone en un mismo eje con lo que la estación hará después.

vídeo del móvilvideos/14.0.mp4
Máster Universitario en Ingeniería de Computadores y Redes

Del máster
al TFM

Cinco asignaturas del plan dejan huella directa en el trabajo. Cada una aparece en una pieza concreta, no en el discurso.

Agenda 2030

Relación con
los ODS

El sistema afecta por diseño al agua de riego, a la práctica agrícola sostenible, a la infraestructura rural y al uso responsable de recursos.

Cierre

Conclusiones

La aportación central: un marco modular de monitorización IoT para agricultura de precisión que opera con conectividad restringida, demostrado sobre hardware real.

Trabajo Fin de Máster · DISCA · UPV

Gracias

Cesar Edwardo Almeida Leon

Savia
firmware de la estación
TerraLink
aplicación de configuración
SaviaCloud
backend
avanzar · volver · F pantalla completa · T tema