Primeros pasos de una solución IoT con IBM Cloud
Introducción - El Internet de las Cosas (IoT por sus siglas en Inglés) es más que hype, es toda una revolución.
El IoT supone un cambio de paradigma impulsado por las nuevas tecnologías como la computación en la nube (cloud computing), el procesamiento en el borde (edge computing), la potencia de los nuevos protocolos y tecnologías de comunicación (como el 5G) o la gestión basada en datos (data driven) gracias a, big data y al machine learning.
Para poder desarrollar proyectos de IoT que requieran de estas tecnologías de forma ágil y sostenible, una excelente opción es el uso de plataformas en la nube como IBM Cloud. En esta guía se siguen todos los pasos para desarrollar un pequeño proyecto de IoT completamente desde cero y sin necesidad de tener conocimientos avanzados en TIC.
Prerequisitos - Creación cuenta IBM Cloud
El primer y único prerequisito es conseguir una cuenta en IBM Cloud y se puede hacer en el siguiente enlace:
https://cloud.ibm.com/registration
Se trata de un proceso sencillo que no conlleva más de 5 minutos y que no precisa de incluir información bancaria ni de tarjetas de crédito.



Tiempo estimado
En función de la destreza y del conocimiento previo en IBM Cloud, entre 1 y 2 horas.
Pasos a seguir
El tutorial está dividido en 3 partes diferenciadas para facilitar su seguimiento, pudiéndose realizar en momentos diferentes aunque sí de manera consecutiva.
1.1. Instalación Servicio Internet Of Things Platform
Seguimos los siguientes pasos para crear una aplicación Node-RED:
-
Log in en IBM Cloud.
-
Hacemos click en Catalog y buscamos Internet of Things Platform
-
Hacemos click sobre la casilla de Internet of Things Platform

- En la pestaña Create y completamos los siguientes campos:
- Region – Muy importante! Se debe seleccionar la misma ubicación para todos los servicios - London – en el caso de este tutorial
- Pricing plan – se deja - Lite
- Service name – Se precisa un nombre único, por lo que una sugerencia es el uso de iniciales y el nombre del servicio - iot-plpl – en el caso de este tutorial
- Resource group – Se deja Default
- Tags – Se deja vacío
- Una vez completados los campos pulsamos en Create y esperamos


1.2. Lanzamos IoT Platform
Una vez instalado el servicio:
-
Sobre la pantalla pulsamos en Launch
-
Por último, hacemos log in
-
Ya estamos dentro de nuestra plataforma IoT



1.3. Añadir un dispositivo que envíe mensajes MQTT
Con la consola de IoT Platform abierta:
-
Primero nos fijamos en el ID, en el caso del autor d5idpl. Este identificador enlazará la plataforma con los dispositivos que conectemos.
-
A continuación, para añadir un dispositivo pulsamos sobre Add Device
-
En la nueva ventana y en la pestaña Device Types pulsamos sobre Add Device Type


En la plataforma, es posible tener varios tipos de dispositivos, y varios dispositivos en cada tipo. Un tipo de dispositivo es un grupo de activos que comparten características; por ejemplo, pueden proporcionar los mismos datos de sensores.
-
En nuestro caso, el nombre del tipo de dispositivo debe ser Android. Pulsamos Next
-
En la siguiente pantalla se pueden introducir metadatos sobre el tipo de dispositivo, como un número de serie o un modelo. No es necesario especificar esta información para esta práctica. Simplemente click en Finish.


-
Una vez creado el tipo de dispositivo, registramos uno nuevo haciendo click en Register Devices.
-
La identificación del dispositivo puede ser, por ejemplo, la dirección MAC de un smartphone. Sin embargo, debe ser única dentro de la plataforma. Para la práctica, introducimos 112233445566 y después pulsamos Next


