Logotipo de Zephyrnet

Gestión de dispositivos IoT mediante LwM2M

Fecha:

Gestión de dispositivos IoT mediante LwM2M
Ilustración: © IoT para todos

En el mercado actual, Dispositivos de IoT vienen en diferentes formas y formas. Cada dispositivo tiene una pila de comunicación única que viene con una estructura de paquetes de datos particular y una capa de administración de dispositivos cuidadosamente diseñada. Ahora imagine las dificultades de un distribuidor de energía que implementó varias marcas de medidores inteligentes a lo largo de los años para medir el uso de electricidad en miles de edificios. Cada medidor viene con una estructura de datos diferente que debe formatearse. Deben implementarse procesos específicos para administrar de forma remota los diferentes dispositivos, y deben implementarse mecanismos particulares para actualizar el firmware de los dispositivos.

Cuando los dispositivos usan el estándar LwM2M, los integradores de IoT pueden estar seguros de que cada dispositivo informa sus datos de manera similar. Las configuraciones y el firmware se pueden actualizar mediante comandos de servidor similares, independientemente del hardware, la versión de firmware o los sensores utilizados. Exploremos los tres componentes fundamentales de LwM2M que garantizan la interoperabilidad: el formato de datos estandarizado, la arquitectura LwM2M y las operaciones LwM2M.

“Cuando los dispositivos usan el estándar LwM2M, los integradores de IoT pueden estar seguros de que cada dispositivo informa sus datos de manera similar”.

-Sistema AV

Formato de datos LwM2M

LwM2M es un protocolo de comunicación de capa de aplicación desarrollado por SpecWorks de OMA para simplificar la gestión de mensajes y dispositivos de dispositivos IoT. El protocolo define la semántica de comunicación, los mecanismos de administración de dispositivos, las actualizaciones inalámbricas (FOTA) y la recopilación de datos de telemetría, y es adecuado para dispositivos con recursos limitados. El estándar LwM2M utiliza los llamados objetos inteligentes de IPSO para representar configuraciones, funcionalidades y sensores para lograr la interoperabilidad de los datos. Al estructurar IPSO Smart Objects de una manera específica, se crea un lenguaje que tanto el Cliente LwM2M como el Servidor LwM2M pueden comprender. Este lenguaje contiene objetos, instancias de objetos y recursos.

#1: Objetos

Los objetos representan un componente físico (un sensor, LED o actuador) o una entidad lógica (como la tecnología de radio preferida, la configuración de actualización de firmware o la implementación de seguridad). Todos los objetos están definidos por un ID de objeto. El estándar LwM2M define tres objetos obligatorios que se consideran esenciales para que el dispositivo se conecte y se comunique con un servidor LwM2M. Los objetos obligatorios son:

  1. Id. de objeto 0: seguridad LwM2M: Contiene información confidencial sobre las conexiones a los Servidores LwM2M configurados en el Cliente.
  2. Id. de objeto 1: servidor LwM2M: Contiene información no confidencial sobre las conexiones a los Servidores LwM2M configurados en el Cliente.
  3. Id. de objeto 3: dispositivo: contiene información básica sobre el dispositivo, como, por ejemplo, el número de serie y la versión del firmware.

Junto a los objetos obligatorios, se pueden implementar objetos adicionales. Ejemplos de objetos no obligatorios son:

  • Id. de objeto 4: Supervisión de conectividad: proporciona información sobre el estado de conectividad del dispositivo, como la intensidad de la señal y el tipo de red.
  • ID de objeto 5: actualización de firmware: permite realizar actualizaciones remotas de firmware.
  • Id. de objeto 6: ubicación: proporciona información sobre la ubicación geográfica del dispositivo, como su latitud y longitud.
  • Id. de objeto 11: perfil de conexión APN LwM2M: permite que un dispositivo se conecte a un APN.
  • Id. de objeto 3303: temperatura: informa las mediciones de temperatura.
  • ID de objeto 3313: Acelerómetro: Representa un acelerómetro de 1-3 ejes.

#2: Instancias de objetos

Algunos objetos pueden tener varias instancias de objetos. Los ejemplos de tales objetos incluyen el objeto que administra las conexiones a los servidores LwM2M, ya que se pueden configurar múltiples servidores LwM2M o dispositivos que contienen múltiples SIM con diferentes perfiles APN. Cuando los dispositivos contienen varios sensores idénticos, se utilizan instancias de objetos para distinguir los diferentes sensores.

