Iniciando, consideraciones y conceptos LoRaWAN #1

PDAControl se ha propuesto realizar pruebas y documentación para permitir que usted pueda crear su propia red LoRaWAN y no fallar en el intento, antes de iniciar pruebas queremos analizar y realizar algunas aclaraciones, sobre conceptos básicos que debemos tener en cuenta antes de iniciar a conectar y programar.

En este tutorial no pretendemos ser muy técnicos, pero no dejaremos pasar detalles muy importantes sobre LoRaWAN, si desean explicaciones mas detalladas recomiendo ver tutoriales de Andreas Spiess y Mobilefish.com de Robert Lie, estos video-tutoriales serán un excelente complemento mas detallado.

Recommended: This article in English Getting started, considerations and concepts LoRaWAN

Componentes de una Red LoRaWAN

Se han determinado estos 4 componentes en una red LoRaWAN:

  • nodos (sensores/actuadores): son los dispositivos finales que envían y reciben información hacia el gateway.
  • gateways (direccionamiento de datos): son los encargados de recibir y enviar información a los nodos a servidores y viceversa.
  • Red de Servidores : son los que permiten la administración de nodos, gateway desde aplicaciones, que permiten ver los datos.
  • Aplicaciones: permiten integrar aplicaciones finales para administrar o visualizar datos (Ejemplo Node-RED).

Topologia LoRaWAN: Estrella.

Arquitectura LoRaWAN

La imagen tiene un atributo ALT vacío; su nombre de archivo es lorawan-sentech.jpeg

Clases de Nodos

LoRaWAN ha clasificado sus nodos o dispositivos finales en 3 clases según su eficiencia energética (consumo de batería) y ventanas de recepción de mensajes.

  • Clase A (baseline): Son los que menos consumen, solo reciben después del envió.
  • Clase B (Beacon):Consumen mas que los clase A, los nodos están sincronizados para permitir la recepción.
  • Clase C (Continuous): Tienen un consumo elevado pero siempre están disponibles para recibir mensajes.

En nuestras pruebas utilizaremos nodos clase A.

1- ESP32+ RAK811 (AT command) (915mHz)

2- ESP32 + RFM95 (915mHz)

3- ESP32 LoRa Heltec (915mHz)

Clases de Gateway (solo Canal) Vs Gateway (Multicanal)

Si desean hacer una implementacion LoRaWAN funcional importante primer paso comprar gateway multicanal, También se caracterizan por gateway para interiores y exteriores, eso depende mas de la robustez para casos de intemperie.

En mi caso tengo gateway es un RAK833 de 8 canales a un precio asequible, en el mercado hay otras soluciones multicanal.

Raspberry Pi 3 + mPCIe to USB + RAK833 SPI/USB

Gateway RAK833 SPI/USB Multicanal

Inclusive hace un tiempo realice pruebas con Gateway 1 solo canal (ESP8266 – Rfm95), determine que solo son implementaciones para pruebas iniciales muy básicas y un solo canal solo sirve para un solo nodo, en la vida real no es funcional, técnicamente entre mas canales, mayor cantidad de conexiones simultaneas o mayor cantidad de nodos (sensores).

Recommended: This article in EnglishGetting started, considerations and concepts LoRaWAN

Servidores LoRaWAN

Actualmente existen diversos servidores LoRaWAN, tanto de código abierto, redes publicas y también permiten crear nuestras redes privadas, a continuación un listado de algunos servidores y/o plataformas libres y otras son servicios PaaS pagos:

Inicialmente ya hemos tenido tutoriales de previos con estos dos servidores:

Reenviadores de paquetes (Packet Forwarders)

Un reenviador de paquetes LoRa es un programa que se ejecuta en el host de una puerta de enlace LoRa (gateway) que reenvía paquetes RF recibidos por el concentrador a un servidor a través de un enlace UDP/IP, y emite paquetes RF que envía el servidor, básicamente toma las tramas Lora de los nodos y las convierte a UPD/IP para el servidor, esto ocurre en el Gateway.