-
Se muestra una página en la que se pueden introducir metadatos sobre el dispositivo. La dejamos en blanco y haga clic en Next.
-
En la página de seguridad, se debe introducir un valor para el token de autenticación. Se debe recordar este valor para más tarde, en el caso de la práctica Token.1234. A continuación, click en Next.
-
Por último, hacemos click en Finish


1.4. Instalación, configuración y uso de la Android APP
Para el desarrollo de este tutorial se precisa de un dispositivo Android. Bien puede ser un dispositivo físico o bien uno virtualizado. Los pasos a seguir son los siguientes:
-
Descargar el fichero *.apk comprimido del siguiente link
iotstarter-v2.1.0.apk.zip
-
Extraer el fichero *.zip.
-
Instalar el fichero
Ahora que está la app instalada y en funcionamiento procedemos a:
-
Nada más abrir la app, aparecerá un tutorial que por ahora vamos a omitir pulsando en Skip Tutorial
-
A continuación, debemos rellenar los campos:
- Organization – Con nuestro ID de Watson IoT Platform – En el caso de la guía d5idpl
- Device ID – Con el ID creado en el punto 4.6 en la plataforma – En el caso de la guía 112233445566
- Auth Token – Con el Token creado en el punto 4.7 en la plataforma – En el caso de la guía Token.1234
- Pulsamos sobre Activate Sensor


- Una vez activado el sensor, somos capaces de visualizar las diferentes medidas del acelerómetro del dispositivo

- Ahora tan solo agita y mueve el dispositivo.

1.5. Verificación de las lecturas en IoT Platform
De nuevo a la consola de Watson IoT Platform:
-
En la pestaña lateral Devices y en la pestaña superior Browse deberíamos visualizar nuestro dispositivo.
-
Haciendo click sobre el icono de la flecha a la derecha de tu ID de dispositivo accedemos a una página de "Eventos recientes". Deberíamos ver los eventos que vienen de tu smartphone.
-
Haciendo click en alguno de los eventos veremos los mensajes que se envían desde el smartphone en formato JSON.



1.6. Monitoriza lecturas con un dashboard
Una vez hemos comprobado que nuestra plataforma capta las señales producidas por el sensor, pasamos a recogerlas en un dashboard para su monitorización.
-
Hacemos click en la pestaña lateral Boards donde visualizamos los dashboards disponibles
-
Haciendo click sobre el icono de + creamos un nuevo board.
-
Rellenamos el Board name y la Description (opcional) y pulsamos Next
-
En la siguiente pantalla configuramos la privacidad y pulsamos en submit



-
Volvemos a la pantalla de boards y comprobamos que vemos el recién creado, que figurará vacío, sin cards.
-
Hacemos click sobre el board y en la nueva pantalla hacemos click sobre + Add New Card


-
Se abrirá un menú en el que podemos elegir el tipo de visualización que deseamos incluir en el dashboard. Elegimos Line chart
-
A continuación, deberíamos visualizar nuestro dispositivo, por lo que lo seleccionamos y le damos a Next


-
A continuación, debemos hacer click sobre Connect new data set
-
En el menú que se despliega debemos completar:
- Event – accel
- Property – acceleration_x
- Name – acceleration_x
- Type – Number
- Min – -10
- Max – 10
-
Antes de pulsar Next, hacemos scroll hacia abajo y hacemos click sobre + Connect new data set
-
Repetimos el proceso para el acelerómetro del “eje y” y el del “eje z” y pulsamos sobre Next


-
A continuación seleccionamos el tipo de gráfico, elegimos línea y tamaño XL. Pulsamos en Next.
-
Elegimos el esquema de colores y pulsamos sobre Submit


- Por último, si volvemos a agitar el dispositivo seremos capaces de monitorizar en tiempo real las lecturas del sensor de movimiento del dispositivo.

Hasta aquí la primera parte del tutorial, en el que nos hemos familiarizado con IBM Cloud y con la plataforma de Internet of Things. Los siguientes pasos nos ayudarán a trabajar con los datos obtenidos en tiempo real.
2.1. Despliegue app Node-RED
Seguimos los siguientes pasos para crear una aplicación Node-RED:
-
Log in en IBM Cloud.
-
Hacemos click en Catalog y buscamos Node-RED App
-
Hacemos click sobre la casilla de Node-RED App

