Introducción a IoT

Agustin Bassi

Abr 26, 2021 ‧ 35 min estimados ‧ #iot #intro #cloud #iot-things #networking

Contenido

Objetivos

Introducción al documento

Terminología

Las "cosas" del Internet

Aplicaciones baremetal

Aplicaciones sobre RTOS

Aplicaciones sobre SOs de propósito general

Otros tipos de aplicaciones

Tipos de procesamiento

On-Premise computing

Cloud computing

Edge computing

Servicios cloud

Tipos de servicios

Comparación de servicios cloud

Serverless

Topología de redes

Rango de redes

Casos de uso de IoT

Conclusiones

Bibliografía

Licencia

Objetivos

Lo que vas a ver en este documento son los siguientes temas:

Introducción al documento

En los últimos años, el Internet de las Cosas (IoT) se ha convertido en una de las tecnologías más relevantes. Los avances en las capacidades de cómputo y la accesibilidad a hardware hacen posible la comunicación fluida entre personas, procesos y dispositivos para todo tipo de aplicaciones e industrias.

Por medio de la electrónica de bajo costo, la nube, big data, analítica y tecnologías móviles, los objetos físicos pueden compartir y recopilar datos con una intervención humana mínima o nula en algunos casos.

¿De dónde sale el término IoT? El concepto fue propuesto en 1999 por Kevin Ashton en el Auto-ID Center del MIT,​ donde se realizaban investigaciones en el campo de la identificación por radiofrecuencia (RFID) para tecnologías de sensores.

Como definición general, podemos describir a IoT como la interconexión de objetos a través de una red, donde los dispositivos pueden comunicarse entre sí y también ser controlados por diversos agentes, ya sean otros sistemas o personas.

Los dispositivos que pueden interactuar varían desde sensores y dispositivos mecánicos; recursos empresariales como las etiquetas de envío; objetos cotidianos como una heladera o microondas; hasta ropa o calzado (conocidos como dispositivos wearables).

En las imágenes a continuación podés apreciar algunos de los objetos IoT que se pueden encontrar para diferentes casos de uso.

Dispositivos vestibles (wearables)

Dispositivos

para el hogar

Dispositivos industriales

Desde un punto de vista más específico,  IoT hace referencia a sistemas de dispositivos físicos que reciben y transfieren datos a través de redes (generalmente inalámbricas) sin la intervención humana.

También, el término IoT se usa como una denotación de conexión avanzada de dispositivos, sistemas y servicios que va más allá del tradicional M2M (máquina a máquina) y que abarca una amplia variedad de protocolos, dominios y aplicaciones.

Terminología

En esta sección podés ver algunos términos importantes relacionados con IoT.

Las "cosas" del Internet

Los dispositivos que se conectan a internet, son las "cosas" del IoT. Con el avance de las tecnologías, procesadores, y hardware, así como también con la reducción del costo de los dispositivos, es cada vez más accesible conectar dispositivos a internet para enviar y recibir información de sensores y controlar sus actuadores de manera remota.

Los dispositivos IoT están formado por distintos bloques que en general se pueden clasificar de esta manera:

Veamos qué tipo de aplicaciones pueden correr en los dispositivos, analizando de manera general las características de cada una.

Aplicaciones baremetal

Es el tipo de aplicaciones más primitivo dentro de sistemas embebidos y dispositivos electrónicos, donde no existe un sistema operativo. El programa se ejecuta desde que el dispositivo inicia o energiza hasta que se detiene, dentro del famoso "lazo infinito".

Este tipo de aplicaciones suelen ejecutarse sobre hardware con capacidades limitadas en múltiples aspectos, ya sea memoria, puertos de entrada y salida, flash, entre otros. Podés ver en la siguiente imagen algunos dispositivos donde se ejecutan aplicaciones baremetal.

Aplicaciones sobre RTOS

Son las aplicaciones que corren sobre un sistema operativo de tiempo real. Algunos de los RTOS son deterministas - es decir que garantizan que una tarea se ejecute dentro de un rango específico de tiempo - y otros tratan de hacer el mejor esfuerzo en ejecutar una tarea a tiempo aunque no lo pueden asgurar.

En estos casos, la aplicación es dividida en tareas más pequeñas que se ejecutan bajo distintas condiciones. Estas condiciones pueden ser por ejemplo el paso del tiempo o un evento en particular, entre otros. Los sistemas operativos de tiempo real se pueden clasificar en dos grandes grupos:

Hay muchas implementaciones de RTOS e incluso es posible crear un sistema operativo propio. En la imagen siguiente podés ver algunos de los más utilizados.