Materiales

En próximas pruebas utilizaremos los siguientes dispositivos para crear nuestra red LoRaWAN.

Importante: Antes de comprar verifique la frecuencia de su país, región o zona!!.

Raspberry Pi 3 o 4

Gateway LoRaWAN 8 Canales RAK833 de RAK Electronics

Nodo LoRaWAN RAK811 (AT Commands)

Tarjeta convertidora mPCIe to USB para RAK833

Modulo ESP32 ESP-WROOM-32

Modulo ESP32 LoRa HELTEC – 915 MHz

Modulo/Radio RFM95 Hope Electronics

Otros Recomendados LoRaWAN

RAK2245 LoRa Pi Hat GATEWAY LoRa LoRaWAN

LoRaWAN Button RAK

Antenna 5.8dBi Fiberglass LoRa LoRaWAN

Frecuencias LoRa ISM

Las frecuencias ISM (Industrial Scientific & Medical) son frecuencias libres de licenciamiento, cada país cuenta con frecuencias libres pero limitadas de potencia y tiempo de transmisión.

https://lowpowerlab.com

Advertencia: se deben respetar estas frecuencias y usted esta obligado a buscar, estudiar y cumplir con las regulaciones de su propio país. 

The Things Network, ha determinado rangos de frecuencias para LoRaWAN para cada pais, LoRaWAN Frequency Plans and Regulations by Country.

LoRa Alliance ha definido un listado mas completo con la regulación de frecuencias LoRaWAN Regional Parameters.

En el caso de mi pais Colombia, en America frecuencia de 902-928, aplica (AU915-928, US902-928).

Canales y Sub-bandas

LoRaWAN ha estandarizado ordenado y agrupado las frecuencias en canales y sub-bandas, en el caso reales:

  • Europa utiliza frecuencia de 868 Mhz existen 10 canales disponibles
  • America utiliza frecuencia de 915 Mhz existen 64 canales disponibles

The Things Network cuenta con una lista en la cual de describen los canales bandas y sub-bandas LoRaWAN asignadas para cada región LoRaWAN Frequencies Overview, IMPORTANTE: verificar la suya antes de comprar sus dispositivos.

En el caso de América, 9 canales para Uplink y 8 canales para Downlink.

Esta tabla es mas completa y descriptiva, muestra todos los canales existentes para América, el caso especifico de EEUU que usan 64 canales, en nuestro caso usaremos 8 canales para nuestro Gateway RAK833.

Cada sub-banda tiene 8 canales.

LoRaWAN US902-928

Comprender esta tabla sera importante para configurar nuestro gateway y nodos mas adelante.

El nodo debe tener configurada la mascara de canales y sub-bandas por las cuales trasmitirá y recibirá.

Recommended: This article in EnglishGetting started, considerations and concepts LoRaWAN

Activación de Nodos

Para formar parte de una red los nodos necesitan ser reconocidos, por esta , esto se logra guardando las claves en el Nodo dependiendo del método, existen 2 tipos (OTAA) y (ABP), en nuestro caso solo nos enfocaremos en OTAA.

Los nodos requieren un método para ingresar, o hacer parte de una red existente

Activación por el Aire (OTAA)

La principal ventaja de OTAA es la seguridad dado que la sesión de realiza «en el Aire» y se renueva cada vez que el nodo se desconecta, esto dificulta que se pueda clonar o robar la sesión.

En el caso de ABP, no es muy útil, ni practico dado que las credenciales son fijas y si cambias de red debes modificaras «manualmente», por esa causa no lo usaremos.

  • Identificador del Dispositivo (DevEUI) : es un identificador IEEE EUI64 único para cada Nodo.
  • Clave de aplicación (AppKey) : es una clave AES-128 única para cada dispositivo que se utilizara para obtener las claves de sesión NwkSKey y AppSKey.
  •  Identificador de aplicación( AppEUI): Identificador de aplicación único utilizado para agrupar objetos. Esta dirección de 64 bits se, utiliza para clasificar los dispositivos por aplicación. Esta Configuración se puede ajustar.