- Pulsamos sobre la pestaña Create y completamos los siguientes campos:
App Details
- App name – Se precisa un nombre único, por lo que una sugerencia es el uso de iniciales y el nombre del servicio
- node-red-plpl – en el caso del tutorial
- Resource group – Se deja Default
- Tags – Se deja vacío
Service Details
- Region – Muy importante! Se debe seleccionar la misma ubicación para todos los servicios
- London – en el caso del tutorial
- Resource group – Se deja Default
- Pricing plan – Se deja Lite
- Una vez completados los campos pulsamos en Create y esperamos


2.2. Conectar con el servicio IoT Platform
Una vez desplegado el servicio anterior seguimos los siguientes pasos:
-
Pulsamos sobre Connect existing Service +.
-
Seleccionamos el servicio previamente creado de Internet of Things Platform y pulsamos sobre Done


2.3. Habilitar Continuous Delivery
-
Primero, pulsamos sobre Deploy your app.
-
A continuación, crear una IBM Cloud Api Key pulsando sobre New y posteriormente en Ok.



3.Haciendo scroll hacia abajo, seleccionamos la Region London
-
Los campos Organization, Space y Host deberían completarse automáticamente.
-
Una vez todo completado, pulsamos en Next

-
En la nueva ventana, dejamos el DevOps toolchain name el que nos viene por defecto
-
Y de nuevo en la Region, seleccionamos London
-
Una vez todo completado, pulsamos en Create

-
Una vez ha comenzado el despliegue, este tomará unos minutos para completarse
-
Las etapas que se suceden son:
- No stages detected
- In progress
- Success
- Durante el despliegue, podemos ver el log pulsando sobre Status




2.4. Accedemos a Node-RED
Una vez finalizado el despliegue de Node-RED ya estaría listo para utilizar:
-
Hacemos click sobre App URL.
-
Sobre la ventana emergente pulsamos en Next


-
Aseguramos nuestro editor introduciendo Username y Password.
-
Pulsamos sobre Next en 2 pasos y por último en Finish
-
Pulsamos sobre Go to your Node-RED flow editor
-
Hacemos log in y ya estaríamos en el editor.



2.4. Instalando extensión IBM en Node-RED
-
Nada mas abrir Node-RED encontraremos 2 nodos que componen una instrucción “Hello world”. Podemos probar a ejecutarla o simplemente los borramos.
-
Antes de empezar a trabajar, vamos a descargar unos componentes necesarios. Pulsamos sobre el icono superior derecho, y en el desplegable pulsamos sobre Manage palletes

-
En el menú que se despliega, nos posicionamos en la pestaña Install y escribimos en el campo de búsqueda ibmiotapp
-
Pulsamos sobre Install

2.5. Procesado de los mensajes en Node-RED
-
Ya con la extensión de IBM instalada, volvemos a pulsar sobre el botón de menú y esta vez pulsamos sobre importar
-
Ahora copiamos el siguiente código y lo pegamos sobre el editor que se ha abierto.
nodeRedCode.txt
-
Una vez pegado pulsamos sobre Import


-
Si hemos realizado el proceso correctamente deberíamos ver un flujo con 4 nodos en pantalla. Ahora debemos configurarlos.
-
Hacemos doble click en el nodo IBM IoT App Out. En la ventana emergente, introducimos el ID de dispositivo, 112233445566 en el caso del tutorial y hacemos clic en Done.
-
Configurado el nodo, pulsamos sobre Deploy. Veremos dos puntos verdes bajo los nodos IBM indicando que el despliegue se ha realizado correctamente.



-
Si hemos realizado el proceso correctamente y volviendo a nuestro dispositivo Android, al cambiar el eje Z cambiaremos el color del fondo de la App.
-
Si inspeccionamos el bloque calc color podemos ver el cálculo que realiza para el color en base a su posición en el eje Z.



