¿Cómo gestionar dispositivos en IoT?

Si te digo que IoT está experimentando un gran auge y que lo seguirá haciendo durante los próximos años, me dirás que no te estoy contando nada nuevo. De hecho, tienes razón, incluso en este blog ya hablamos de ello.

Por eso, para ir un paso más allá, en este post ponemos el foco en uno de los principales motivos por el que el crecimiento del Internet of Things es imparable: la importancia de los dispositivos conectados, que están continuamente recolectando y transmitiendo datos sin descanso y se han convertido en impulsores natos del IoT.

Para meternos mejor en la piel de lo que te quiero contar, imagínate que eres el alcalde de una localidad, si me permites la licencia, llamada Paradigma de Arriba. Quieres ofrecer un servicio para que los ciudadanos de tu localidad sepan qué plazas de aparcamiento están disponibles para aparcar en toda la ciudad. Inicialmente, el objetivo sería ofrecer lo siguiente:

  • Mapa de la ciudad organizado por barrios con los huecos libres para aparcar.
  • Restricciones de aparcamiento, como zonas de carga y descarga.
  • Tarifas (si las hubiera).

Además, gracias al buen índice de natalidad y al gran tejido productivo que se está desarrollando, queremos tener la capacidad de ampliar el servicio conforme nuestra localidad crezca y se construyan más calles.

Para construir esta solución vamos a hacer uso de unos sensores que son capaces de detectar si sobre ellos se encuentra un vehículo y comunicarlo a nuestra plataforma en Cloud.

En este escenario, y centrándonos en los dispositivos, encontramos diversos retos:

Inventario de dispositivos

Como puedes imaginar es necesario tener inventariados los dispositivos por dominios: barrio, calle, tipo de estacionamiento, etc. De esta manera, seremos capaces de ejecutar acciones sobre los dispositivos de manera agrupada, pero también tener visibilidad sobre nuestra base instalada.

Lógicamente, tener un inventario dinámico y organizado es una labor importante dentro de nuestro proyecto.

Ampliar cobertura del servicio

Confiando en que nuestra localidad va a crecer, tenemos que proveernos ciertos mecanismos para incluir dispositivos en nuestra plataforma IoT de manera transparente y económica.

En este sentido, el escenario ideal debería consistir en que el propio dispositivo, una vez instalado físicamente en la calle, fuera capaz de registrarse en la plataforma y comenzara a enviar datos desde el minuto 0.

Mejorar nuestro servicio con actualizaciones

Suponiendo que nuestra solución actual ha sido acogida por la ciudadanía con los brazos abiertos, queremos darles más características y, sobre todo, mantener los dispositivos con las últimas actualizaciones de seguridad y versiones de software.

Una vez más, tener miles de dispositivos desplegados por nuestra localidad transforma un problema relativamente sencillo, como es manipular físicamente un dispositivo y actualizarlo, en un verdadero quebradero de cabeza.

En el ámbito de IoT debemos contar con mecanismos para poder realizar todo tipo de actualizaciones de manera remota, desatendida y automática, reduciendo costes de operación del servicio.

Monitorización

Queremos ofrecer un servicio a la ciudadanía de calidad y, para ello, debemos ser conscientes de que todos los dispositivos funcionan correctamente y no se degradan con el paso del tiempo y, si lo hacen, poder tomar las acciones oportunas. Tener información en tiempo real de cada dispositivo es vital.

En este sentido, queremos ir un paso más allá de la monitorización pura y dura y establecer un sistema predictivo gracias a Machine Learning.

Gracias al histórico de datos, podemos entrenar un modelo y detectar patrones de comportamiento que nos ayuden a adelantarnos a posibles problemas, lo que redundaría en una mejor calidad del servicio.

Gestionar la configuración

La vida de un sensor es compleja y variable. Por seguir con nuestro ejemplo, las zonas de carga y descarga se otorgan y se retiran en función de la actividad comercial de la calle. Es posible, por tanto, que, en un determinado momento, un sensor ubicado en una plaza normal pase a estar en una zona de carga y descarga.

Una vez más debemos ser capaces de modificar la configuración de los sensores sin tener que desplazarnos físicamente hasta su ubicación y alterar el modo de funcionamiento del mismo.

Otro ejemplo, podría ser, si hemos detectado que realizamos un número de muestreos del sensor (para ver si hay un vehículo aparcado o no) elevado, 10, por segundo.