Todo nodo debe tener DevEUI y AppKey

Para la unión (join) con el servidor se intercambian 2 mensajes MAC : Solicitud de Union (Join Request) y Aceptación de Union (Join Accept).

  1. El nodo realiza una solicitud join (o inicio de sesión) se realiza a cualquier velocidad y después realiza una secuencia de salto de frecuencia en los canales especificados(canales de recepción uplink )
  2. La petición pasa por le Gateway hacia el servidor y responderá a la solicitud de unión con un mensaje de aceptación y le permitirá al nodo unirse a la red, de lo contrario no hay .
  3. Luego de la activación, la siguiente información se almacena en el nodo: una dirección de dispositivo ( DevAddr ), un identificador de aplicación ( AppEUI ), una clave de sesión de red ( NwkSKey ) y una clave de sesión de aplicación ( AppSKey ).
 

Protocolo Chirp

El protocolo chirp modulación Chirp Spread Spectrum ( CCS ) usa modulación de frecuencia de amplitud fija. Puede utilizar todo el espectro asignado para transmitir señales produciendo una señal que recorre el canal. Hay dos tipos de chirridos: el «chirrido ascendente» que se mueve hacia arriba en frecuencia y (no es sorprendente) un «chirrido descendente» que se mueve hacia abajo en frecuencia, es decir, cuando hay un chirrido, se moverá a través de la frecuencia asignada en cualquier dirección .

Factor de Propagación o SF (Spreading Factor)

El factor de propagación o factor de esparcimiento se utiliza para determinar la velocidad de transferencia de datos con relación al rango (distancia), determina el numero de bits usados para codificar un símbolo, en lorawan se usan de SF7 a SF12.

SF7 es el tiempo mas corto al aire y SF12 es el tiempo mas largo al aire, cada paso en el factor duplica el tiempo para transmitirla misma cantidad de datos, es decir a mayor SF, menor velocidad pero mayor inmunidad a interferencias.

Ancho de Banda – Bandwidth

Es el ancho de la Frecuencia, o también es el espacio entre cada canal que vamos a usar, para LoRaWAN existen 3 anchos de banda:

  • 125Khz
  • 250Khz
  • 500Khz

Velocidad de datos – DataRate

Para LoRaWAN utiliza diferentes configuraciones de frecuencias, factores de propagación (SF) y anchos de banda (BW) dependiendo de en que parte del mundo este ubicado (País/Región), para determinadas Bandas y tienen asignadas velocidades para el envió de datos, en Uplink y Downlink.

Para la bandas US902-928 y AU915-928 las velocidades son:

En mi caso especifico América que usa US902-928, mi gateway y nodos están usando:

  • Uplink (enlace de Subida) : DR0 – SF10/125 = 19 Bytes
  • Downlink (enlace de Bajada) : DR10 – SF10/500 = 230 Bytes

 Para las bandas EU868, EU433, CN780 y AS923 las velocidades son:

Para las bandas CN470-510 y KR920-923 las velocidades son:

Carga Útil (Payload)

Para transmitir paquetes datos en Uplink y Downlink se utilizan arreglos (Array) de Bytes, La idea principal de LoRaWAN es que los paquetes de datos sean lo mas pequeños posibles y así reducir la posibilidad de interferencias y los datos lleguen correctamente.

Se debe optimizar el envió de datos, para eso se deben utilizar bytes o grupos de 8 bits, de -128 a 128 o 0 a 256 según sea el caso.

Importante: No se debe enviar JSON o cadenas de caracteres (Strings o ASCII), codificar sus datos en binario (bytes, word o hex).

Estructura Trama LoRaWAN