#3: Recursos

Los recursos representan propiedades específicas de un objeto que se pueden leer, escribir o ejecutar. Cada recurso se identifica mediante un ID de recurso único. Por ejemplo, un objeto de temperatura tiene la temperatura actual del recurso, una unidad de medida y una marca de tiempo. De manera similar, el objeto del dispositivo tiene recursos como el nombre del fabricante, el número de serie y la versión del firmware. El objeto de ubicación tiene la latitud, la longitud y la altitud del recurso. Todos los detalles de los objetos y recursos se definen en el Registro OMA. También existe la posibilidad de definir su objeto personalizado si una característica o sensor específico no figura en el Registro OMA.

Cada recurso contiene un identificador, un tipo (flotante, cadena, entero, opaco) y operaciones de servidor permitidas (como LEER, ESCRIBIR o EJECUTAR). Echemos un vistazo a algunos ejemplos.

Ejemplos

El objeto dispositivo se representa con el identificador 3 y los recursos incluyen:

ID de recurso Nombre del recurso Operación del servidor Tipo de Propiedad
0 Fabricante Leer Cordón
1 Nº modelo Leer Cordón
3 Versión de firmware Leer Cordón
4 reiniciar Ejecutable
13 Tiempo actual Escribible Horario
Objeto de dispositivo

El objeto temperatura se representa con el identificador 3303, y los recursos incluyen:

ID de recurso Nombre del recurso Operación del servidor Tipo de Propiedad
5700 Valor del sensor Leer Flotador
5701 Unidades Sensoras Leer Cordón
5518 Timestamp Leer Horario
Objeto de temperatura

Al enviar datos, cada mensaje se formatea como: / / =

Para enviar los últimos datos de temperatura, podría ser algo como: 3303/0/5700 = 23.5

Para optimizar el ancho de banda, los datos generalmente se codifican en una carga útil binaria eficiente en el espacio. Aunque los datos se pueden enviar con JSON simple, lo más común es usar CBOR o SenML para reducir el tamaño de la carga útil.

Envío de latitud y longitud utilizando el formato de datos LwM2M

Instancias de recursos

En algunos casos, los recursos tienen varias instancias de recursos. Por ejemplo, el objeto Dispositivo 3 incluye el recurso 6: Fuentes de energía disponibles. Las diferentes instancias describen las diferentes fuentes de energía:

0: alimentación de CC
1: batería interna
2: batería externa
3: Celda de combustible
4: Alimentación a través de Ethernet
5: usb
6: alimentación de CA (red eléctrica)
7: solares

Para describir la disponibilidad de energía solar, el formato del mensaje se convierte en: 3/0/6/7.

Arquitectura LwM2M: Cliente y Servidor

La arquitectura LwM2M comprende el Cliente LwM2M y el Servidor LwM2M. La comunicación funciona independientemente de la tecnología (inalámbrica) utilizada y puede ejecutarse sobre redes IP y no IP. Las tecnologías IP populares incluyen WiFi y celular. No IP incluye Bluetooth, LoRaWAN o Wirepas. Las redes que no son IP se pueden abordar mediante redes IEEE 802.15.4 (6LoWPAN). Por ejemplo, ejecutando un hilo a través de Bluetooth. 

El estándar LwM2M usa el protocolo CoAP para permitir que los dispositivos se comuniquen fácilmente con la nube. Piense en CoAP como el protocolo HTTP, pero diseñado para dispositivos con recursos limitados. CoAP a menudo se compara con MQTT, ya que ambos protocolos se usan comúnmente en aplicaciones de IoT. Una diferencia clave es que CoAP usa UDP de forma predeterminada, mientras que MQTT se basa en TCP. La pequeña sobrecarga de UDP a menudo se considera una ventaja en comparación con TCP. Aunque CoAP se puede usar con TCP, UDP suele ser la opción preferida cuando el uso eficiente de los recursos de la red es una prioridad.

Los clientes populares de LwM2M incluyen Anjay (mantenido por AVSystem) y Zephyr LwM2M Client (mantenido por Zephyr Project). El servidor LwM2M proporcionado por AVSystem se llama Coiote y se puede utilizar para procesar datos, configuraciones y actualizaciones de firmware del dispositivo.