Aplicaciones sobre SOs de propósito general

En este tipo de aplicaciones el sistema operativo donde se ejecuta la aplicación es un sistema bastante más potente que un RTOS. Además de ejecutarse la aplicación en particular corren otro tipo de servicios en el sistema.

Este tipo de aplicaciones suelen ejecutarse sobre lo que se conoce como SBCs (Single Board Computer), es decir una placa electrónica única que tiene todo el hardware integrado, tales como el procesador, puertos de entrada y salida, memoria RAM, memoria flash, entre otros. Acá podés ver algunas SBCs (una de las más conocidas es Raspberry Pi).

Otros tipos de aplicaciones

Además de las aplicaciones que vimos hasta ahora, dentro de los dispositivos que se pueden conectar a internet están también los controladores programables industriales (PLCs), que son el estándar de facto para realizar el control de máquinas y procesos dentro de todo tipo de industria.

Otro tipo de hardware IoT son los Gateways, que son dispositivos o programas dedicados que sirven como punto de conexión entre la nube o servidores y los controladores, sensores y dispositivos inteligentes. Todos los datos que se transfieren entre los dispositivos y servicios pasan a través del gateway.

Para que tengas una idea más clara, en el siguiente diagrama podés ver un diagrama del rol que cumple un gateway para comunicar dispositivos dentro de una aplicación y enviar los datos a centros de cómputo remotos.

Tipos de procesamiento

En esta sección vas a ver los diferentes tipos de procesamiento existentes.

On-Premise computing

El término on-premise (local) se refiere al tipo de instalación de una solución de software. Esta instalación se lleva a cabo dentro de servidores e infraestructura de una empresa. Es el modelo tradicional de aplicaciones empresariales.

Con el modelo on-premise, la empresa es responsable de la seguridad, disponibilidad y gestión del software. Las soluciones de este tipo son aquellas que llevan unos años en el mercado como gestión documental, sistemas ERP o CRMs.

La instalación on-premise tiene como ventaja un control total sobre la infraestructura desplegada, pero la inversión inicial y el mantenimiento de la misma suele ser muy elevada respecto a otras soluciones. En la imagen siguiente podés ver un diagrama de una infraestructura on-premise.

Cloud computing

La computación en la nube (cloud computing),​ conocida simplemente como la nube, es un paradigma que ofrece servicios de computación a través de internet. Permite la posibilidad de acceder a recursos dinámicos, especialmente almacenamiento de datos y la capacidad de cómputo, sin una gestión directa por parte del usuario. En esta figura podés ver un esquema de computación en la nube.

El término se usa generalmente para describir los servicios y centros de datos disponibles desde cualquier lugar del mundo a través de Internet.

El uso de cloud computing tiene como ventajas la reducción de costos iniciales, disminución de vulnerabilidades y garantía de disponibilidad. Asimismo, es importante que sepas que en cloud computing generalmente se paga por el uso de los recursos que utilizas.

La nube es un nuevo modelo de prestación de servicios tecnológicos que impacta en diversos negocios e industrias. Se apoya en infraestructuras dinámicas, caracterizadas por la virtualización de recursos, un alto grado de automatización y capacidad de adaptación para atender demandas variables.

Edge computing

En un modelo de cloud computing, los servicios y recursos suelen estar agrupados en grandes centros de datos, donde los usuarios finales acceden al "extremo" de una red. Este modelo genera beneficios económicos y capacidad de intercambio de recursos eficiente.

Sin embargo, en algunas aplicaciones IoT, se necesita capacidad de cómputo más cerca de donde está el dispositivo físico o la fuente de datos, es decir, en el extremo de la red. En este punto es donde el edge computing juega un papel relevante.

Este modelo distribuye los recursos informáticos al borde (edge) de una red cuando es necesario, y cuando no, los centraliza en un modelo de nube. Es una solución al problema de tener que brindar información en poco tiempo con datos que requieren acción inmediata. En la siguiente figura podés ver un diagrama de solución desplegada con edge computing.

Ningún proveedor suele ofrecer una solución completa de edge computing, por lo que es necesario que ensambles distintos elementos para implementar una aplicación de este tipo.

Servicios cloud

Dentro de las tecnologías cloud hay diversos actores, servicios y soluciones que se suelen ofrecer dependiendo del proveedor. En esta sección podés ver algunas de las posibilidades disponibles.

Tipos de servicios

El concepto de la nube es muy amplio y abarca distintas posibilidades de servicios, aunque por lo general los servicios ofrecidos encajan dentro de estas tres modalidades: software como servicio (SaaS), plataforma como servicio (PaaS) e infraestructura como servicio (IaaS).

