FUNDAMENTOS IOT Y
SISTEMAS EMBEBIDOS
Ing. Manuel Montaño Blacio, MSc.
Tema 4: Herramientas
digitales IoT
Manuel Asdruval Montaño Blacio
Resultado de
aprendizaje
Entender la evolución de Node-RED como una
herramienta para el desarrollo de aplicaciones IoT,
reconociendo sus beneficios como la facilidad de
uso, e interoperabilidad en proyectos de IoT.
[Link]
Contenido
Node-RED: Introducción e historia.
• Antecedentes y conceptos.
Beneficios de Node-RED.
• Usos.
Node-RED e IoT
• Internet de las Cosas y Node-RED.
Configuración e instalación.
• Pasos, guía.
Node-RED
• Node-RED es una potente herramienta para crear aplicaciones de Internet de las Cosas (IoT) centrada en
simplificar el "cableado" de bloques de código para llevar a cabo tareas. Utiliza un enfoque de
programación visual que permite a los desarrolladores conectar bloques de código predefinidos, conocidos
como "nodos", para realizar una tarea. Los nodos conectados, que suelen ser una combinación de nodos
de entrada, nodos de procesamiento y nodos de salida, cuando se conectan entre sí, forman "flujos".
(Enlace).
• Node-RED proporciona un editor de flujos basado en el navegador web, que puede utilizarse para crear
funciones JavaScript. Los elementos de las aplicaciones pueden guardarse o compartirse para su
reutilización. El tiempo de ejecución se basa en [Link]. Los flujos creados en Node-RED se almacenan
mediante JSON, que puede importarse y exportarse fácilmente para compartirlos con otros. Al entender
Node-Red, el desarrollo de IoT puede acelerarse sin codificación innecesaria.
Node-RED
References
• Part of the contents in this tutorial can be found on the Node-Red website:
[Link]
• Installation instructions can be found at: [Link]
started/installation
• Node RED Programming Guide: [Link]
• Introduction to Node-RED: [Link]
Instalación de Node-RED
Para poder trabajar con Node-RED, primero debe instalar [Link]. Se recomienda el
uso de [Link] LTS 8.x o 10.x o superior. Node-RED ya no soporta [Link] 6.x o
anteriores. Puedes descargar la última versión de [Link] desde su página web
eligiendo el sistema operativo que estés utilizando:
[Link]
Instalación de Node-RED
Linux
Una vez instalado [Link], abra la ventana de terminal y ejecute los siguientes
comandos.
Para comprobar tu versión de [Link]
node -v
La forma más sencilla de instalar Node-RED es utilizar el gestor de paquetes de
node, npm, que viene con [Link].
La instalación como módulo global añade el comando node-red a la ruta de tu
sistema:
sudo npm install -g --unsafe-perm node-red
Instalación de Node-RED
Windows
Ejecute el instalador MSI de [Link] descargado. Se necesitan derechos de
administrador local. Acepte la configuración predeterminada durante la instalación.
Una vez finalizada la instalación, cierre cualquier símbolo del sistema abierto y vuelva a
abrirlo para asegurarse de que se recogen las nuevas variables de entorno.
Una vez instalado, abra un símbolo del sistema y ejecute el siguiente comando para
asegurarse de que [Link] y npm están instalados correctamente.
node --version && npm –version
Usted debe recibir de vuelta de salida que se parece a:
v8.9.0
5.5.1
La instalación de Node-RED como módulo global añade el comando node-red a la ruta
de tu sistema. Ejecute lo siguiente en el símbolo del sistema:
npm install -g --unsafe-perm node-red
[Link]
Instalación de Node-RED
Si ha instalado Node-RED como un paquete npm global, puede lanzar node-red en el
símbolo del sistema (Windows):
C:\>node-red
o en el terminal (Linux):
$ node-red
Esto mostrará el registro de Node-RED en el terminal. Debe mantener abierto el
terminal o el símbolo del sistema para que Node-RED siga funcionando.
A continuación, puede abrir el editor gráfico Node-RED
dirigiendo su navegador a
[Link]
Deploy button (to push Menu button
Node-RED before executing a flow)
Palette
of node
types
Panel showing contents:
Layout to draw flows • Info of selected node
• Debug
• Configuration Nodes
• Context Data Slide 7
Nodos
Un programa Node-RED se desarrolla como un FLUJO de mensajes que recorren una secuencia de
NODOS. Cada nodo puede implementar una elaboración del mensaje.
Nodos
Si un nodo se ha modificado después de la última
Los nodos constan de código que se ejecuta en el implantación, aparece un círculo azul sobre él.
servicio Node-RED (archivo javascript .js), y un archivo
HTML que consiste en una descripción del nodo, para que Si hay errores en su configuración, aparece un triángulo
aparezca en el panel de nodos con una categoría, un rojo.
color, un nombre y un icono, código para configurar el
nodo y texto de ayuda. Algunos nodos incluyen un botón en su borde izquierdo
o derecho. Esto permite interactuar con el nodo desde el
Los nodos se añaden a un flujo simplemente editor. Los nodos Inject y Debug son los únicos nodos
arrastrándolos y soltándolos. principales.
Un nodo puede vincularse a (múltiples) entradas y
(múltiples) salidas a través de sus puertos, que permiten
el paso de mensajes entre nodos.
Configuración Node-RED
La configuración de un nodo puede editarse haciendo doble clic en el nodo, o pulsando Intro cuando el área de
trabajo esté seleccionada. Si se seleccionan varios nodos, se editará el primero de la selección. El diálogo de
edición de nodos suele tener tres secciones: Propiedades, Descripción, Apariencia. La sección Propiedades se
utiliza para establecer lo que hace el nodo.
Cables Node-RED
Los cables definen las conexiones entre los puntos finales de entrada y salida de un nodo en un flujo.
Conectan (normalmente) los extremos de salida de los nodos a las entradas de los nodos
posteriores, indicando que los mensajes generados por un nodo deben ser procesados por el
siguiente nodo conectado. Es posible conectar más de un nodo a un punto final mediante cables.
Cuando se conectan varios nodos a un punto final de salida, los mensajes se envían a cada nodo
conectado sucesivamente en el orden en que fueron cableados a la salida. Cuando más de un nodo
de salida está conectado a un punto final de entrada, los mensajes de cualquiera de esos nodos
serán procesados por el nodo conectado cuando lleguen.
¿Cómo crear cables?
Haga clic con el botón izquierdo en un puerto de nodo de
salida y, mientras mantiene pulsado el botón del ratón,
Un flujo simple que genera una marca de tiempo que es
desplácese al puerto de nodo de entrada de destino.
recibida por un nodo de depuración .
Suelte el botón del ratón.
Despliegue de flujos
El despliegue del flujo es necesario antes de ejecutar el flujo en sí. El botón Desplegar se encuentra
en la esquina superior derecha y cambia de color de gris a rojo cuando se ha realizado algún cambio
en un flujo, para indicar que es necesario desplegarlo. Una vez desplegado, el flujo puede ejecutarse,
por ejemplo, pulsando el botón de un nodo Inject.
Botón activo
del nodo
Inyectar
Gestionar flujos
Crear un flujo: haga clic en la pestaña "+".
Borrar un flujo : haga doble clic en la pestaña del flujo y pulse el botón "Borrar o eliminar".
Cambiar el nombre de un flujo : haga doble clic en la pestaña del flujo, cambie el nombre y
pulse el botón "Hecho".
double-click on the flow tab
Gestionar flujos
Importar un flujo: haga clic en el menú principal y seleccione "Importar", "Portapapeles".
A continuación, copie y pegue el flujo o seleccione un archivo Json de entrada
Gestionar flujos
Exportar un flujo: haga clic en el menú principal y seleccione "Exportar", "Portapapeles".
A continuación, copie el flujo o descárguelo como archivo Json.
Librerias
Se pueden crear bibliotecas para guardar un flujo o una función y reutilizarlos en otro flujo.
Guardar un flujo en una biblioteca: seleccione los nodos pertinentes del flujo y, a
continuación, haga clic en el menú principal >
Exportar > Biblioteca. Asigne un nombre a la biblioteca
Librerias
Se pueden crear bibliotecas para guardar un flujo o una función y reutilizarlos en otro flujo.
Importar un flujo desde una biblioteca: haga clic en el menú principal > Importar >
Biblioteca. Haga clic en el nombre
biblioteca elegida y coloque los nodos en el flujo.
Sub-Flujos
Un subflujo es una agregación de nodos y cables con puertos de entrada y salida.
La creación de subflujos es útil para reutilizar flujos y mantener el flujo global manejable.
Crear un subflujo: haga clic en el menú principal > Subflujos > Crear subflujo. Asigne un
nombre a la biblioteca
Los subflujos están disponibles en la paleta y pueden añadirse posteriormente a otro flujo como un simple
nodo.
Mensajes
Un flujo Node-RED funciona pasando mensajes entre nodos. Los mensajes son simples objetos
JavaScript que pueden tener cualquier conjunto de propiedades. El mensaje se pasa como un
objeto llamado msg. Los mensajes suelen tener una propiedad de carga útil ([Link]), es
decir, la propiedad por defecto que contiene el cuerpo del mensaje. Node-RED también añade una
propiedad llamada _msgid a cada mensaje, es decir, un identificador del mensaje.
El valor de una propiedad puede ser típicamente cualquier tipo válido de JavaScript, como:
-Boolean - verdadero, falso
-Número - por ejemplo, 0, 123.4
-String - "hola"
-Array - [1,2,3,4]
-Objeto - { "a": 1, "b": 2}
-Null
Mensajes
La estructura de un mensaje puede entenderse mejor si se pasa a un nodo Debug. Así, el contenido
del mensaje se puede ver en la barra lateral de depuración. Por defecto, el nodo Debug mostrará la
propiedad [Link], pero puede configurarse para que muestre cualquier propiedad o el
mensaje completo.
Mensajes
La estructura de un mensaje puede entenderse mejor si se pasa a un nodo Debug. Así, el contenido
del mensaje se puede ver en la barra lateral de depuración. Por defecto, el nodo Debug mostrará la
propiedad [Link], pero puede configurarse para que muestre cualquier propiedad o el
mensaje completo.
Mensajes
Al pasar el ratón por encima de cualquier elemento en Debug, aparece un conjunto de
botones a la derecha:
copia la ruta del elemento seleccionado en el portapapeles.
copia el valor del elemento en el portapapeles como cadena JSON.
fija el elemento seleccionado para que se muestre siempre. Cuando se recibe otro
mensaje del mismo nodo de depuración, éste se expande automáticamente para mostrar
todos los elementos anclados.
Ejemplo: ¡Hola IoT!
1. Crea una rutina simple que imprima el mensaje 'Hola IoT!' (Nota:
son posibles varias opciones alternativas)1. Crea un nuevo Flow y
renómbralo
Ejemplo: ¡Hola IoT!
2. Añadir nodo Inject (a partir de nodos de entrada)
Ejemplo: ¡Hola IoT!
3. Añadir nodo Modificar (a partir de nodos de función)
Ejemplo: ¡Hola IoT!
4. Añadir nodo Debug (desde nodos de salida)
Ejemplo: ¡Hola IoT!
5. Conectar los cables y desplegar
Ejemplo: ¡Hola IoT!
6. Ejecutar: haga clic en el botón Inyectar y compruebe los
resultados en el panel Depuración.
Iniciar flujo
Ejemplo: ¡Hola IoT!
7. Flujo de exportación
[{"id":"148e3965.53767f","type":"debug","z":"283e160d.c1304a","name":"Debug
[Link]","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","targetType":"msg","x":440
,"y":200
,"wires":[]},{"id":"478a9031.b808","type":"inject","z":"283e160d.c1304a","name":"","topic":"","payload":"","payloadType":"dat
e","re
peat":"","crontab":"","once":false,"onceDelay":0.1,"x":100,"y":80,"wires":[["112be1b8.535ec6"]]},{"id":"112be1b8.535ec6","typ
e":"c
hange","z":"283e160d.c1304a","name":"Set message payload","rules":[{"t":"set","p":"payload","pt":"msg","to":"Hello LDAC
Summer
School!","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":260,"y":140,"wires":[["148e3965.53767f"]]}]
Ejemplo: ¡Hola IoT!
Flujo alternativo (2): inyectar parte del mensaje
Ejemplo: ¡Hola IoT!
Flujo alternativo (3): utilizar el nodo de función
Nodos por defecto
Nodos
Inyecta un mensaje en un flujo manualmente o a intervalos regulares. La carga útil del mensaje puede ser de varios tipos, como
cadenas, objetos JavaScript o la hora [Link] nodo Inject puede iniciar un flujo con un valor de carga útil específico. El nodo también
admite la inyección de timestamp , cadenas, números, booleanos, objetos JavaScript o valores de flujo/contexto [Link] defecto, el
nodo se activa manualmente haciendo clic en su botón dentro del editor. También puede configurarse para que se inyecte a intervalos
regulares o de acuerdo con una programación.
Muestra las propiedades del mensaje seleccionado en la pestaña de la barra lateral de depuración y, opcionalmente, en el
registro de tiempo de ejecución. Por defecto muestra [Link], pero puede configurarse para mostrar cualquier propiedad,
el mensaje completo o el resultado de una expresión JSONata. La barra lateral de depuración ofrece una vista estructurada de
los mensajes que se envían, lo que facilita la comprensión de su estructura. Los objetos JavaScript y las matrices pueden
contraerse y expandirse según sea necesario. Junto a cada mensaje, la barra lateral de depuración incluye información sobre la
hora a la que se recibió el mensaje, el nodo que lo envió y el tipo de mensaje. El botón del nodo permite activar o desactivar su
salida.
Nodos
Un bloque de funciones JavaScript para ejecutar contra los mensajes que recibe el nodo. Los
mensajes se pasan como un objeto JavaScript llamado msg. Por convención, tendrá una
propiedad [Link] que contendrá el cuerpo del mensaje. Se espera que la función
devuelva un objeto de mensaje (o múltiples objetos de mensaje), pero puede elegir no
devolver nada para detener un flujo.
El nodo Plantilla puede utilizarse para generar texto utilizando las propiedades de un
mensaje para rellenar una plantilla. Utiliza el lenguaje de plantillas Mustache para generar
el resultado.
Por ejemplo, una plantilla de:
Este es el payload: {{carga útil}} ¡!Sustituirá {{payload}} por el valor de la propiedad
payload del mensaje.
Nodos
El nodo Switch permite que los mensajes se dirijan a diferentes ramas de un flujo evaluando
un conjunto de reglas para cada mensaje. El nodo se configura con la propiedad a
comprobar, que puede ser una propiedad de mensaje o una propiedad de contexto.
El nodo Change puede utilizarse para modificar las propiedades de un mensaje y
establecer propiedades de contexto sin tener que recurrir a un nodo Function. Cada nodo
puede configurarse con múltiples operaciones que se aplican en orden. La página
operaciones disponibles son: Establecer, Cambiar, Mover, Borrar
Nodos
Envía peticiones HTTP y devuelve la respuesta. Entradas clave:
-url (cadena): url de la petición.
-method (cadena): Método HTTP de la petición, es decir, uno de GET, PUT,
POST, PATCH o DELETE.
-headers (objeto): Cabeceras HTTP de la petición.
-payload: cuerpo de la peticiónen la salida, payload contiene el cuerpo de la
respuesta.
El nodo puede ser configurado para devolver el cuerpo como una cadena,
intentar parsearlo como una cadena JSON o dejarlo como un buffer binario.
Nodos
Convierte entre una cadena JSON y su representación de objeto
JavaScript,en cualquier dirección.
Convierte entre una cadena XML y su representación de objeto
JavaScript, en cualquier dirección.
Lee el contenido de un archivo como cadena o búfer
binario.
Escribe [Link] en un archivo, ya sea añadiendo al final
o sustituyendo el contenido existente. Alternativamente, puede
eliminar el archivo.
Nodos
Hay dos nodos principales para modificar un mensaje, el nodo Change y el
nodo Function.
El nodo Change ofrece muchas funciones sin necesidad de escribir código
JavaScript. No sólo puede modificar las propiedades del mensaje, sino que
también puede acceder al contexto global y de flujo.
El nodo Change proporciona cuatro operaciones básicas:
-Configurar una propiedad a un valor,
-Cambiar una propiedad String realizando una búsqueda y reemplazo,
-Borrar una propiedad,
-Mover una propiedad.
Se puede asignar más de un cambio a un nodo. El valor resultante puede
codificarse (por ejemplo, cadena, número) o definirse elaborando otro
mensaje.
Nodos
El nodo Función le permite ejecutar cualquier código
JavaScript contra el mensaje. Esto le da total flexibilidad
en lo que hace con el mensaje, pero requiere familiaridad
con JavaScript y es innecesario para muchos casos
sencillos.
En particular, puede utilizar el nodo de función cuando no
exista un nodo dedicado a su tarea.
Una función debe devolver un mensaje, de lo contrario el
flujo se detiene.
Nodos
Ejemplo.
Cuerpo de la funcion:
[Link] =
[Link]()
return msg;
Nodos
El nodo de función puede configurarse con múltiples salidas. Esto es útil
cuando el flujo se divide en rutas separadas dependiendo de una propiedad
del mensaje. Para configurar múltiples salidas abra el nodo de función y
utilice las flechas arriba/abajo para ajustar el número de salidas. Para
devolver mensajes a múltiples salidas es necesario devolver un array, por
ejemplo
return[msg1,msg2];
msg1 aparecerá en la salida1 y msg2 en la salida2.
Para detener un flujo se devuelve null, por ejemploreturn
[msg1,null];
Nodos
Ejemplo de salidas múltiples
Cuerpo de la función:
var msg1 = {payload: "",topic: ""}
[Link] = "message n.1 "
var msg2 = {payload: "",topic: ""}
[Link] = "message n.2" return
[msg1,msg2];
Tema 5: Plataformas de
IoT y automatización
Manuel Asdruval Montaño Blacio
Resultado de
aprendizaje
Conocer las diversas plataformas de IoT y
automatización, como Microsoft Azure IoT, AWS
IoT, Google Cloud IoT e IBM Cloud,
comprendiendo su aplicación en proyectos de IoT.
Contenido
Microsoft Azure IoT.
• Conceptualización.
AWS IoT.
• Conceptualización.
Google Cloud IoT.
• Conceptualización.
IBM Cloud.
• Conceptualización.
Otras plataformas IoT y automatización para explorar más a fondo.
• Tago io, thinger io, etc.
Componentes esenciales de
la pila de soluciones IoT
La Internet de las Cosas constituye un paradigma tecnológico fascinante y en rápida evolución que
facilita la interacción entre dispositivos, datos y decisiones. Aprovecha los avances en informática,
redes y procesamiento de datos para transformar nuestra interacción con el mundo físico. En este
punto, nos adentramos en los entresijos de los componentes esenciales de la pila de soluciones
IoT, que consisten en dispositivos, conectividad, plataformas, análisis y aplicaciones.
Plataformas IoT
Para explicar de una mejor manera el funcionamiento del sistema de Internet de las cosas, y el
papel que desarrolla la plataforma IoT en él, se muestra a continuación, la figura en la cual se
presenta el área en el que está implicada la plataforma en cualquier proyecto sobre Internet de las
cosas.
Se entiende por medio de la figura que el grupo de los
sensores no está directamente implicado con las
plataformas y aunque en la figura no es evidente los
protocolos de red (LAN, Bluetooth, etc) tampoco, por lo
tanto, cuando se esté programando o configurando
cualquier plataforma IoT, solo se tendrán en cuanta las
otras variables, exceptuando estas dos.
Las plataformas IoT y sus
principales características
A medida que nos adentramos en un mundo cada vez más conectado, el Internet de las Cosas
(IoT) se ha convertido rápidamente en una parte integral de nuestra vida cotidiana. Desde los
hogares inteligentes y la asistencia sanitaria hasta la agricultura y el transporte, el IoT está
cambiando fundamentalmente la forma en que interactuamos con el mundo que nos rodea. Para el
funcionamiento de este vasto sistema interconectado son fundamentales las plataformas IoT, el
corazón y el cerebro de los dispositivos inteligentes.
Una plataforma IoT, en esencia, es el centro
neurálgico de un sistema IoT, alojado normalmente
en una infraestructura en la nube, encargado de
facilitar el procesamiento de datos, la obtención de
información significativa y la conectividad de los
dispositivos conectados dentro del ecosistema IoT.
Las plataformas IoT y sus
principales características
Existen dos aspectos que consideramos relevantes en el dominio de las
plataformas IoT:
1. Las funcionalidades que nos ofrecen para gestionar y configurar una
solución.
2. Los modelos de comunicación que nos proporcionan, que nos
caracterizan el tipo de soluciones que podemos aplicar.
Funcionalidades básicas de
las plataformas IoT
Ahora nos centraremos en las funcionalidades básicas que ofrecen las plataformas IoT, las
cuales serán abordadas detalladamente tras su mención:
Gestión de Dispositivos
Recopilación y procesamiento de Datos
Análisis de Datos y Perspectivas
Integración e Interoperabilidad
Seguridad
Interfaz de Usuario
Modelos de servicios de computación en la nube
o Infraestructura como Servicio (IaaS)
o Plataforma como Servicio (PaaS)
o Software como Servicio (SaaS)
Gestión de dispositivos
Una plataforma IoT es responsable de gestionar y mantener los dispositivos IoT conectados a
ella. Esto incluye funciones como el aprovisionamiento de dispositivos (añadir y autorizar
nuevos dispositivos), las actualizaciones de firmware y software, la resolución de problemas,
la gestión de la seguridad y el diagnóstico del rendimiento de los dispositivos. La plataforma
garantiza que los dispositivos no sólo funcionen según lo esperado, sino que también
permanezcan seguros frente a posibles amenazas.
Recopilación y
procesamiento de datos
Los dispositivos IoT generan continuamente una enorme cantidad de datos que deben
recopilarse y procesarse. Las plataformas IoT tienen la funcionalidad esencial de recopilar
estos datos, a menudo en tiempo real, y procesarlos para su posterior análisis. Esto puede
incluir datos brutos de sensores de dispositivos, archivos de registro o mensajes de error.
Análisis de datos y
perspectivas
Una vez recopilados y procesados los datos, hay que transformarlos en información práctica.
Aquí es donde realmente brilla el poder de IoT. Las plataformas de IoT utilizan herramientas
como la supervisión de los datos en tiempo real, algoritmos de aprendizaje automático para
predecir patrones futuros y la IA para analizar los datos, obtener información y facilitar la toma
de decisiones. Esta funcionalidad permite a las empresas tomar decisiones informadas
basadas en datos y perspectivas en tiempo real, mejorando así la eficiencia y la productividad.
Integración e
interoperabilidad
El ecosistema IoT es una confluencia de múltiples tecnologías, protocolos, dispositivos y
aplicaciones. Por lo tanto, las plataformas IoT deben garantizar una integración e
interoperabilidad perfectas entre estos componentes. Utilizan protocolos de comunicación
estándar como MQTT, HTTP, CoAP, etc., y ofrecen API (interfaces de programación de
aplicaciones) para integrarse con otros sistemas de software.
Seguridad
En el contexto del IoT, la seguridad es un aspecto crítico y de vital importancia. Las
plataformas IoT deben garantizar el intercambio seguro de datos entre los dispositivos y la
plataforma. Esto incluye cifrar los datos en reposo y en tránsito, garantizar el control de
acceso y proporcionar mecanismos para la detección y mitigación de amenazas.
Interfaz de usuario
Las plataformas IoT también proporcionan una interfaz de usuario que permite a los usuarios
gestionar fácilmente sus dispositivos IoT, ver datos y extraer perspectivas. Puede ser en forma
de cuadros de mando, herramientas de generación de informes y otras ayudas a la
visualización
Modelos de servicios de
computación en la nube
La funcionalidad de una plataforma IoT se realiza a menudo a través de servicios de
computación en la nube. Estos modelos de servicio proporcionan la columna vertebral que
sustenta el sólido funcionamiento de una plataforma IoT. Para entender este funcionamiento,
profundizaremos en los tres principales modelos de servicios de computación en nube:
Infraestructura como Servicio (IaaS), Plataforma como Servicio (PaaS) y Software como
Servicio (SaaS).
Modelos de servicios de
computación en la nube
IaaS es un modelo de computación en nube que proporciona tanto elementos fundacionales
como infraestructura virtualizada. Gestionada por proveedores externos, es esencial para las
operaciones de las empresas y constituye una parte fundamental de una plataforma de IoT en
la nube. Proporciona la infraestructura esencial para desplegar componentes PaaS y SaaS.
PaaS es una capa de servicios de computación en nube construida sobre IaaS, diseñada para
proporciona a los desarrolladores de software una plataforma para crear, ejecutar y probar
aplicaciones sin necesidad de gestionar la infraestructura subyacente, como servidores, redes
y almacenamiento.
SaaS proporciona a los usuarios aplicaciones de software listas para usar a través de Internet,
generalmente accesibles a través de un navegador web. Como servicio construido sobre la
infraestructura IaaS, SaaS utiliza su potencia de procesamiento subyacente y sus
capacidades de almacenamiento para ofrecer aplicaciones, que en el ámbito IoT, permiten
controlar los sistemas IoT e interactuar con ellos
Escenarios que implementan
soluciones IoT
El concepto de plataforma IoT a su aplicación práctica en diversos escenarios empresariales
de IoT siendo estos: Comunicación de dispositivo a dispositivo, Mando y control centralizados,
Monitorización remota e Inteligencia empresarial.
Machine-to-Machine (M2M), Controlar los dispositivos de forma
consiste en conectar dos remota a través de software, con
dispositivos locales o remotos. Con aplicaciones de escritorio, web y
las plataformas IoT que orquestan móviles que actúan como controles
estas comunicaciones basándose remotos.
en reglas predefinidas.
Los datos también pueden integrarse Telemetría e información de
en los almacenes de datos de la estado a la nube, lo que
empresa para su posterior análisis permite la supervisión
continua de los estados de
los dispositivos
Amazon Web Service IoT
Core
Amazon Web Services (AWS) es una plataforma de servicios de nube que proporciona un
pool de servicios de infraestructura de red tales como bases de datos, almacenamiento de
información, inteligencia artificial, o el que en este caso nos importa, internet de las cosas,
entre otros. AWS IoT Core es una plataforma IoT centrada en facilitar la conexión entre los
dispositivos IoT y la nube de AWS, permitiendo la integración con los diversos servicios que
AWS ofrece.
[Link]
AWS IoT que ofrece
Su punto de entrada (Device Gateway), admite los protocolos MQTT (Message Queuing and
Telemetry Transport), MQTT over WSS(WebSockets Secure) HTTPS(Hypertext Transfer
Protocol - Secure) y WebSocket. Amazon afirma que el módulo es lo suficientemente
escalable para manejar desde unos pocos dispositivos hasta billones de ellos, y a cada uno se
le asigna una identidad única. Debido a la autenticación y el cifrado proporcionados en todos
los puntos de conexión, IoT Core y los dispositivos nunca intercambian datos no verificados.
Entre los diferentes servicios enfocados al ámbito IoT
que ofrece AWS IoT destaca IoT Core, que se encarga
de administrar la autenticación, la conexión y la
comunicación de los dispositivos con los servicios de
AWS y entre sí.
AWS IoT precio
Google Cloud IoT Core
Google Cloud IoT Core es una plataforma de gestión de dispositivos IoT completamente
gestionada, que forma parte integral del conjunto de productos y servicios de Google Cloud.
Este servicio proporciona un conjunto de herramientas para administrar, analizar, almacenar y
procesar datos procedentes de dispositivos IoT, desde unos pocos hasta millones, repartidos
por todo el mundo de manera segura y eficiente. Ofrece la posibilidad de manejar los datos
tanto localmente como en la nube, y es accesible para empresas de todos los tamaños. La
plataforma aprovecha el poder de la analítica y el aprendizaje automático para extraer
conclusiones valiosas o entender patrones a partir de los datos recolectados por los
dispositivos IoT.
[Link]
Google Cloud IoT Core que
ofrece
Los componentes principales de Cloud IoT Core son el administrador de dispositivos y los
puentes de protocolo:
Un administrador de dispositivos para registrar dispositivos en el servicio a fin de
supervisarlos y configurarlos.
Dos puentes de protocolo (MQTT y HTTP) que los dispositivos pueden usar para
conectarse a Google Cloud Platform. Para la conexión y comunicación de los dispositivos.
Google Cloud IoT Core que
ofrece
IBM Watson IoT
IBM Watson IoT Platform es un servicio totalmente gestionado y alojado en la nube en IBM
Cloud que facilita la derivación de valor de los dispositivos de Internet de las cosas (IoT). Está
diseñado para analizar, gestionar, transformar, almacenar y exponer los datos de los
dispositivos IoT.
[Link]
IBM Watson IoT ofrece
IBM Watson IoT ofrece
Permite configurar y gestionar los dispositivos conectados al servicio y, de esta forma, permite
que las aplicaciones creadas y enlazadas a los dispositivos puedan tener acceso a los datos en
tiempo real y al histórico.
Por otro lado, ofrece APIs seguros que vinculan las aplicaciones con los datos procedentes de
los dispositivos conectados a la plataforma. Además, permite el análisis de los datos sin salir de
la plataforma mediante Bluemix.
IBM ha agrupado la plataforma en cuatro grandes bloques:
IBM Watson IoT Platform Connect: Bloque que engloba la comunicación entre
los dispositivos y la nube.
IBM Watson IoT Platform Information Management: Permite la integración con
datos de terceros y el almacenamiento de los datos recibidos por los dispositivos.
IB Watson IoT Analytics: Provee a la plataforma la capacidad de realizar análisis
predictivos, cognitivos, en tiempo real y contextuales.
IBM Watson IoT Risk Management: Permite añadir a la plataforma una capa
proactiva de seguridad y protección ante anomalías en el mundo del IoT
Microsoft Azure IoT Hub.
Internet de las cosas (IoT) de Azure es un conjunto de servicios en la nube administrados por Microsoft
que permiten conectar, supervisar y controlar miles de millones de recursos de IoT. También incluye
seguridad y sistemas operativos para dispositivos y equipos, junto con datos y análisis que ayudan a
las empresas a crear, implementar y administrar aplicaciones de IoT.
[Link]
Microsoft Azure IoT Hub que
ofrece
Gracias a las tecnologías y servicios de IoT Azure que se ofrecen, Microsoft permite crear una amplia
variedad de soluciones IoT mediante principalmente 2 ofertas:
Application platform as a service (aPaaS) (Plataforma de aplicaciones como servicio) IoT Central.
Platform as a service (PaaS) (Plataforma como servicio) IoT Hub.
En primer lugar, explicaremos ambos tipos de plataformas. aPaaS proporciona un entorno en la nube
para compilar administrar y entregar aplicaciones a los clientes. Las ofertas de aPaaS se encargan del
escalado y de la mayor parte de la configuración. En cambio, PaaS es un modelo de computación en
la nube en el que se adaptan las herramientas de hardware y software de Azure
Microsoft Azure IoT Hub que
ofrece
Microsoft Azure IoT Hub que
ofrece
Otras plataformas IoT
• Altair SmartWorks IoT • [Link]
• Carriots • ThingSpeak
• DeviceHive • Zetta
• IoTsens • Ubidots.
• Kaa • Arduino Cloud
• [Link] EDGE • ThingsBoard
• Mainflux • [Link]
• OpenRemote • etc
• Predix Platform
• Sentilo
• Sofia2
Prácticas IoT
GRACIAS POR SU
ATENCIÓN