Tras un tiempo con el servicio en funcionamiento, vemos que podemos dar un servicio igualmente de calidad con un tiempo de muestreo superior, por ejemplo, cada minuto. Además, para ejecutar esta acción, podemos apoyarnos en nuestro inventario organizado.

Conectividad limitada

En el supuesto con el que estamos trabajando, miles de sensores desatendidos, es complicado garantizar la conectividad con nuestra plataforma de IoT. Debemos tener un sistema que garantice la entrega de las mediciones en cualquier circunstancia, aunque sea de manera diferida.

Así podremos disponer de todos los datos producidos durante el paso del tiempo y analizarlos para detectar patrones de uso de las plazas de aparcamiento.

Si podemos destacar algo del ecosistema de IoT es que, en los últimos meses, las principales cloud públicas se han hecho eco de estos retos y han creado diversos productos dentro de sus ya amplias soluciones. Veamos un par de ejemplos.

Amazon

Amazon lleva un tiempo invirtiendo en IoT y completando su catálogo de productos para dar cabida a las necesidades de esta tecnología y sus casos de uso. Hasta tal punto que han acogido el proyecto FreeRTOS, un sistema operativo para microcontroladores en tiempo real, para impulsarlo e incorporarlo como parte de su solución.

Nos proponen utilizar los siguientes servicios para cubrir las necesidades de los dispositivos:

  • AWS IoT Core: Se encarga de la transmisión de mensajes entre los dispositivos y la nube. Además ofrece filtrado de mensajes, seguridad, etc. Como ves, el nombre hace justicia, es la pieza principal.
  • AWS Greengrass: Tiene varias funciones muy interesantes:
    • Ofrece la capacidad de trabajar bajo situaciones de conexión intermitente. Lo hace encolando mensajes para realizar el envío cuando se disponga de conexión.
    • Gestiona la configuración de los dispositivos a través del shadowing. Así podemos ajustar el comportamiento de los dispositivos sin necesidad de acceder físicamente a él.
    • Monitorización: Ofrece conexión a AWS CloudWatch para concentrar los logs de nuestros dispositivos.
  • AWS IoT Device Management: Con esta pieza podremos crear grupos de dispositivos y crear conjuntos de atributos a asignar a los mismos, (por ejemplo ubicación, tipo de dispositivo etc) para poder gestionar adecuadamente el inventario. También nos va a permitir lanzar jobs para actualizar el dispositivo. Los jobs no son más que una serie de órdenes que debemos ser capaces de interpretar y ejecutar desde el propio dispositivo.

Es fácil incluir nuevos dispositivos, con autodescubrimiento de manera programática y segura, combinando los servicios mencionados anteriormente.

Google Cloud

En el caso de Google, centralizan las necesidades de los dispositivos en torno a Google IoT Core, pero hay algunas funcionalidades, como por ejemplo el servicio de aprovisionamiento, que sólo están disponibles en early access y para partners como nosotros.

Obviamente la solución técnica difiere a la de Amazon y proponen mecanismos diferentes, pero también permiten:

  • Manejar el inventario de dispositivos de manera sencilla con una consola de administración y utilidades de aprovisionamiento.
  • Mantener información del estado de cada dispositivo desplegado.
  • Ejecución de commands o acciones a realizar en el propio dispositivo.
  • Monitorización de los mismos a través de Stackdriver.

En el caso de Google, su solución en dispositivos está ligada a Android Things, una extensión de su plataforma Android enfocada a una gran variedad de dispositivos de consumo, retail e industrial.

Si estás familiarizado con Android, te será muy sencillo e intuitivo construir tu aplicación y manejar las herramientas que ofrecen para cubrir los retos que hemos comentado.

Conclusiones

Con este ejemplo de “Paradigma de Arriba” he querido ejemplificar las dificultades de integrar el mundo digital y analógico, que es precisamente el objetivo de IoT, en un caso de uso con unas necesidades concretas.

Al final, IoT y todo lo que ello conlleva, nos adentra en un tipo nuevo de retos a los que debemos enfrentarnos. En este caso he querido hacer mención a los dispositivos, pero podríamos hablar de la seguridad, del rendimiento o incluso de los propios casos de uso para los que esta tecnología es idónea.

Escribe un comentario