Exploración a ecosistema LoRaWAN
Jun 07, 2021 ‧ 20 min estimados ‧ #iot #lora #lorawan #exploration |
Contenido Simulación de dispositivos y plataforma Integración de hardware mínima Integración de hardware y plataforma |
En este artículo vamos a descubrir las posibilidades que nos ofrece el ecosistema LoRaWAN para realizar soluciones IoT. Lo que vas son los siguientes temas:
A lo largo de las siguientes secciones vamos a realizar una exploración práctica al ecosistema de LoRaWAN para evaluar las posibilidades que te ofrece. Esto es un aspecto clave a realizar cuando estás eligiendo una tecnología, ya que podés tener un panorama completo de las posibilidades y ver las opciones para cada parte del desarrollo.
Del mismo modo que ocurre con la fragmentación general del universo IoT, en LoRaWAN hay división entre proveedores, tecnologías y plataformas. Para realizar una solución necesitas componentes de hardware y software. Por un lado están los nodos finales para tomar datos y ser controlados y los gateways donde se conectan los nodos; y por otro un servidor de red para administrar el sistema y un servidor de aplicaciones para la lógica de la aplicación. En esta figura podemos ver cómo interactúan las partes entre sí.
La interacción entre los componentes no resulta trivial. Si bien hay operadores que ofrecen soluciones listas para usar, es necesario que conozcas cada una de las partes para que puedas evaluar y tomar una decisión. Los costos de las plataformas varían según las prestaciones de servicios. Hay por ejemplo proveedores de gateways que dentro de los mismos ofrecen un network server y un application server, de manera que con un único dispositivo podés desplegar una solución; y también existen proveedores de software SaaS que ofrecen servicios para la gestión y visualización de los nodos, y dejan al desarrollador la libertad de elegir el hardware.
Encarar un proyecto requiere de múltiples conocimientos y el objetivo de este material es darte una visión lo más general y abarcativa posible para que puedas evaluar distintos puntos de vista y tomar una decisión a conciencia. Vamos a ver las posibilidades para los nodos, gateways y plataformas, y al final vamos a hacer una recapitulación de las distintas partes y te vamos a mostrar algunas implementaciones posibles.
Los nodos son los dispositivos que le dan vida a una solución LoRaWAN, y en esta sección veremos algunas posibilidades.
Para el desarrollo de nodos ad-hoc existen al menos dos opciones, una es utilizar un módulo con transceptor LoRaWAN, antena y controlador integrado; y otra es usar un chip con el stack LoRa que se encargue de la comunicación a nivel físico y dejar en manos del desarrollador la creación de la antena y control del dispositivo. En esta imagen vemos cada una de estas soluciones.
La solución basada en módulo tiene un costo mayor que el chip, pero en esos casos la selección de componentes, el diseño del circuito y el desarrollo de la antena se encuentran listos para usar, y en la mayoría de los casos certificado por la LoRa Alliance.
Las placas de desarrollo son la mejor opción a la hora de probar cualquier tecnología, ya que contás con todo lo necesario para comenzar.
La placa de evaluación RAK 811 LoRa® es una placa de desarrollo que viene en un factor de forma Arduino Uno. Tiene un MCU incorporado que te permite funcionar como una solución independiente o como un shield Arduino. Esta placa es muy adecuada para desarrollo y pruebas rápidas, con su factor de forma y fácil acceso a GPIO, además del puerto y conversión USB-UART integrados. | |
La placa RAK 5205 LoRa® Tracker posee conectividad LoRa® y GPS integrados. Proporciona varias interfaces para facilitar el desarrollo de aplicaciones. Este módulo es ideal para la creación rápida de prototipos para aplicaciones LoRaWAN ™. Es perfecto para casos de uso como el seguimiento de activos, gestión de vehículos inteligentes y los servicios basados en la ubicación. | |
The Things Node es el nodo LoRa perfecto para comenzar a crear prototipos sin tener que lidiar con placas de prueba, cables y sensores. Posee un sensor de temperatura, acelerómetro digital, sensor de luz, botón y LED RGB. Todo esto está empaquetado en una carcasa impermeable (IP54) con 3 baterías AAA para alimentarlo durante meses de uso. | |
Con LoRa, Wifi y BLE, LoPy es el único microcontrolador de triple portador habilitado para Micro Python en el mercado hoy en día. También puede funcionar como un gateway de un solo canal para fines de desarrollo. |
En este link, este link, este link y este link podés encontrar más información sobre módulos, chips y placas. |
Otro aspecto importante en el desarrollo de nodos es el stack de tecnología que soportan. En algunos casos podés implementar una opción baremetal y en otros un sistema operativo. En la opción baremetal debes gestionar todas las tareas de la aplicación mediante el lazo infinito y el manejo de interrupciones. Optar por un sistema operativo te brinda un marco sobre el que trabajar y una manera concreta de realizar las tareas. Si bien tenés menos flexibilidad que en baremetal, podés aprovechar una solución previamente probada y acortar los tiempos de implementación. Veamos algunas opciones.
The Things Network Library permite a las placas basadas en Arduino comunicarse a través de la plataforma The Things Network. Tanto The Things Uno como The Things Node son placas Arduino que incluyen un módulo LoRaWAN. | |
Contiki-NG es un sistema operativo multiplataforma de código abierto para dispositivos IoT. Utiliza protocolos estándar y de comunicación de bajo consumo seguros y fiables. Tiene una extensa documentación, tutoriales, una hoja de ruta, un ciclo de lanzamiento y un flujo de desarrollo bien definido para una integración fluida de las contribuciones de la comunidad. | |
ARMbed OS es un sistema operativo de código abierto para plataformas que utilizan microcontroladores ARM para conectar dispositivos de baja potencia a internet. Proporciona una capa de abstracción que permite que las aplicaciones de Mbed OS se pueden reutilizar en cualquier plataforma compatible con Mbed. |
Otro aspecto muy importante cuando lleves a cabo un desarrollo es la actualización de firmware remoto, conocida como FUOTA. Más allá del firmware que elijas es muy importante que determines cómo implementar esta funcionalidad. |
Los gateways forman el puente entre los nodos finales y el network server. Los dispositivos se conectan al gateway mediante LoRa y el gateway se comunica al network server por WiFi, Ethernet o conectividad celular mediante una comunicación TCP/IP.
Todos los gateways en el radio de alcance de un nodo recibirán los mensajes y los reenviarán al network server como vemos en la imagen siguiente. El network server elimina los mensajes duplicados y selecciona el mejor gateway para reenviar los mensajes hacia los dispositivos agregandolos en la cola de enlace descendente, pudiendo abastecer a miles de nodos por gateway.
Los gateways están equipados con un concentrador LoRa que les permite recibir las tramas y actuar en consecuencia. Podemos encontrar algunos de bajo costo que se ejecutan con un firmware mínimo de reenvió de paquetes y otros más completos que ejecutan un sistema operativo donde corren los distintos servicios de una aplicación.
The Things Indoor Gateway (TTIG) está diseñado para ser un gateway LoRaWAN de ultra bajo costo y totalmente compatible, con WiFi como backhaul. Se puede alimentar a través de USB-C y es adecuado para aplicaciones que requieren una cobertura dinámica. Este gateway tiene como funcionalidad el reenvío de paquetes solamente. | |
El MultiConnect Conduit es un gateway de comunicaciones celulares escalable y configurable para aplicaciones industriales de IoT. Permite a los usuarios conectar placas accesorias que admiten interfaces cableadas o inalámbricas. En este gateway, además de la funcionalidad de reenvío de paquetes, también se puede correr el network server, instalar una aplicación de usuario y configurar distintos parámetros de comunicación. | |
Things Gateway permite que dispositivos como sensores se conecten a Internet. La configuración para montar una red local se realiza en solo minutos. Con la capacidad de servir a miles de nodos, funciona en las bandas de 868 y 915 Mhz. Con un alcance de hasta 10 km y conectividad WiFi & Ethernet, es una buena solución basada en tecnologías opensource. | |
El RAK2245 Raspberry Pi Hat es un gateway LoRa que se puede conectar fácilmente sobre una Raspberry Pi. Admite ocho canales y está disponible para todas las bandas de frecuencia globales de LoRaWAN. Posee un chip de banda base Semtech y puede proporcionar enlaces de radio LoRa a grandes distancias. |
Además de que puedas usar gateways propios para crear una solución, existen redes públicas de LoRaWAN. En estos casos los proveedores se encargan de desplegar gateways en distintos puntos (generalmente en ciudades grandes) y es posible que te conectes para desplegar tu solución.
Cuando usas esta forma de conectividad se suele pagar un fee que depende de la cantidad de información que transmiten los nodos y también la cantidad de nodos que despliegues. El concepto es el mismo que pagar un abono por conectividad celular en un smartphone.
Si bien tener costos fijos por cada dispositivo puede impactar negativamente sobre la rentabilidad de un proyecto, es una solución ideal para reducir los costos iniciales - siempre y cuando estés en el área de cobertura de una red pública -, y sólo deberías encargarte de los nodos finales.
Utilizar redes públicas permite generar pruebas de concepto en un tiempo reducido y sin contar con grandes inversiones. Si el proyecto es viable, luego podés continuar mejorando la infraestructura y reduciendo los costos generales. Esta estrategia se usa bastante en países de Europa y Asia, y en países de América hay una adopción cada vez mayor de estas redes. Para que tengas una mejor idea veamos en esta figura el mapa mundial de cobertura ofrecido por la LoRa Alliance.
Los proveedores de redes públicas además ofrecen acceso al network server para que puedas administrar tus dispositivos, y en algunos casos brindan servidores de aplicaciones listos para utilizar.
Si te encontrás en Argentina, el proveedor YEAP! tiene una red pública disponible en varias ciudades y zonas estratégicas del país. |
Las plataformas se encargan de comunicar los nodos con las distintas partes de un sistema a través de internet, como vemos en esta imagen.
El network server es el centro de una solución LoRaWAN, donde podés realizar la configuración de la red, la administración de los dispositivos, las velocidades de transmisión, la duplicación de mensajes, y en algunos casos hasta actualizar el firmware de los dispositivos.
Algunas plataformas, además del network server ofrecen funcionalidad para administrar la seguridad de los datos (keys, encriptación) y también servidores de aplicaciones para conectarlos con la aplicación de usuario, como podemos ver en esta imagen.
Miremos ahora algunos proveedores para que tengas una idea de qué te podés encontrar en el mercado.
The Things Network es una plataforma que ofrece un conjunto de herramientas y una red pública a nivel mundial para crear aplicaciones de bajo costo, seguras y escalables. La idea detrás de TTN es crear una red global donde se pueda ofrecer a la comunidad la capacidad ociosa de los gateways desplegados para distintas soluciones. Es decir, si una persona o empresa despliega una solución LoRaWAN y sus gateways tienen capacidad sobrante para atender a más nodos de los que tiene la aplicación, pueden ofrecer esta conectividad de sobra para que otras personas desplieguen sus aplicaciones.
La visión de TTN es realizar las funciones de conectividad de manera descentralizada y distribuida donde cualquier parte interesada puede configurar su propia red y su propia parte del backend, permitiendo participar de varias maneras de la comunidad global. La red se extiende por más de 150 países, tiene más de 20.000 gateways conectados que pueden abastecer a millones de dispositivos y cuenta con aproximadamente 150.000 miembros. En esta imagen podemos ver el mapa de cobertura.
Los nodos transmiten mensajes a través del protocolo de radio LoRa. Estos mensajes son recibidos por varios gateways que reenvían las transmisiones al backend. Cada gateway está conectado a un router, que es responsable de administrar el estado del gateway y de programar las transmisiones. Cada router está conectado a uno o más brokers.
Los brokers son la parte central de TTN. Su responsabilidad es asignar un dispositivo a una aplicación, reenviar mensajes de enlace ascendente a la aplicación correcta y reenviar mensajes de enlace descendente al router correcto (que los reenvía a un gateway). El servidor de red es responsable de la funcionalidad específica de LoRaWAN y los handlers manejan los datos de las aplicaciones, los dispositivos y el cifrado.
Veamos la arquitectura del sistema TTN para tener un mejor entendimiento de cómo funcionan e interactúan las partes.
Si tu idea es desplegar una solución implementando un gateway propio, sería muy bueno que destines parte de tu conectividad a colaborar en este gran proyecto de escala global. En este link tenés una guía para que puedas conectar un gateway a la plataforma. |
En las secciones anteriores vimos cómo desplegar una solución utilizando componentes de hardware - como nodos finales y gateways - y algunas plataformas para conectarlos a internet.
En esta sección vamos a ver algunas posibilidades para realizar simulaciones, que son una opción muy útil para explorar distintos aspectos sin necesidad de contar con el hardware ni preocuparte por el despliegue físico de los dispositivos. Con un simulador podés probar esquemas de red, el funcionamiento de los nodos y servicios y más. Incluso es una opción conveniente cuando contás con el hardware, ya que podés desplegar pruebas mucho más rápido y opcionalmente de manera remota.
ARMbed Simulator es una iniciativa de los desarrolladores del sistema operativo ARM Mbed OS que vimos en la sección de nodos y puede funcionar online desde un navegador y offline instalando la suite a una estación de desarrollo. La opción online no necesita instalación ni registro y con sólo acceder a la web ya podés comenzar a realizar pruebas.
Dentro del simulador podés agregar componentes físicos como sensores, actuadores, LEDs, pulsadores, y displays que reflejan el comportamiento a través de componentes visuales. En esta imagen podemos ver cómo se ve un programa corriendo en el simulador.
La herramienta trae varios códigos listos para usar, y entre ellos un firmware que simula un nodo final y un gateway. De esta forma, configurando un network server podés comenzar a enviar y recibir datos a una plataforma en la nube.
En este video (minuto 45) hay una demostración de funcionamiento del creador del simulador haciendo una prueba de conexión a un network server de The Things Network y transmitir datos entre el simulador y la plataforma. En este link hay un complemento a la simulación realizada en el video. |
Simple IoT Simulator permite crear entornos de prueba compuestos por miles de sensores y gateways en una sola computadora. Ofrece a los proveedores de dispositivos, gateways y plataformas una herramienta para mejorar la calidad de sus productos y acortar significativamente los tiempos de comercialización y gastos de infraestructura de prueba.
La plataforma puede simular distintos dispositivos para varios protocolos IoT y tiene una API que le permite integrarse a distintas plataformas cloud como Azure, AWS e IBM, y podés programar secuencias de comandos de manera externa.
En la imágen siguiente vemos el esquema de una simulación LoRaWAN que se compone de la siguiente manera:
En este link y en este link podés encontrar notas de aplicación para simular dispositivos y gateways. |
Hasta ahora vimos distintas posibilidades del ecosistema LoRaWAN y qué hay para cada uno de los componentes de una solución. A partir de lo que vimos te presentamos algunas posibilidades para desplegar una aplicación y bajar los contenidos a tierra.
Este es el caso más económico de implementar ya que no necesitas ningún hardware para probar la solución. El camino propuesto es usar ARMbed Simulator junto con un network server de The Things Network. Desde la plataforma podés configurar y controlar los mensajes que pasan por el network server. Así mismo, podés conectar una aplicación con la plataforma TTN para tener el control y la monitorización de un sistema desde este lugar.
En esta imagen tenemos el diagrama arquitectura de la solución propuesta, donde ARMmbed Simulator simula un nodo y un gateway que se comunica con un network de TTN.
En este caso la propuesta es usar un nodo LoRaWAN - por ejemplo una de las placas de desarrollo que vimos en la sección de nodos - y conectarlo a un Gateway Conduit. El gateway se encarga de los paquetes LoRa y tiene un sistema operativo donde se puede correr el network server y una aplicación de usuario, de manera que con dos dispositivos podrías montar una aplicación completa donde controlar y monitorizar nodos.
En esta imagen tenemos el diagrama arquitectura de la solución propuesta, donde vemos que los nodos se conectan al gateway, y dentro de este tenemos configurado el network server y una aplicación de usuario.
Este es el caso de implementación real donde necesitamos tener los nodos conectados a un gateway. El gateway debe actuar como packet forwarder para enviar los datos a un network server dentro de una plataforma. Desde la plataforma tendríamos configurado el reenvío de paquetes hacia una aplicación de usuario donde visualizar y controlar los dispositivos.
En esta imagen tenemos el diagrama arquitectura de la solución propuesta, aunque debes considerar que en este caso la elección de los componentes corre por tu cuenta y los componentes de la imagen tienen únicamente fines ilustrativos.
El mundo de LoRa y LoRaWAN es muy grande, y aprender sobre cada aspecto te va a llevar su debido tiempo, pero más allá de eso podés quedarte con las ideas que vimos en este artículo para entender cómo encarar un proyecto con estas tecnologías. Para hacer una recapitulación, vimos los siguientes temas.
Este material es distribuido bajo licencia Creative Commons BY-SA 4.0. Podés encontrar detalles sobre el uso del material en este link.