El cliente LwM2M se ejecuta en el dispositivo final y se comunica con el servidor LwM2M mediante una conexión segura. El cliente informa al servidor sobre los objetos y recursos admitidos durante su primera conexión, así como durante las actualizaciones de estado periódicas. A lo largo de la vida útil del dispositivo, el cliente envía una notificación al servidor con datos de telemetría formateados según lo definido por el estándar LwM2M. El servidor LwM2M captura y almacena todos los datos, donde se pueden procesar o reenviar a bases de datos específicas de plataformas como Azure IoT Hub o AWS IoT Core.

Operaciones LwM2M

La tercera característica central del protocolo LwM2M son las operaciones que se pueden iniciar tanto desde el cliente como desde el servidor. Las operaciones del cliente se utilizan para informar al servidor sobre los datos de telemetría o el estado de los dispositivos. Las operaciones del servidor se utilizan para leer o escribir datos, o para actualizar de forma remota las configuraciones o el firmware del dispositivo a lo largo del tiempo. Se pueden distinguir dos interfaces: la interfaz de informes de información y la interfaz de gestión de dispositivos.

#1: Interfaz de informes de información

El Cliente LwM2M puede informar al servidor sobre datos de telemetría o cambios de estado en tiempo real, iniciados por el Cliente. El Servidor también puede definir el comportamiento del dispositivo solicitándole que envíe datos a intervalos periódicos, o cuando los valores superan un determinado umbral (por ejemplo, cuando la temperatura sube por encima de los 30 grados). Esto se puede lograr usando las operaciones: OBSERVAR, ENVIAR y NOTIFICAR.

  • OBSERVAR: Cuando se invoca la operación Observar, el Cliente comenzará a enviar mensajes de NOTIFICACIÓN al Servidor sobre sus datos o estado a intervalos configurables. La operación OBSERVE también se puede cancelar al enviar CANCELAR OBSERVAR.
  • ENVIAR: El cliente utiliza el mensaje SEND para enviar datos al servidor sin una solicitud explícita. Según el firmware de la aplicación, se puede usar para informar nuevas mediciones o informar al servidor sobre un cambio en los datos o el estado de la telemetría.
  • NOTIFICAR: En respuesta a la operación OBSERVE iniciada desde el servidor, el cliente envía operaciones NOTIFY con datos. Por lo general, el servidor proporciona un ancho de banda en el que el cliente necesita enviar sus datos. Por ejemplo, al menos cada 1 hora, pero no más de una vez cada 15 minutos.

#2: Interfaz de administración de dispositivos

La interfaz de administración de dispositivos permite que el servidor se conecte de forma remota con el cliente LwM2M y administre su configuración, software, seguridad, etc. La interfaz viene con un conjunto de operaciones estandarizadas, todas las cuales son iniciadas por el servidor.

  • VER PRODUCTOS: Recuperación de la lista de objetos y recursos admitidos por el Cliente.
  • LEER: Recuperar el valor actual de un recurso específico o un objeto como un todo.
  • ESCRIBIR: Modificar el valor de un recurso específico, o de un objeto en su conjunto.
  • EJECUTAR: Invocar una acción u operación en un recurso. Por ejemplo, indicar a un dispositivo que restablezca, reinicie o actualice su firmware.
  • CREAR: Creación de una nueva instancia de objeto.
  • BORRAR: Eliminación de una instancia de objeto.

Simplificar con LwM2M

El panorama de IoT está fragmentado y es fácil perderse al explorar tecnologías inalámbricas, protocolos de mensajería y formatos de datos. LwM2M promete simplificar el mundo conectado a través de la estandarización y la interoperabilidad. Esto se logra como resultado de IPSO Smart Objects con identificadores predefinidos, lo que permite la creación de una representación digital del dispositivo. El formato de datos estandarizado permite que cualquier servidor LwM2M interprete fácilmente los datos. La arquitectura cliente-servidor especifica cómo fluyen los datos entre los dispositivos finales y la web. Por último, las operaciones predefinidas permiten que los dispositivos envíen datos y se reconfiguren con el tiempo.

punto_img

Información más reciente

punto_img