No entraremos en detalles, pero el envió de datos implementando LoRa es muy básico, pero las tramas de datos de LoRaWAN son mas complejas de hay lo robusto y seguro, aquí un ejemplo de el protocolo MAC.

Recomendado: Trabajando con Bytes (The Things Network).

La frecuencia de envió de datos ya depende de varios factores tales como, el ciclo de trabajo, del cual hablaremos mas abajo.

Recomendaciones: una buena practica es enviar datos ejemplo (sensor de temperatura) solo cuando la variable cambie su valor.

Cayenne LLP

La plataforma IoT Cayenne, ha pretendido normalizar los métodos de envió de datos llamado Cayenne LPP (low power payload), que cumple con los limites de envió de datos, reduciendo la carga util a 11 Bytes.

Recomendado: información Cayenne LPP (low power payload)

Tasa de Codificación – Code Rate (CR)

Indica la forma de codificar para la corrección de errores, técnicamente añade símbolos de control para validar si los datos recibidos con correctos o incorrectos.

Recommended: This article in EnglishGetting started, considerations and concepts LoRaWAN

Tipos de mensajes : Confirmados y No Confirmados

Existen 2 tipos de mensajes confirmados y no confirmados, técnicamente es que si el un nodo envía un mensaje (uplink) al servidor, el servidor envía otro mensaje (downlink) al nodo confirmando que si se recibió correctamente, en el otro caso, el nodo envía y no recibe respuesta.

Mensajes Uplink y Downlink

Uplink o Enlace Ascendente, es el envió de datos desde el nodo (sensor/actudor) a través del Gateway hacia el Servidor/Aplicación.

Segun la tabla LoRaWAN US902-928, que contiene las frecuencias y sub-bandas para Uplink, SF7 BW125 hasta SF10 BW125.

Downlink o Enlace Descendente, es el envió de datos desde Servidor/Aplicación a través del Gateway hace el nodo.

Según la tabla LoRaWAN US902-928, que contiene las frecuencias y sub-bandas para Downlink, SF7 BW500 hasta SF12 BW500.

Adaptive Data Rate (ADR)

Adaptive Data Rate (ADR) es un método en el cual el servidor y gateway optimiza las velocidades de los datos, tiempo al aire y consumo de energía, solo sirve o funciona cuando el nodo cumple con las condiciones la principal ser estático, no valido para nodos que se mueven.

Técnicamente es detectar si una transmisión es muy débil y re-configurar ya sea que gastas mucha potencia comunicándote con alguien cerca o tienes muy poca potencia con alguien lejano.

Ciclo de Trabajo

Dependiendo de su implementacion y región existen limitaciones del ciclo de trabajo, (es una relación entre un tiempo dedicado para enviar y no enviar).

Para algunas frecuencias el ciclo máximo de trabajo es 1% , es decir si pasa 1 segundo enviando un mensaje, debe esperar 99 segundos antes de poder enviar otro.

Existen otros casos en los que el ciclo máximo de trabajo es 0.1% casos en los que tiene que esperar 15 minutos.

El ciclo de trabajo debe tenerse en cuenta en los casos de la plataforma The Things Network específicamente en Europa a 868Mhz.

Recomendado: Leer Ciclo de trabajo para dispositivos LoRaWAN para entender mejor el ciclo de trabajo.

Se han implementado unas políticas de uso justo, en la plataforma The Things Network y deben respetarse, en mi caso especifico usare LoRaserver y montare un servidor propio, pero IMPORTANTE, aunque monten un servidor privado deben respetar el el ciclo de trabajo, esto depende de la normativa de cada país.

RECOMENDADO, He encontrado este articulo que entra mas en materia sobre el ciclo de trabajo para los países bajo 915Mhz, LoRaWan en la zona US915, también recomiendo leerlo.