IaaS

IaaS significa infraestructura como servicio. En este tipo de modalidad se contrata la infraestructura de hardware a un tercero a cambio de una cuota o alquiler. La contratación de este hardware permite elegir la capacidad de procesamiento (procesadores), la memoria (RAM) y el espacio de almacenamiento (disco).

IaaS ofrece también servicios de virtualización como máquinas virtuales, firewalls, sistemas de backups o balanceadores de carga. Es la base de los servicios cloud y contiene los bloques fundamentales para las aplicaciones en la nube, ya que proporciona la base sobre la que se construyen otros servicios.

PaaS

En estos casos, se ofrecen plataformas como servicios. En estas soluciones se pueden desplegar aplicaciones como bases de datos, herramientas de desarrollo, servicios de inteligencia empresarial, etc.

Este tipo de servicios es el ideal para los desarrolladores que sólo quieran centrarse en la implementación y administración de sus aplicaciones y no preocuparse por los recursos de hardware y software base. Al traspasar esa responsabilidad al proveedor de la plataforma, los desarrolladores pueden mejorar su eficacia, centrándose sólo en la aplicación.

SaaS

En los casos de software como servicio, el proveedor del servicio aloja el software de la empresa junto con los datos dentro de su infraestructura, y la empresa o cliente paga un fee por su utilización.

Con un modelo SaaS, el cliente sólo debe utilizar el software sin tener que preocuparse por el resto de los recursos. El hardware requerido, sistemas operativos y aplicaciones son administrados por el proveedor, que además, se encarga de mantenerlas funcionando correctamente y actualizadas.

Los usuarios en estos casos no tienen la necesidad de instalar las aplicaciones en sus equipos locales, y por lo general suelen ejecutarse en un navegador web, como varias de las herramientas existentes de organización de proyectos, mail, manejo de archivos, entre otros.

Comparación de servicios cloud

Para que entiendas el concepto de los distintos servicios ofrecidos en la nube, en la siguiente figura podés ver las tareas que debe hacer el creador de una solución así como también el proveedor en los distintos casos.

Tal como podrás apreciar, a mayor grado de contratación de servicios, más abstracción. Cada tipo de aplicación necesitará distintos servicios, por lo cual es necesario que realices una evaluación previo al desarrollo de una solución.

Serverless

En las aplicaciones web desplegadas en la nube, los desarrolladores son responsables de administrar la aplicación así como también mantener y configurar adecuadamente el servidor donde se ejecutan. Este modelo de aplicaciones presenta algunos inconvenientes que podés ver a continuación:

La computación serverless (sin servidor) es un modelo donde el proveedor cloud es responsable de ejecutar un fragmento de código mediante la asignación dinámica de los recursos.

El código, generalmente se ejecuta dentro de contenedores sin estado que pueden ser activados por distintos eventos que incluyen solicitudes HTTP, eventos de base de datos, servicios de colas, carga de archivos, eventos programados, entre otros.

El código que se despliega para este tipo de ejecución es generalmente una función. Por eso podés llegar a encontrar el término serverless como “Funciones como servicio” (FaaS).

Este tipo de servicios se suele encontrar bajo diferentes nombres dependiendo el tipo de proveedor, por ejemplo AWS Lambda para AWS, Azure Functions para Microsoft Azure y como Cloud Function para Google Cloud.

En serverless los servidores siguen existiendo, sólo que es el proveedor quien se encarga de mantenerlos y conectar detrás de escena los eventos con las funciones.

Topología de redes

El concepto de red puede definirse como "conjunto de nodos interconectados". La topología de red se define como el mapa físico o lógico de una red para intercambiar datos, es decir, cómo está diseñada.

Los componentes fundamentales de una red son el servidor, los dispositivos de red y el medio de comunicación.

La topología determina únicamente la configuración de las conexiones entre los nodos. La distancia entre ellos, las interconexiones físicas, las tasas de transmisión y los tipos de señales no pertenecen a la topología de la red, aunque pueden verse afectados por la misma. En la figura siguiente podés ver distintos diagramas de topologías de red.

Para que tengas una idea más clara de cómo funciona cada topología, a continuación podés ver una breve descripción de cada una.

Topología de Anillo

Esta topología de red es simple, donde los nodos se encuentran conectados entre sí en forma de un anillo. La información viaja en un solo sentido. Si un nodo deja de funcionar se cae la red, por lo que se la considera poco eficaz.

Topología de Árbol