2.7. Persistencia de datos en Cloudant
-
Ahora que somos capaces de recibir y visualizar los datos, procederíamos a persistirlos en una base de datos en la nube.
-
En el buscador escribimos Cloudant y arrastramos el nodo de salida y lo conectamos con IBM IoT App in.
-
Hacemos doble click sobre el nodo de Cloudant para abrir la ventana de opciones. Tan solo hay que seleccionar el servicio de Cloudant ya desplegado en IBM Cloud enlazado con las instancias de Node e IoT Platform, y le damos un nombre a la Database.



-
De vuelta a la consola de IBM Cloud, seleccionaríamos el servicio de Cloudant
-
Pulsamos sobre Launch Dashboard para abrir la consola


-
En la consola de Cloudant deberíamos ver la base de datos generada. Si pulsamos sobre esta se abrirá una vista de tabla con los mensajes recibidos.
-
En esta nueva vista, podemos filtrar y visualizar los mensajes
-
Si pulsamos sobre cualquiera de los mensajes, podemos ver el formato Json con la información del dispositivo y de la plataforma.



Este es un ejemplo de cómo a través de una pequeña app cloud en Node-RED, vinculada a Watson IoT Platform hemos sido capaz de modificar el funcionamiento de un dispositivo conectado así como también realizar una persistencia de los datos en una base en la nube.
A continuación se integrará la aplicación de IoT con herramientas de analítica de datos para su aprovechamiento.
3.1. Modificación flujo Node-RED
Seguimos los siguientes pasos para conectar la aplicación Node-RED con un entorno de modelado analítico:
-
Volvemos al entorno de Node-Red
-
En el buscador, escribimos change y lo arrastramos al tablero.
-
Borramos la conexión entre los nodos de IBM IoT App In y Node-red-data y entre msg.playload
-
Reconectamos los nodos de IBM IoT App In con change y este con Node-red-data y msg.playload


-
Hacemos doble click sobre el nodo de set.msg.playload para abrir la configuración
-
Dejamos el primer campo como playload y cambiamos el de más abajo a expression
-
Introducimos el siguiente código:
msg.payload.{
"timestamp" : $millis(),
"ax" : d."acceleration_x",
"ay" : d."acceleration_y",
"az" : d."acceleration_z"
}
- Tras esto, pulsamos en done, y nuevamente en done.


-
Pulsamos sobre Deploy y si el sensor está detenido, lo reactivamos.
-
Si hemos seguido los pasos correctamente, en debug deberán aparecer los nuevos mensajes ya filtrados para su posterior carga y análisis.


3.2. Configuración Watson Studio
-
Volvemos a la consola de IBM Cloud
-
Dentro de Servicios buscamos la instancia de Cloudant y pulsamos sobre su nombre.
-
En la nueva ventana pulsamos sobre Service credentials
-
Pulsamos sobre New credential


-
Nombramos la credencial con un nombre único y pulsamos sobre Add
-
Una vez creada la credencial, desplegamos con el botón de la flecha para ver su contenido y lo copiamos para su posterior consulta.


-
Volvemos al catálogo y buscamos Watson Studio, pulsamos sobre el.
-
Procedemos a crear el servicio.
Como puntos a tener en cuenta:
- La región que debe ser la misma que el resto (London en el caso de la práctica)
- Se recomienda poner un nombre único al servicio.



-
En la ventana siguiente pulsamos sobre Get Started
-
En la nueva ventana pulsamos sobre New Project
-
Entre las dos opciones, elegimos la de Create an empty project



-
Damos un nombre al proyecto
-
Y pulsamos sobre Add
-
En la ventana emergente, pulsamos en Create


-
Pulsamos sobre Refresh
-
Y una vez que aparezca el servicio que acabamos de crear podemos pulsar sobre Create


