UMH · Campus de Orihuela

Infraestructura de red LoRaWAN

Conecta este navegador a un broker MQTT, suscríbete a un topic y observa en tiempo real cómo llegan las tramas LoRaWAN de tus sensores: su recorrido, su anatomía y sus datos decodificados en gráficas.

1¿Cómo viaja un dato desde el sensor hasta tu pantalla?

Cada vez que llegue una trama verás un paquete naranja recorriendo la cadena. Las líneas se animan en verde cuando tu navegador está conectado al broker.

🌡️

Sensor

Mide y envía unos pocos bytes por radio

LoRa
📡

Gateway

Escucha la radio y reenvía a Internet

LoRaWAN
☁️

The Things Network

Valida, descifra y decodifica el payload

TTS v3
📬

Broker MQTT

Publica el mensaje JSON en un topic

PUBLISH
💻

Tu navegador

Suscrito al topic, recibe y grafica

WebSocket

2Configura la conexión con el broker

Un navegador no puede abrir conexiones TCP directas, por eso usa MQTT sobre WebSocket (ws:// o wss://). ¿No tienes un broker a mano? Pulsa Modo demo y la página simulará tramas reales de TTN.

Formato: protocolo://host:puerto/ruta

En TTN: id-aplicación@ttn

En TTN: una API Key de la aplicación

Debe ser único en el broker

Garantía de entrega del mensaje

Comodines: + sustituye a un nivel del topic · # sustituye a todos los niveles restantes (siempre al final).

🧩 Asistente de topic para The Things Network

Desconectado. Rellena los datos y pulsa «Conectar y suscribir».
CONNECT SUBSCRIBE PUBLISH

3Panel en tiempo real

Todo se actualiza solo en cuanto llega un mensaje: no hace falta recargar la página.

Mensajes

0

recibidos en esta sesión

Dispositivos

0

sensores distintos

Ritmo

0

mensajes / minuto

Último RSSI

–

SNR –

Última trama

–

esperando datos…

📡 ¿Por qué gateway sale cada sensor?

rx_metadata

Un sensor LoRaWAN no se «conecta» a un gateway: emite por radio y todos los gateways que lo oyen reenvían la trama a TTN. TTN elimina los duplicados y anota en rx_metadata qué gateways la recibieron y con qué señal. Aquí se considera «de salida» el de mejor señal (mayor SNR y, a igualdad, mayor RSSI).

Cuando lleguen tramas verás aquí cada sensor con el gateway por el que está saliendo.

4Anatomía de la última trama

Así se descompone un mensaje de The Things Network: el topic dice de quién es, el frm_payload son los bytes crudos que envió el sensor y el decoded_payload es el resultado de aplicar el decodificador (payload formatter) de la aplicación.

📨 Cabecera y radio

sin datos

Esperando la primera trama…

Metadatos LoRaWAN

Aquí aparecerán fCnt, puerto, factor de dispersión, frecuencia, gateway, RSSI y SNR.

🔓 Del byte al dato

decoded_payload

1 · Bytes recibidos (frm_payload en hexadecimal)

Sin bytes todavía.

⬇ el decodificador de TTN transforma los bytes en valores con significado ⬇

2 · Valores decodificados

Aquí aparecerán las variables del sensor (temperatura, humedad…).

5Gráficas de los datos decodificados

Elige una variable del decoded_payload: se dibuja una línea por cada dispositivo. Las variables aparecen solas en el desplegable a medida que llegan.

📈 Variable del sensor

📶 Calidad de la señal de radio

RSSI: potencia recibida (más cerca de 0 = mejor). SNR: señal frente a ruido (positivo = muy bueno; LoRa decodifica incluso con SNR negativo).

6Tramas capturadas

Cada fila indica el gateway por el que salió la trama (📡) y cuántos gateways más la oyeron. Pulsa una trama para ver todos los gateways y el JSON completo.

Todavía no ha llegado ninguna trama. Conéctate a un broker o activa el Modo demo.

7Conceptos clave

📬 MQTT

Protocolo ligero de mensajería publicar / suscribir. Los dispositivos no se hablan entre sí: todos se conectan a un broker, que entrega cada mensaje publicado a quien esté suscrito a ese topic.

🗂️ Topic

Dirección jerárquica separada por /, como una ruta de carpetas. En TTN: v3/{app}@ttn/devices/{dispositivo}/up. Con + escuchas a todos los dispositivos de la aplicación.

🎯 QoS

0: se envía una vez y no se confirma. 1: se repite hasta confirmarse (puede duplicarse). 2: entrega exacta mediante un diálogo de cuatro pasos. A más QoS, más fiabilidad pero más tráfico.

📡 LoRaWAN

Red de largo alcance (kilómetros) y muy bajo consumo. A cambio, cada trama transporta muy pocos bytes, por eso los sensores envían números codificados en binario y no texto.

🔢 SF y airtime

El factor de dispersión (SF7…SF12) equilibra alcance y velocidad: SF12 llega más lejos pero tarda mucho más en el aire (consumed_airtime) y gasta más batería.

🔐 Credenciales TTN

En la consola de TTN, entra en tu aplicación → Integrations → MQTT. Ahí verás el servidor, el usuario (app@ttn) y podrás generar una API Key que hace de contraseña.

🧠 Ejemplo de decodificador (payload formatter)

Este es el código JavaScript que se configura en TTN para el sensor de demostración. Recibe los bytes y devuelve un objeto con valores legibles:

function decodeUplink(input) {
  const b = input.bytes;
  // bytes 0-1: temperatura × 100 (entero con signo)
  let t = (b[0] << 8) | b[1];
  if (t > 32767) t -= 65536;
  return {
    data: {
      temperature: t / 100,          // °C
      humidity: b[2] / 2,            // %  (byte 2)
      battery: ((b[3] << 8) | b[4]) / 1000  // V
    }
  };
}

⚠️ ¿Por qué no conecta?

• El broker debe aceptar WebSocket: el MQTT «clásico» (puertos 1883/8883) no funciona desde un navegador.
• El servidor MQTT público de TTN solo ofrece 1883/8883, así que para usarlo desde aquí hace falta un puente (incluido en mosquitto-ttn.conf: pon tu usuario, API Key y aplicación, arráncalo con mosquitto -c mosquitto-ttn.conf -v y conecta a ws://localhost:9001).
• Si la página está abierta en https://, el broker debe ser wss:// (cifrado).
• Revisa el usuario (app@ttn), la API Key y que el topic no tenga espacios.
• Abre el registro de la conexión para ver el error exacto.

💡 Para practicar: conecta dos pestañas al mismo broker público y usa «Publicar trama de prueba»

Creditos

Universidad Miguel Hernández

Campus de Orihuela (Alicante). Escuela Politécnica Superior de Orihuela. https://www.umh.es

Aula de Transformación Digital FIWARE

Web de monitorización en tiempo real con datos de la plataforma AgroFIWARE. https://uco.es/atdfiware

UMH ORIHUELA CORDOBA FIWARE DTL UNIVERSIDAD MIGUEL HERNANDEZ