Esta topología es una de las más sencillas. Las conexiones entre los nodos están dispuestas en forma de árbol, con una punta y una base. Si un nodo falla, las comunicaciones pueden continuar. Cuenta con un canal principal que lleva la comunicación a los demás nodos.

Topología de Bus

En esta topología existe un canal central que lleva la información a todos los nodos de la red. La información viaja de manera secuencial hacia los nodos de la red. Su desventaja se basa en su distribución secuencial de datos, y si se interrumpe el canal central la red queda inutilizada.

Topología de Estrella

En esta topología la distribución de la información va desde un punto central hacia todos los nodos de la red. Es muy utilizada por su eficiencia y simpleza. El host central realiza todo el manejo y administración de nodos dentro de la red. Tiene la ventaja que si un nodo falla, la red continúa funcionando, aunque se depende fuertemente del host central.

Topología de Malla

La topología malla (más conocida como Mesh) se trata de un arreglo de interconexión de nodos entre sí, realizando una malla o trama. Su importancia radica en que la información puede viajar por diferentes caminos, de manera que si un nodo falla, se puede seguir intercambiando información sin problemas.

Topología Híbrida

En este caso se presenta una combinación de dos o más topologías de red diferentes, para adaptar la red a las necesidades de una solución. Se pueden combinar cualquier tipo de topologías obteniendo infinitas variedades que deben ajustarse a la estructura física del lugar en donde está la red y los equipos que están conectados.

Rango de redes

Además de la topología, dentro de IoT, las redes se pueden clasificar como redes de área personal (PAN), redes de área local (LAN), redes de área extendida (WAN) y redes de bajo consumo y área extendida (LPWAN).

Cada una de las redes tienen sus particularidades, y por lo general se las puede diferenciar por alcance y velocidad de transmisión. En la siguiente figura podés ver una comparativa entre distintos tipos de tecnologías, su velocidad de transmisión y el alcance de las mismas.

PANs

Las redes PAN generalmente son inalámbricas y cubren un alcance corto. La carga útil de los mensajes varía de datos de sensores sencillos a grandes transmisiones de datos.

Una red PAN inalámbrica podría ser, por ejemplo, un smartphone conectado por Bluetooth a ciertos accesorios como un auricular inalámbrico, reloj o dispositivo de acondicionamiento físico; así como también un sensor de puerta que solamente envía datos cuando el estado de una puerta sufre una modificación (abre o cierra).

La tecnología asociada a estas soluciones es relativamente simple y económica. Por lo general requieren el uso de un gateway para conectarse a internet. En muchas soluciones, un dispositivo inteligente (smartphone, PC, SBC) puede actuar como gateway mediante una conexión WiFi o celular para transmitir datos hacia internet.

LANs

Las LAN son cableadas o inalámbricas (o una combinación de las dos) y amplían la distancia a la que se pueden comunicar los dispositivos. Las LAN inalámbricas (WLAN) generalmente cubren un alcance relativamente corto, pero pueden transmitir cargas de datos elevadas.

Si bien este tipo de redes es más costosa y compleja que una implementación de PAN, el acceso y cobertura suele ser mucho mayor que una red PAN.

En algunas aplicaciones es posible regular el consumo de energía para lograr una operación a largo plazo de la batería de los dispositivos IoT. Un ejemplo es una red WiFi doméstica que proporciona acceso a Internet a computadoras, smartphones, televisores y dispositivos domésticos de IoT, como termostatos y electrodomésticos.

WANs

Las redes WAN se extienden por un área muy amplia, como por ejemplo las redes celulares.

Un claro ejemplo de redes WAN son las soluciones celulares. Actualmente ofrecen un formato especializado para aplicaciones IoT donde se utilizan las bandas de frecuencia de guarda para transmitir información de los dispositivos con un ancho de banda limitado.

Dentro de este tipo de redes también se encuentra Internet, que está formado por una combinación compleja de conexiones cableadas e inalámbricas.

LPWANs

Las redes LPWAN son generalmente inalámbricas y pueden tener un alcance de varios kilómetros. Por lo general no se basan en IP y utilizan un amplificador de potencia para transmitir información, donde la potencia transmitida suele ser alta, pero el tráfico de datos es relativamente bajo.

Al diseñar soluciones con redes LPWAN, gran parte de la implementación está resuelta por el proveedor de la tecnología, pero es necesario hacer un diseño de red adecuado cuidando aspectos importantes, como por ejemplo el consumo de batería de los dispositivos.

Un ejemplo de una implementación utilizando una red LPWAN podrían ser dispositivos inteligentes midiendo el consumo de energía de una red eléctrica y reportando esos datos hacia la compañía de servicios públicos mediante gateways ubicados en distintos puntos.