3.3. Conexión Cloudant con Notebook
-
En la página del Proyecto, pulsamos sobre Add to Project +
-
En el desplegable pulsamos sobre Notebook


-
Le damos nombre al notebook
-
Como runtime seleccionamos Default Spark Python 3.6
-
Pulsamos en Create

- Una vez activo el notebook, introducimos los siguientes comandos:
import pixiedust
pixiedust.installPackage("org.apache.bahir:spark-sql-cloudant_2.11:0")
from pyspark.sql
import SparkSession spark = SparkSession.builder.getOrCreate()
def readDataFrameFromCloudant(database):
cloudantdata = spark.read.format("org.apache.bahir.cloudant")\
.option("cloudant.host",'CLOUDANT_HOST’)\
.option("cloudant.username", 'CLOUDANT_USERNAME’)\
.option("cloudant.password",'CLOUDANT_PASSWORD')\ .load(database)
return cloudantdata
Nota!
Los campos CLOUDANT_HOST, CLOUDANT_USERNAME y CLOUDANT_PASSWORD deben modificarse con las credenciales de Cloudant.


- Si no hemos recibido ningún mensaje de error, procedemos con los siguientes:
df = readDataFrameFromCloudant('node-red-data') df.createOrReplaceTempView('df')

-
Una vez hecho correr esas dos instrucciones, habremos importado los datos a una tabla.
-
A partir de aquí es posible tratar los datos tanto en batch como en streaming.
Resumen
El propósito de este tutorial no es otro que familiarizarse con la nube pública de IBM, su plataforma de Internet de las Cosas así como alguno de sus servicios de Inteligencia Artificial y Analítica de datos.
Enlaces relacionados
https://www.ibm.com/cloud/internet-of-things
https://www.ibm.com/cloud/watson-studio
https://cloud.ibm.com/catalog/services/internet-of-things-platform#about
Primeros pasos de una solución IoT con IBM Cloud
Introducción - El Internet de las Cosas (IoT por sus siglas en Inglés) es más que hype, es toda una revolución.
El IoT supone un cambio de paradigma impulsado por las nuevas tecnologías como la computación en la nube (cloud computing), el procesamiento en el borde (edge computing), la potencia de los nuevos protocolos y tecnologías de comunicación (como el 5G) o la gestión basada en datos (data driven) gracias a, big data y al machine learning.
Para poder desarrollar proyectos de IoT que requieran de estas tecnologías de forma ágil y sostenible, una excelente opción es el uso de plataformas en la nube como IBM Cloud. En esta guía se siguen todos los pasos para desarrollar un pequeño proyecto de IoT completamente desde cero y sin necesidad de tener conocimientos avanzados en TIC.
Prerequisitos - Creación cuenta IBM Cloud
El primer y único prerequisito es conseguir una cuenta en IBM Cloud y se puede hacer en el siguiente enlace:
https://cloud.ibm.com/registration
Se trata de un proceso sencillo que no conlleva más de 5 minutos y que no precisa de incluir información bancaria ni de tarjetas de crédito.
Tiempo estimado
En función de la destreza y del conocimiento previo en IBM Cloud, entre 1 y 2 horas.
Pasos a seguir
El tutorial está dividido en 3 partes diferenciadas para facilitar su seguimiento, pudiéndose realizar en momentos diferentes aunque sí de manera consecutiva.
1.1. Instalación Servicio Internet Of Things Platform
Seguimos los siguientes pasos para crear una aplicación Node-RED:
Log in en IBM Cloud.
Hacemos click en Catalog y buscamos Internet of Things Platform
Hacemos click sobre la casilla de Internet of Things Platform
1.2. Lanzamos IoT Platform
Una vez instalado el servicio:
Sobre la pantalla pulsamos en Launch
Por último, hacemos log in
Ya estamos dentro de nuestra plataforma IoT
1.3. Añadir un dispositivo que envíe mensajes MQTT
Con la consola de IoT Platform abierta:
Primero nos fijamos en el ID, en el caso del autor d5idpl. Este identificador enlazará la plataforma con los dispositivos que conectemos.
A continuación, para añadir un dispositivo pulsamos sobre Add Device
En la nueva ventana y en la pestaña Device Types pulsamos sobre Add Device Type
En la plataforma, es posible tener varios tipos de dispositivos, y varios dispositivos en cada tipo. Un tipo de dispositivo es un grupo de activos que comparten características; por ejemplo, pueden proporcionar los mismos datos de sensores.
En nuestro caso, el nombre del tipo de dispositivo debe ser Android. Pulsamos Next
En la siguiente pantalla se pueden introducir metadatos sobre el tipo de dispositivo, como un número de serie o un modelo. No es necesario especificar esta información para esta práctica. Simplemente click en Finish.
Una vez creado el tipo de dispositivo, registramos uno nuevo haciendo click en Register Devices.
La identificación del dispositivo puede ser, por ejemplo, la dirección MAC de un smartphone. Sin embargo, debe ser única dentro de la plataforma. Para la práctica, introducimos 112233445566 y después pulsamos Next
Se muestra una página en la que se pueden introducir metadatos sobre el dispositivo. La dejamos en blanco y haga clic en Next.
En la página de seguridad, se debe introducir un valor para el token de autenticación. Se debe recordar este valor para más tarde, en el caso de la práctica Token.1234. A continuación, click en Next.
Por último, hacemos click en Finish
1.4. Instalación, configuración y uso de la Android APP
Para el desarrollo de este tutorial se precisa de un dispositivo Android. Bien puede ser un dispositivo físico o bien uno virtualizado. Los pasos a seguir son los siguientes:
Descargar el fichero *.apk comprimido del siguiente link
iotstarter-v2.1.0.apk.zip
Extraer el fichero *.zip.
Instalar el fichero
Ahora que está la app instalada y en funcionamiento procedemos a:
Nada más abrir la app, aparecerá un tutorial que por ahora vamos a omitir pulsando en Skip Tutorial
A continuación, debemos rellenar los campos:
1.5. Verificación de las lecturas en IoT Platform
De nuevo a la consola de Watson IoT Platform:
En la pestaña lateral Devices y en la pestaña superior Browse deberíamos visualizar nuestro dispositivo.
Haciendo click sobre el icono de la flecha a la derecha de tu ID de dispositivo accedemos a una página de "Eventos recientes". Deberíamos ver los eventos que vienen de tu smartphone.
Haciendo click en alguno de los eventos veremos los mensajes que se envían desde el smartphone en formato JSON.
1.6. Monitoriza lecturas con un dashboard
Una vez hemos comprobado que nuestra plataforma capta las señales producidas por el sensor, pasamos a recogerlas en un dashboard para su monitorización.
Hacemos click en la pestaña lateral Boards donde visualizamos los dashboards disponibles
Haciendo click sobre el icono de + creamos un nuevo board.
Rellenamos el Board name y la Description (opcional) y pulsamos Next
En la siguiente pantalla configuramos la privacidad y pulsamos en submit
Volvemos a la pantalla de boards y comprobamos que vemos el recién creado, que figurará vacío, sin cards.
Hacemos click sobre el board y en la nueva pantalla hacemos click sobre + Add New Card
Se abrirá un menú en el que podemos elegir el tipo de visualización que deseamos incluir en el dashboard. Elegimos Line chart
A continuación, deberíamos visualizar nuestro dispositivo, por lo que lo seleccionamos y le damos a Next
A continuación, debemos hacer click sobre Connect new data set
En el menú que se despliega debemos completar:
Antes de pulsar Next, hacemos scroll hacia abajo y hacemos click sobre + Connect new data set
Repetimos el proceso para el acelerómetro del “eje y” y el del “eje z” y pulsamos sobre Next
A continuación seleccionamos el tipo de gráfico, elegimos línea y tamaño XL. Pulsamos en Next.
Elegimos el esquema de colores y pulsamos sobre Submit
Hasta aquí la primera parte del tutorial, en el que nos hemos familiarizado con IBM Cloud y con la plataforma de Internet of Things. Los siguientes pasos nos ayudarán a trabajar con los datos obtenidos en tiempo real.
2.1. Despliegue app Node-RED
Seguimos los siguientes pasos para crear una aplicación Node-RED:
Log in en IBM Cloud.
Hacemos click en Catalog y buscamos Node-RED App
Hacemos click sobre la casilla de Node-RED App
App Details
Service Details
2.2. Conectar con el servicio IoT Platform
Una vez desplegado el servicio anterior seguimos los siguientes pasos:
Pulsamos sobre Connect existing Service +.
Seleccionamos el servicio previamente creado de Internet of Things Platform y pulsamos sobre Done
2.3. Habilitar Continuous Delivery
Primero, pulsamos sobre Deploy your app.
A continuación, crear una IBM Cloud Api Key pulsando sobre New y posteriormente en Ok.
3.Haciendo scroll hacia abajo, seleccionamos la Region London
Los campos Organization, Space y Host deberían completarse automáticamente.
Una vez todo completado, pulsamos en Next
En la nueva ventana, dejamos el DevOps toolchain name el que nos viene por defecto
Y de nuevo en la Region, seleccionamos London
Una vez todo completado, pulsamos en Create
Una vez ha comenzado el despliegue, este tomará unos minutos para completarse
Las etapas que se suceden son:
2.4. Accedemos a Node-RED
Una vez finalizado el despliegue de Node-RED ya estaría listo para utilizar:
Hacemos click sobre App URL.
Sobre la ventana emergente pulsamos en Next
Aseguramos nuestro editor introduciendo Username y Password.
Pulsamos sobre Next en 2 pasos y por último en Finish
Pulsamos sobre Go to your Node-RED flow editor
Hacemos log in y ya estaríamos en el editor.
2.4. Instalando extensión IBM en Node-RED
Nada mas abrir Node-RED encontraremos 2 nodos que componen una instrucción “Hello world”. Podemos probar a ejecutarla o simplemente los borramos.
Antes de empezar a trabajar, vamos a descargar unos componentes necesarios. Pulsamos sobre el icono superior derecho, y en el desplegable pulsamos sobre Manage palletes
En el menú que se despliega, nos posicionamos en la pestaña Install y escribimos en el campo de búsqueda ibmiotapp
Pulsamos sobre Install
2.5. Procesado de los mensajes en Node-RED
Ya con la extensión de IBM instalada, volvemos a pulsar sobre el botón de menú y esta vez pulsamos sobre importar
Ahora copiamos el siguiente código y lo pegamos sobre el editor que se ha abierto.
nodeRedCode.txt
Una vez pegado pulsamos sobre Import
Si hemos realizado el proceso correctamente deberíamos ver un flujo con 4 nodos en pantalla. Ahora debemos configurarlos.
Hacemos doble click en el nodo IBM IoT App Out. En la ventana emergente, introducimos el ID de dispositivo, 112233445566 en el caso del tutorial y hacemos clic en Done.
Configurado el nodo, pulsamos sobre Deploy. Veremos dos puntos verdes bajo los nodos IBM indicando que el despliegue se ha realizado correctamente.
Si hemos realizado el proceso correctamente y volviendo a nuestro dispositivo Android, al cambiar el eje Z cambiaremos el color del fondo de la App.
Si inspeccionamos el bloque calc color podemos ver el cálculo que realiza para el color en base a su posición en el eje Z.
2.7. Persistencia de datos en Cloudant
Ahora que somos capaces de recibir y visualizar los datos, procederíamos a persistirlos en una base de datos en la nube.
En el buscador escribimos Cloudant y arrastramos el nodo de salida y lo conectamos con IBM IoT App in.
Hacemos doble click sobre el nodo de Cloudant para abrir la ventana de opciones. Tan solo hay que seleccionar el servicio de Cloudant ya desplegado en IBM Cloud enlazado con las instancias de Node e IoT Platform, y le damos un nombre a la Database.
De vuelta a la consola de IBM Cloud, seleccionaríamos el servicio de Cloudant
Pulsamos sobre Launch Dashboard para abrir la consola
En la consola de Cloudant deberíamos ver la base de datos generada. Si pulsamos sobre esta se abrirá una vista de tabla con los mensajes recibidos.
En esta nueva vista, podemos filtrar y visualizar los mensajes
Si pulsamos sobre cualquiera de los mensajes, podemos ver el formato Json con la información del dispositivo y de la plataforma.
Este es un ejemplo de cómo a través de una pequeña app cloud en Node-RED, vinculada a Watson IoT Platform hemos sido capaz de modificar el funcionamiento de un dispositivo conectado así como también realizar una persistencia de los datos en una base en la nube.
A continuación se integrará la aplicación de IoT con herramientas de analítica de datos para su aprovechamiento.
3.1. Modificación flujo Node-RED
Seguimos los siguientes pasos para conectar la aplicación Node-RED con un entorno de modelado analítico:
Volvemos al entorno de Node-Red
En el buscador, escribimos change y lo arrastramos al tablero.
Borramos la conexión entre los nodos de IBM IoT App In y Node-red-data y entre msg.playload
Reconectamos los nodos de IBM IoT App In con change y este con Node-red-data y msg.playload
Hacemos doble click sobre el nodo de set.msg.playload para abrir la configuración
Dejamos el primer campo como playload y cambiamos el de más abajo a expression
Introducimos el siguiente código:
Pulsamos sobre Deploy y si el sensor está detenido, lo reactivamos.
Si hemos seguido los pasos correctamente, en debug deberán aparecer los nuevos mensajes ya filtrados para su posterior carga y análisis.
3.2. Configuración Watson Studio
Volvemos a la consola de IBM Cloud
Dentro de Servicios buscamos la instancia de Cloudant y pulsamos sobre su nombre.
En la nueva ventana pulsamos sobre Service credentials
Pulsamos sobre New credential
Nombramos la credencial con un nombre único y pulsamos sobre Add
Una vez creada la credencial, desplegamos con el botón de la flecha para ver su contenido y lo copiamos para su posterior consulta.
Volvemos al catálogo y buscamos Watson Studio, pulsamos sobre el.
Procedemos a crear el servicio.
Como puntos a tener en cuenta:
En la ventana siguiente pulsamos sobre Get Started
En la nueva ventana pulsamos sobre New Project
Entre las dos opciones, elegimos la de Create an empty project
Damos un nombre al proyecto
Y pulsamos sobre Add
En la ventana emergente, pulsamos en Create
Pulsamos sobre Refresh
Y una vez que aparezca el servicio que acabamos de crear podemos pulsar sobre Create
3.3. Conexión Cloudant con Notebook
En la página del Proyecto, pulsamos sobre Add to Project +
En el desplegable pulsamos sobre Notebook
Le damos nombre al notebook
Como runtime seleccionamos Default Spark Python 3.6
Pulsamos en Create
Nota!
Los campos CLOUDANT_HOST, CLOUDANT_USERNAME y CLOUDANT_PASSWORD deben modificarse con las credenciales de Cloudant.
Una vez hecho correr esas dos instrucciones, habremos importado los datos a una tabla.
A partir de aquí es posible tratar los datos tanto en batch como en streaming.
Resumen
El propósito de este tutorial no es otro que familiarizarse con la nube pública de IBM, su plataforma de Internet de las Cosas así como alguno de sus servicios de Inteligencia Artificial y Analítica de datos.
Enlaces relacionados
https://www.ibm.com/cloud/internet-of-things
https://www.ibm.com/cloud/watson-studio
https://cloud.ibm.com/catalog/services/internet-of-things-platform#about