Soluciones de IoT basadas en Arduino y Microsoft Azure

Soluciones de IoT basadas en Arduino y Microsoft Azure

El Internet de las Cosas, es la revolución que ha permitido cambiar la manera en que las personas perciben el mundo, ha cambiado la forma en que las personas interactúan con el mundo en que viven, el modo en que viajan e inclusive el modo en que interactúan con sus “Cosas”. Estos desarrollos están siendo apoyados por grandes corporaciones como Microsoft, Cisco, IBM, GE, Intel, Google, así como startups. Desde que se inició esta revolución Arduino ha sido parte de la conversación.

Se espera que el mercado de Internet de las Cosas (IoT, por sus siglas en inglés) crezca exponencialmente en los últimos años. La firma de investigación de mercado, Gartner, predice que dentro del mundo de IOT se tendrán desde 25 Billones hasta 200 Billones de dispositivos conectados y generando información de valor que merece ser analizada y procesada por modelos de Análisis de datos y máquinas de aprendizaje y BIG Data.

En esta revolución Microsoft ha apostado desde su plataforma de servicios Cloud – Microsoft Azure, mientras que Arduino con su conjunto de sensores y los módulos Shield Ethernet o Wifi nos permiten tener conexión vía a Internet, inclusive con un tanto más de trabajo, usando el módulo SIM800/900 podremos obtener conexión con plan de datos por 3G.

Creando una solución IOT con Arduino y Microsoft Azure

Para mi caso particular, inicié un proyecto para monitorear vehículos de reparto de alimentos en movimiento, usando los sensores DH22/11 uno más preciso que otro, medí temperatura de la nevera en la que se transporta el alimento, el módulo GY-NE06MV2 para obtener la localización, altura y velocidad de movimiento del vehículo, como copia de respaldo, utilicé el  módulo MiroSD  para almacenar datos en una tarjeta del mismo formato y de este modo almacenar  los  datos  capturados  con  los  sensores, ahora… como publicar o subir lo datos a Internet, decidí usar el  módulo  SIM800ML,  esto  es  un tanto más complejo que usar Ethernet  o  Wifi,  podría  incluso  haber empleado una solución que permitiera usar un móvil como Gateway conectando  todo  por  bluetooth  a un Smart phone y que este con una App móvil subiera los datos a internet,  pero  esto  está  en  contravía  a  algunas de las directivas del proyecto,  entonces…  volvamos  al  uso  de  recursos propios del dispositivo.

Lustración 1 – Anduino Leonardo

¿Una vez ya logro obtener los datos, que inclusive están cargados en la MicroSD, viene el requerimiento, y ese es… como subir esos datos a Internet??, La respuesta el módulo 3G de Arduino, el SIM800ML (Ya había comentado que este fue el que empleé), amando un paquete JSON en Processing (Lenguaje empleado para programar en Arduino).

Hay varios servicios de Azure que reciben datos desde Arduino, sin embargo, vale la pena aclarar que no existen API ni SDK para Arduino propiamente dicho, encontraremos para Adafruit, que es una solución basada en Arduino y que incluye conexión vía wifi, por lo que debemos usar un tanto más de esfuerzo generando el código que permita usar Microsoft Azure como servicio para procesamiento de los datos.

La estructura de datos que genera el dispositivo creado con Arduino en su primera fase es:

Ilustración 2- Estructura de datos del GPS

Subir los datos a Microsoft Azure

Ya sabemos que se ha empleado un Módulo SIM800 para emplear plan de datos de un operador Móvil.

Dentro del conjunto de servicios que posee Microsoft Azure App Services y está compuesto por servicios para aplicaciones móviles, Aplicaciones Web y Logic Apps, de estos podremos hablar en un futuro artículo, para el ejercicio podríamos emplear Azure Mobile Apps, con una Easy table.

Arquitectura de Internet de las Cosas – IOT empleada en Microsoft Azure

IOT arquitectura

Podemos ver en la Ilustración que dentro del ecosistema de IOT en Microsoft Azure hay varios servicios que se pueden utilizar para recibir los datos y procesar los datos que se capturan con los sensores del Arduino, para la solución que yo he implementado, utilicé “IP Capable Devices – IOT Client”, no he empleado un Gateway, pasé directamente a almacenar en un Storage.

Ilustracion 4 – Tablero Stream Analytics

una vez tengo los datos almacenados, podría requerir hacer analítica, o procesarlos por Machine Learning, con la arquitectura provista por Azure esto es posible, pero para mi caso he utilizado Stream Analitycs para recoger los datos del Storage y poder presentarlos en un Dashboard de Power BI (Ilustración 4).

Este servicio requiere que se defina una entrada, una proceso, que básicamente es una consulta SQL y una salida

Ejemplo de consulta Stream Analytics

Ilustración 5 – Dashboard Power BI

En la Ilustración 5 vemos el resultado de los datos procesados por Stream Analytics y enviados a Power BI, estos son los mismos datos obtenidos del dispositivos integrado como solución de Hardware con Arduino.

la salida de Stream Analytics se derivan dos posibles vías, esto es completamente posible creando el servicio Blob Storage en donde los datos procesados van a ser almacenados y a la vez la conexión con Power BI.

 

What other's say about : Soluciones de IoT basadas en Arduino y Microsoft Azure


Jesus Rafael Lopez Ibarra

Jesus Rafael Lopez Ibarra

agosto 4, 2017 Responder

Hola Jaime qué tal

Excelente articulo, que tan difícil fue hacerlo ? Hay carros que lo estén usando todos los días ahorita? O sigue en pruebas?

Cómo lo hiciste con lo de la energía? Tiene alguna pila?

Gracias!!!!

=D

Jaime Ernesto Suarez

Jaime Ernesto Suarez

enero 27, 2018 Responder

Hola, antes de responderte, presento mis disculpas por la demora.
Bien, en el momento tenemos ya la solución implementada con unas compañías de transporte urbano, y como dice el articulo se ha implementado para una empresa de alimentos que requería monitorear varios aspectos de su carga.

En lo que respecta a la alimentación, en un caso se utilizó el sistema eléctrico del carro con las protecciones requeridas, como reguladores y cortadores de picos, en otro usamos un sistema de batería backup, usando de forma primaría el sistema eléctrico del carro y de forma secundaria una batería recargable con lo que se garantizó el keep alive del dispositivo.

Espero que los siguientes artículos sean de interés también.

Gracias por tus comentarios.

@genomma

Eduardo Ramirez

noviembre 29, 2017 Responder

El articulo muy bueno, pero me dejo con las ganas, no quisiera compartir con mas detalle incluyendo el código de todo lo que hizo, gracias

Jaime Ernesto Suarez

Jaime Ernesto Suarez

enero 27, 2018 Responder

Eduardo gracias por tus comentarios.
Quisiera poder compartirlos pero entenderás que por temas relacionados con los NDA con los propietarios de la solución no es posible compartir el código.

@genomma

Deja un comentario


*