Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Esp8266 iothub Azure data analysis in real time

194 views

Published on

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

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Esp8266 iothub Azure data analysis in real time

  1. 1. Analizar datos en tiempo real integrando sensores, NodeMCU y Azure Leonardo Micheloni
  2. 2. Antes de empezar • Agradecimientos • José Ángel • The Cube • Asistentes • Sorteo • Foto + #IoTAzure + @leomicheloni
  3. 3. Presentación • Leonardo Micheloni • Argentino • Developer • Microsoft MVP • Técnico en electrónica
  4. 4. Objetivo • Realizar un ejemplo sencillo • Que cualquiera puede realizar en su casa • Vamos a ver teoría • Código • Una Demo
  5. 5. Agenda • Escenario • Dispositivos, elementos de la solución • Teoría • Ejemplos • Demo • Preguntas
  6. 6. ¿Qué es IoT? • Internet of things • Conectar dispositivos a internet • Actual sobre ellos o en consecuencia de lo que informan • Aplicaciones infinitas
  7. 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. 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. 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
  10. 10. NodeMCU ESP8266-12E V3
  11. 11. Ventajas • Es barato • Es potente • Consumen poco energía • Compatible con Arduino • Se puede programar en LUA o C
  12. 12. Diagrama
  13. 13. Código
  14. 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. 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
  16. 16. Quotas
  17. 17. Diagrama
  18. 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
  19. 19. Stream de datos
  20. 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. 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
  22. 22. Ejemplos de queries
  23. 23. Diagrama
  24. 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. 25. Bases de datos transaccionales • Teorema ACID • Atomicidad • Consistencia • Aislación • Durabilidad
  26. 26. Teorema CAP
  27. 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. 28. CosmosDB • Se puede consultar por medio de una API REST • Se pueden crear funcione y stored procedures con Javascript
  29. 29. Diagrama
  30. 30. Presentación de datos • Aplicación en .NET Core • Usa el SDK de Cosmos para .NET Core • Un poco de Javascript en la UI
  31. 31. Diagrama
  32. 32. Código
  33. 33. Demo
  34. 34. Preguntas?
  35. 35. Gracias!!!
  36. 36. Referencias • http://nodemcu.com/index_en.html • https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-scaling • https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-mqtt- support • http://www.instructables.com/id/Programming-ESP8266-ESP-12E- NodeMCU-Using-Arduino-/ • https://pubsubclient.knolleary.net/ • https://github.com/esp8266/Arduino/issues/584 • http://www.radupascal.com/2016/04/03/esp8266-arduino-iot-hub • https://github.com/leomicheloni/NodeMCU-Azure

×