Todo esto del ciclo de trabajo es importante para determinar con que frecuencia pueden enviar (Uplink) y recibir datos (Downlink), respetando el uso justo de las ISM, dado que son libres, pero son para todos, No abusar de la frecuencia con la que envió y recibo de datos.

Seguridad

LoRawan entre nodos y dispositivos esta cifrado con AES-128, hay 2 claves de cifrado una clave de sesión de red y una clave de sesión de aplicación, ambas claves son únicas para los dispositivos y se utilizan en mensajes y cargas útiles (payloads), la información es cifrada desde el nodo al servidor.

Distancia Máxima

La distancia máxima depende de muchos factores que afectan o influyen tales como velocidad de datos (DR), factor de dispersión (SF) y ancho de banda (BW) que aunque están relacionados no están directamente vinculados, eso a nivel de configuración, a nivel físico depende dela densidad y antenas de nodos y gateway, hay estimaciones con los módulos IC ya conocidos  SX1272, SX1276 y SX1278, se estiman 20km, pero considero que es relativo, mi respuesta es realizar sus propias pruebas.

Cantidad de Nodos

La respuesta depende de varios factores directamente de el gateway y tipos de nodos configuraciones, región (bandas, canales, etc), en mi caso tengo un RAK833, estiman aproximadamente 500 nodos, a 2km aproximadamente, una gran cantidad, imposibles con Wifi u otra tecnología.

Limitaciones de LoRaWAN

LoRaWAN es una gran implementacion pero no es la solución perfecta a sus aplicaciones IoT, LoRaWAN no es para datos en tiempo real, ni envió de TCP/IP y vídeo ni audio ni telefonía, The Things Network , ha definido un listado detallado del alcance y limitaciones de LoRaWAN.

Recomendaciones

Inicialmente para no fracasar en el intento y hacer las cosas bien, recomiendo lo siguiente, claro no soy un experto en la materia.

  1. Antes de comprar equipos y hacer cosas, primero leer y documentarse sobre LoRaWAN, en LoRa Alliance el principal promotor.
  2. Investigar y respetar la regulaciones y normativas sobre radiofrecuencia y bandas ISM de su país correspondiente.
  3. La compra equipos, caso especifico el gateway, debe ser multicanal, los gateway un solo canal, no sirven!! en implementaciones reales.
  4. Responsabilidad con uso de el ciclo de trabajo de sus dispositivos.
 

Conclusion

LoRaWAN es una implementacion excelente, desde mi punto de vista en sencilla, económica, funcional Y sobre todo segura pero no es apta para todos los caso y aplicaciones.

LoRaWAN puede ser complejo si se desea implementar código desde Cero, muchos han hecho implementaciones en LoRa, pero LoRaWAN es mucho mas robusto, estandarizado y no se implementara de la noche a la mañana si no se entienden los conceptos básicos, por esto no se deben hacer configuraciones o ajustes sin tener en cuenta los factores que listamos en este articulo (ancho de banda, velocidad de datos,tasa de codificación, etc).

importante al elegir sus equipos, e iniciar pruebas mi regla oro:

  1. dispositivos muy baratos o asequibles, requieren en muchos casos implementaciones de código o mucho tiempo de desarrollo. No utilizaremos arduino para nuestras pruebas LoRaWAN, usaremos los ESP32 con ESP-IDF y los módulos RFM95.
  2. Dispositivos relativamente mas costosos requieren menos o técnicamente ninguna implementacion, es el caso de los módulos RAK811 (nodos), son mas costosos que los RFM95, pero no requieren código adicional y son técnicamente de desempacar y conectar .

Para finalizar, no soy un experto en el tema, espero que en los comentarios me indiquen si algún concepto esta erróneo y corregirlo, espero sus sugerencias, nuevamente muchas gracias por esta aquí en PDAControl, saludos.

Recommended: This article in English Getting started, considerations and concepts LoRaWAN

Recomendados

Artículos recomendados y fuentes con mucha información.

Deja una respuesta