Casos de uso de IoT

Luego que hayas visto varios conceptos generales sobre IoT, en esta sección vas a ver algunos casos de uso aplicados a diferentes industrias para tener ejemplos concretos de qué cosas se pueden realizar con estas tecnologías.

Manufactura

Los fabricantes pueden conseguir una ventaja competitiva mediante la supervisión de la línea de producción para habilitar el mantenimiento proactivo en los equipos cuando los sensores detectan un fallo inminente.

Los sensores pueden medir los momentos en que la capacidad de producción se ve afectada. Con la ayuda de las alertas de los sensores, se pueden revisar rápidamente los equipos para comprobar su funcionamiento o retirarlos de la producción hasta que estén reparados.

Esto permite a las empresas reducir los costos operativos, obtener mejor tiempo de actividad y mejorar la gestión del rendimiento de los activos.

Industria automovilística

La industria automovilística tiene muchas oportunidades de conseguir ventajas con el uso IoT. Además de los beneficios de aplicarlo a las líneas de producción, los sensores pueden detectar fallas en vehículos y avisar al conductor enviándole información detallada y recomendaciones.

Gracias a la información agregada reunida por las aplicaciones basadas en IoT, los fabricantes y proveedores de automóviles pueden obtener más información sobre cómo están funcionando los vehículos e informar de ello a sus propietarios.

Transporte y logística

Los sistemas de transporte y logística se benefician de diversas aplicaciones de IoT. Las flotas de coches, camiones, barcos y trenes que requieren llevar un inventario pueden ser redirigidos según las condiciones climáticas, la disponibilidad de vehículos o la disponibilidad de conductores, gracias a los datos de los sensores de IoT.

El propio inventario podría estar equipado también con sensores para el seguimiento y localización, así como también para supervisar el control de la temperatura.

Las industrias alimenticias y productos farmacéuticos a menudo transportan mercancías sensibles a la temperatura, humedad, luz, entre otros. Las aplicaciones de supervisión son capaces de enviar alertas cuando las condiciones ambientales suponen una amenaza para el producto.

Sector minorista

Las aplicaciones de IoT permiten a las empresas del sector minorista gestionar el inventario, mejorar la experiencia del cliente, optimizar la cadena de suministro y reducir los costes operativos.

Por ejemplo, las estanterías inteligentes equipadas con tranceptores pueden recoger información basada en RFID y enviar los datos a la plataforma de IoT para supervisar automáticamente el inventario y activar alertas si hay pocos artículos.

Los beacons pueden enviar ofertas y promociones específicas a los clientes para proporcionar una experiencia interesante.

Sector público

Los beneficios de IoT en el sector público y otros entornos relacionados con los servicios tienen una amplia variedad de aplicaciones.

Por ejemplo, los servicios públicos pueden utilizar aplicaciones basadas en IoT para notificar a los usuarios de cortes masivos o incluso de interrupciones más pequeñas en los servicios de agua, electricidad o alcantarillado.

Las aplicaciones de IoT pueden recopilar datos sobre el alcance de un corte y desplegar recursos para ayudar a que los servicios públicos se recuperen de los cortes con más rapidez.

Atención sanitaria

La supervisión de activos de IoT ofrece varias ventajas a la industria de la atención sanitaria en donde se pueden ver ejemplos de aplicación en la actualidad.

Los médicos, enfermeros y asistentes a menudo necesitan saber la ubicación exacta de recursos de ayuda al paciente, como las sillas ruedas. Si las sillas de ruedas de un hospital están equipadas con sensores de IoT, se puede hacer un seguimiento de las mismas desde un centro de supervisión, de modo que se pueda encontrar la más cercana disponible.

Muchos recursos de hospital pueden rastrearse de esta forma para garantizar su uso apropiado, así como para llevar la contabilidad financiera de los activos físicos en cada departamento.

Seguridad general en todas las industrias

Además de rastrear los activos físicos, IoT puede mejorar la seguridad de los trabajadores en distintas industrias.

Los empleados de entornos peligrosos, como minas, yacimientos petroleros y de gas, plantas químicas y centrales eléctricas, por ejemplo, tienen que saber si se ha producido una incidencia peligrosa que podría afectarles.

Cuando están conectados a aplicaciones basadas en sensores de IoT, se les puede informar de accidentes o rescatarlos lo más rápido posible.

Conclusiones

Para hacer un resumen de todos los temas que vimos en este documento, podemos listar los siguientes:

Bibliografía

Licencia

Este material es distribuido bajo licencia Creative Commons BY-SA 4.0. Podés encontrar detalles sobre el uso del material en este link.