Slides from talk about NodeMCU + IoThub + Stream Analytics + CosmosDb
https://www.meetup.com/es-ES/IoT-un-mundo-conectado/events/247094054/
Sample Code is here https://github.com/leomicheloni/NodeMCU-Azure
6. ¿Qué es IoT?
• Internet of things
• Conectar dispositivos a internet
• Actual sobre ellos o en consecuencia
de lo que informan
• Aplicaciones infinitas
7. Ejemplo de aplicaciones
• Monitorización remota de campos
• Monitorización remota de flotas de vehículos
• Datos de clima, contaminación
• Domótica
• Retail
• Medicina
• Drones
• Blockchain
http://www.sensegrow.com
8. Componentes
• Dispositivo de captura y actuación
• Recepción de datos: Recibir desde los dispositivos.
• Procesamiento: Leer, agrupar, analizar, sumarizar, etc.
• Persistencia: Guardarlos para mostrarlos, tener históricos.
• Presentación: Mostrar los datos y actuar en consecuencia
Dispositivo
Recepción
• Persistencia
Análisis
• Persistencia
Presentación
• Comandos
9. Dispositivo
• En general es buena idea que el dispositivo haga
poco.
• Vamos a usar NodeMCU ESP8266-12E
• Un kit de desarrollo basado en ESP8266-12E para IoT
• 32b / RISC / 64KB
• Un firmware open source
• Hardware similar a Arduino
• 10 GPIO
• PWM
• I2C / SPI
• 10 bits ADC
• WIFI 802.11g/b/n – WEP / WPA / WPA2
• UART
14. Recepción / captura de datos
• Desafíos
• Diferentes tasas de arribo
• Diferentes velocidades
• Pueden haber picos de demanda
• Los datos pueden ser diferentes
• Comunicaciones intermitentes
• Pueden haber millones de dispositivos
15. Azure IoT Hub
• Servicio en la nube para recibir eventos optimizado para IoT
• Transferencia de ficheros
• Permite definir dispositivos
• Permite definir diferentes permisos por dispositivo
• Soporta MQTT 3.1.1, HTTPS y AMQP 1.0
• Custom endpoints para ruteo
• SDK: C, Python, Java, Node.js, .NET.
• Soporta retención de mensajes hasta 7 días y 30 de historia
18. Manipulación de datos
• Desafíos
• Los datos son un Stream
• Tienen diferentes tasas de arribo
• Tienen diferentes velocidades
• Intermitencias
• Diferentes formatos
http://www.vidyatech.com
20. Stram Analytics
• Es un servicio en la nube
• Permite procesar datos en tiempo real
• Utilizando una query al estilo SQL
• Permite agrupar y hacer operaciones a partir de ventanas de
tiempo
• Se puede conectar directamente a IoTHub
21. Stram Analytics
• Consta de 3 partes
• Entradas
• Query
• Salidas
• Entradas:
• Event hubs
• IoTHub
• Colas
• Salidas:
• Event hubs
• Stream
Analytics
• Bases de datos
Input Query Output
24. Persistencia
• Necesitamos guardar muchos datos
• Las bases de datos transaccionales son buenas para datos
transaccionales
• En este caso no necesitamos ninguna de sus ventajas
• Necesitamos velocidad
• No nos interesa tanto la consistencia
25. Bases de datos transaccionales
• Teorema ACID
• Atomicidad
• Consistencia
• Aislación
• Durabilidad
27. CosmosDB
• Base de datos como servicio
• Multimodelo (columnas, documents, grafos, key value
• Escalable a nivel global
• Multi API
• SQL
• Mongo
• Gremlin
• Permite elegir el nivel de consistencia
28. CosmosDB
• Se puede consultar por medio de una API REST
• Se pueden crear funcione y stored procedures con Javascript