• No se han encontrado resultados

Diseño de una Plataforma Iot para Sensores Industriales

N/A
N/A
Protected

Academic year: 2020

Share "Diseño de una Plataforma Iot para Sensores Industriales"

Copied!
48
0
0

Texto completo

(1)

(2) DISEÑO DE UNA PLATAFORMA IoT PARA SENSORES INDUSTRIALES.. JHON GILBERTO CASALLAS BERNAL.. UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD TECNOLÓGICA INGENIERÍA EN CONTROL BOGOTÁ D.C 2018..

(3) DISEÑO DE UNA PLATAFORMA IoT PARA SENSORES INDUSTRIALES.. JHON GILBERTO CASALLAS BERNAL. Trabajo de grado presentado como requisito para optar al título de INGENIERO EN CONTROL. Director Ing. EDUARDO ALBERTO DELGADILLO GOMEZ. UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD TECNOLÓGICA INGENIERÍA EN CONTROL BOGOTÁ D.C 2018..

(4) TABLA DE CONTENIDO INTRODUCCIÓN. 9. ANTECEDENTES. 10. Breve historia de la tecnología IoT. 10. OBJETIVOS. 12. General. 12. Específicos.. 12. JUSTIFICACIÓN. 13. PLANTEAMIENTO DEL PROBLEMA. 14. MARCO TEÓRICO. 15. ¿Qué es Fi-ware?. 15. Fi-ware, precursor de ciudades inteligentes. 15. ¿Qué es el estándar Fi-ware NGSI?. 15. Dispositivo Wifi ESP8266EX. 16. Características. 16. Consumo de Corriente. 17. Memoria. 18. Puertos de comunicación. 18. Protocolo MQTT. 19. ¿Qué es Bootstrap?. 19. Base de datos. 20. Ejemplos de bases de datos NoSQL. 22. Machine Learning. 22. METODOLOGÍA. 23. Integración de Elementos y Elaboración de Iot.. 23. Esquema General. 23. Esquema Especifico. 25. DESARROLLO. 27. Creación de la Plataforma Iot para Sensores Industriales. 27. Conexión física del Módulo Wi-fi ESP8266. 27. Configuración del Módulo Wi-fi ESP8266. 28. Conexión AWS con el Módulo ESP8266. 28. Configuración una base de datos DynamoDB en Amazon AWS. 34. Creación del Entorno Web. 36.

(5) CONCLUSIONES. 43. BIBLIOGRAFÍA. 44. Anexo 1 Fichero Led_Funcional_AWSyMQTTCloud.ino. 45.

(6) LISTA DE TABLAS Tabla 1 Principales características del módulo ESP8266EX¡Error! Marcador no definido. Tabla 2 Consumos de corriente en los diferentes modos de funcionamiento ¡Error! Marcador no definido. Tabla 3 Opciones a seleccionar para la política de grupo¡Error! Marcador no definido..

(7) LISTA DE FIGURAS Figura 1 Diferentes presentaciones del módulo ESP8266. .................................. 16 Figura 2 ESP8266-01 con memoria flash y chip .................................................. 16 Figura 3 Esquema de la configuración del protocolo MQTT................................. 19 Figura 4 Bases de datos clave –valor (Izquierda), Base de datos documentales (Derecha) .............................................................................................................. 21 Figura 5 Bases de datos en grafo ....................................................................... 21 Figura 6 Ejemplos de bases de NosQL ................................................................ 22 Figura 7 Esquema Machine Learning................................................................... 22 Figura 8 Esquema de bloques Solución.g ............................................................ 23 Figura 9 Esquema específico de la solución. ....................................................... 25 Figura 10 Descripción del esquema de envió de información de CloudMQTT. .... 26 Figura 11 Conexiones Modulo ESP8266 ............................................................. 27 Figura 12 Estructura del fichero Led_Funcional_AWSyMQTTCloud.ino. ............. 28 Figura 13 Servicios disponibles en la plataforma AWS. ....................................... 29 Figura 14 En la parte superior entorno AWS IoT, en la inferior, registro del nombre de la 'Cosa' en AWS IoT........................................................................................ 30 Figura 15 Parámetros generados por la plataforma AWS IoT. ............................. 30 Figura 16 Interfaz para la creación de grupos y políticas de usuarios de la plataforma AWS .................................................................................................... 31 Figura 17 Ventana de creación de Grupos ........................................................... 32 Figura 18 Opciones a seleccionar para la política de grupo ................................. 33 Figura 19 Opciones seleccionadas ...................................................................... 33 Figura 20 Pantalla final donde se muestra el Access Key ID y Secret Acces key del usuario creado}................................................................................................ 34 Figura 21 Servicios disponibles en la plataforma AWS ........................................ 34 Figura 22 Entorno de creación de bases de datos de la plataforma AWS ........... 35 Figura 23 Entorno AWS IoT ................................................................................. 35 Figura 24 Estructura de la norma configurada ..................................................... 36 Figura 25 Configuración de los valores asociados a la tabla principal de la base de datos. .................................................................................................................... 36 Figura 26 Entorno de creación de usuarios .......................................................... 37 Figura 27 Entorno para creación de grupos y políticas. ....................................... 37 Figura 28 Configuración de políticas de usuario. ................................................ 38 Figura 29 Código para la política de usuario ........................................................ 38 Figura 30 Código para la política de usuario insertado en la plataforma AWS .... 39 Figura 31 Pantalla final donde se muestra el Access Key ID y Secret Acces key del usuario creado ................................................................................................. 39 Figura 32 Pantalla Inicio en la aplicación con un solo sensor .............................. 40.

(8) Figura 33 Pantalla Inicio en la aplicación con distintos sensores enviando datos a la plataforma.......................................................................................................... 40 Figura 34 Pantalla con la tabla de datos enviados a la aplicación ....................... 41 Figura 35 Pantalla gráfica de datos en el tiempo seleccionado............................ 41 Figura 36 Pantalla gráfica de datos en el tiempo seleccionado............................ 42 Figura 37 Pantalla de envío de datos a los dispositivos enlazados con la plataforma ............................................................................................................. 42.

(9) INTRODUCCIÓN El presente proyecto aplica las características generales de la denominada “Internet de las Cosas” (Internet of Things, IoT abreviación más utilizada para el termino) en un sistema orientado a la medición de variable propias de un ambiente industrial. El IoT ha evolucionado de forma continua debido al avance en el desarrollo de dispositivos de comunicación que facilitan la conexión o acceso a Internet ,así como la aparición de sistemas de identificación electrónicos capaces de compartir información sobre los objetos a los cuales se encuentran asociados. La aplicación de esta tecnología posibilita nuevas interacciones ya sea en el hogar, en ambientes industriales o comunitarios diversos, lo que genera un aumento en la información disponible del entorno y de las acciones que se pueden realizar al tener conocimiento de las variables o estados asociados. El IoT se encuentra ubicado dentro del marco de los denominados “sistemas ubicuos” cuyo enfoque es transformar la computación actual donde los sistemas informáticos en general se encuentran inmersos de forma natural en los entornos humanos e interconectados a través de redes inteligentes.

(10) ANTECEDENTES Breve historia de la tecnología IoT El concepto de Internet de las Cosas ( Internet of Things, abreviado IoT) es relativamente reciente, fue introducido por las ideas del ingeniero Mark Weiser investigador de la compañía Xerox, quien en 1991 publica su más conocida obra “The Computer for the 21st Century”[5], en este corto artículo Weiser plantea sus teorías, interpretaciones, y proyecciones de la computación para las siguientes décadas, entre este conjunto de propuestas se incluye la idea de miniaturizar los ordenadores personales hasta hacerlos “invisibles” (imperceptibles al usuario) encajadas en objetos del uso cotidiano a estos sistemas los llamó “Sistemas de Computación Ubicua”, en este momento aplicar esta teoría era demasiado costosa. Los primeros intentos de materializar este “Internet de las Cosas” se realizó por el ingeniero Kevin Ashton quien diseñó y creó el estándar RFID (Radio Frequency Identification) para la empresa Procter & Gamble (P & G) lo que permitía tener un control del stock de suministros en la cadena de producción en 1999 [6]. El uso de dispositivos IoT permiten reducir el consumo de energía, Estos dispositivos mejoran la eficiencia y el factor de potencia a la vez que conservan la energía, ejemplo de estos son los “sistemas de iluminación inteligente”, estos proporcionan un control automático de la iluminacion a traves de luces LED, lo que automatizan la acción de encender y apagar luces según criterios como cuando los residentes abandonan las habitaciones o dejan sus hogares, otro ejemplo son el control inteligente de la temperatura del hogar estos pueden funcionar según las variables climatológicas locales que son consultadas automáticamente varias veces al día y según estas se controla el funcionamientos de la calefacción o el aire acondicionado, normalmente estos sistemas usan aplicaciones móviles para mantener informado al usuario el consumo de energía, a pesar de que el uso de dispositivos “inteligentes” permite un uso más eficiente de la energía como expresa [7], la simple sonorización de edificios no es suficiente para hacer realidad una meta de mejoramiento global del uso energético, los sistemas IoT también deben procesar, gestionar y, sobre todo, analizar los datos relacionados con la energía esto ayudaría a desarrollar servicios finales de distribución que lograrían un impacto real a escala cumpliendo con el el objetivo de la eficiencia energética, no obstante esta propuesta presenta diferentes inconvenientes centrados principalmente en el manejo de la gran cantidad de datos que genere la implementación masiva de dispositivos con las capacidades mencionadas, [8] presenta una metodología basada en big data, en donde gracias a las grandes cantidades de datos que se generar cada vez más en el sector de la energía con la aplicación continua de sensores, transmisión inalámbrica, intercomunicaciones de redes y tecnologías de computación en la nube y tomando la red inteligente como el fondo de la investigación, proporcionamos una revisión sistemática del análisis de big data para la gestión inteligente de la energía..

(11) En los últimos años ha existido una proliferación de sistemas demóticos presentados por diferentes empresas (Google, Amazon, Apple, Philips, IBM), los cuales permiten la conexión y gestión de diferentes dispositivos conectados a distintos entornos del hogar..

(12) OBJETIVOS General Desarrollar una plataforma iot para sensores industriales que permita la integración de distintos protocolos IoT. Específicos.    . Realizar el levantamiento de información del estándar FI-WARE actual. Desarrollar un integrador multiprotocolo IoT similar al estándar IoT. Elaborar un sistema de interfaz de que obtenga datos para su posterior envío a la plataforma. Desarrollar una interfaz de usuario WEB que permita la visualización y envío de datos de los dispositivos IoT conectados..

(13) JUSTIFICACIÓN El proyecto curricular de Ingeniería en control por ciclos propedéuticos de la Universidad Distrital Francisco José de Caldas tiene un plan académico teóricopráctico en base a esto el proyecto aborda un aspecto académico en el cual se realizará la investigación y recolección de información de estándares IoT actuales para posteriormente aplicarlos en el desarrollo de una plataforma de código abierto que impulse el desarrollo este un mercado digital de Smart IoT que permita que una solución desarrollada pueda funcionar en varias industrias sin necesidad de adaptación gracias a su estandarización..

(14) PLANTEAMIENTO DEL PROBLEMA En el mercado industrial y empresarial, las decisiones sobre dónde y cómo invertir en aplicaciones IoT se complica por la fragmentación en los subsectores de la industria y los requisitos de misión crítica de la tecnología. Algunas de las firmas industriales más grandes están invirtiendo miles de millones en sus plataformas IoT, incluyendo Predix de GE, Mindsphere de Siemens y EcoStruxure de Schneider Electric. Aunque las tecnologías de sensores, conectividad y procesamiento en la nube existan la migración de una plataforma a otra tiene un costo gigantesco.Por tanto, es precisa una plataforma que aplique estándar IoT que permita recopilar, gestionar y publicar la información. Siendo clave para las aplicaciones inteligentes donde las apps y soluciones pueden portarse de un cliente a otro sin grandes cambios, reduciendo los costos de implementación y el tiempo de ejecución ante una portabilidad de plataforma o un nuevo cliente..

(15) MARCO TEÓRICO ¿Qué es Fi-ware? Fi-ware es un programa de colaboración europeo que se basa en la colaboración Pública-Privada entre diferentes estados de la unión europea e importantes empresas de telecomunicaciones que busca la creación de iniciativas de código abierto (open source) que impulse la creación de estándares necesarios para la implementación masiva de IoT en la que denominan aplicaciones “Smart” Cualquier aplicación Smart se caracteriza por recoger información relevante denominada “Información de Contexto”, esta información (Actual e Histórica) puede ser visualizada y analizada a gran escala, en sí mismo “FI-WARE” busca impulsar un estándar que funcione para recopilar, gestionar y publicar información de contexto que pueda ser explotado al ser recopilada, un estándar así no existe actualmente y es necesario para la creación de aplicaciones que puedan portarse de un cliente a otro sin ningún problema de compatibilidad ni generar grandes cambios y en esencia permite de forma sencilla la captura de información proveniente de redes de sensores, que eseb diferentes protocoles y lenguajes IoT resolviendo el problema de tratar la información recogida por los sensores y traducirlos a un lenguaje común. Fi-ware, precursor de ciudades inteligentes El ambiente Smart Cities Fi-ware propone un estándar que especifique la forma de recoger información, gestionarla y publicarla lo que permite describir que sucede en la ciudad en cualquier momento en el tiempo, el análisis de esta información permite tomar mejores decisiones ante el control de factores que puedan afectar la calidad de vida que una ciudad ofrece a sus habitantes, Adicionalmente la ciudad puede publicar parte de esa información para que terceros puedan desarrollar aplicaciones o iniciativas empresariales interesantes para el ciudadano, para la economía local y para los procesos productivos de la ciudad. ¿Qué es el estándar Fi-ware NGSI? Fi-ware propone un estándar denominado Fi-ware NGSI para recopilar, gestionar, publicar e informar sobre cambios en la información de contexto, en sí mismo este es una API RESTful (Transferencia de Estado Representacional), a través de HTTP, este permite principalmente tres tipos de intreaccion estos son :  . consultas de una sola vez para información de contexto. suscripciones para actualizaciones de información de contexto (y las notificaciones correspondientes)..

(16) . actualizaciones no solicitadas (invocadas por proveedores de contexto).. Dispositivo Wifi ESP8266EX El ESP8266EX es un circuito integrado que contiene un chip TensilicaL 106 que integra un microcontrolador RISX de 32 Bits, la velocidad de reloj de la CPU es de 80 MHz y puede llegar a un máximo de 160 MHz, su SDK ocupa muy poco espacio en su memoria para la operación de Wi-Fi lo que permite tener un gran margen para el desarrollo de aplicaciones La placa trae integrada la antena, un balun RF, un amplificador de potencia, un amplificador bajo en ruido, filtros y un módulo de gestión de energía. Requiere un mínimo de circuitos externos y está diseñado para ocupar un área mínima de PCB. En el mercado existen gran variedad de placas con el chip ESP8266EX (Figura 1) en general se diferencian en tamaño, cantidad de pines disponibles y memoria flash.. Figura 1 Diferentes presentaciones del módulo ESP8266. Para el desarrollo del proyecto se ha seleccionado la versión 1 del ESP8266 que se observa en la Figura 2. Figura 2 ESP8266-01 con memoria flash y chip. Características.

(17) Las principales características del módulo seleccionado se muestran en la Tabla 1: Tabla 1 Principales características del módulo ESP8266EX Característica CPU Ram. Descripción RISC de 32 bits Tensilica Xtensa LX106 a 80 MHz 45 Kbytes Flash externa de 512 Kb hasta 4 Mb (soporta hasta 16 Mb). Estándar Wi-Fi Voltaje de operación Protocolos de red. IEEE 802.11 b/g/n Wi-Fi 3 -3.6 v IPv4, TCP/UDP/HTTP/FTP. Tamaño. 14.3 x 24.8 mm. Consumo de Corriente La siguiente tabla muestra la entrada de corriente promedio en diferentes modos de operación bajo las siguientes condiciones:     . Suministro de voltaje 3.3 V Temperatura 25 °C Las mediciones se realizaron en el puerto de la antena sin filtro SAW El modo de transmisión fue continuo Ciclo de trabajo al 90%. Tabla 2 Consumos de corriente en los diferentes modos de funcionamiento Modo de funcionamiento Transmitir 802.11b, DSSS1 1 Mbps, POUT=+19.5 dbm Transmitir 802.11b, CCK211Mbps,POUT=+18.5 dbm Transmitir 802.11b, OFDM6 54 Mbps, POUT=+16 dbm Transmitir 802.11n, MCS73 POUT=+14 dbm Recibir 802.11 b, Tamaño de paquete =1024 byte, -80 dbm Recibir 802.11 g, Tamaño de paquete=1024 byte, -70 dbm Recibir 802.11n, Tamaño de paquete=1024 byte, -65 dbm Modem Dormido Sueño ligero Modo de ahorro de energía DTIM 1. Corriente [mA] 212 195 140 136 59 62 61 11 0.45 1.2.

(18) Modo de ahorro de energía DTIM 2 Sueño profundo (RTC) Apagado total Nota: *Valores en µA. 0.9 10* 0.5*. Memoria La memoria RAM del módulo ESP8066 disponible es menor a 45 Kb cuando este se encuentra conectado al router, el modulo cuenta con una memoria ROM de 80 Kbit lo que permite que el programa del usuario sea almacenado en el modulo Puertos de comunicación Los puertos de comunicación que vienen integrados en el chip ESP8266 para su uso son los siguientes: UART: La velocidad máxima de trasmisión máxima es de 115200 baudios (4.5 Mbps) El puerto UART0 puede ser usado para comunicación de otros dispositivos, este es compatible con el control de flujo. UART1 cuenta con una única señal de transmisión de datos (Tx), Por defecto, UART0 mostrará información almacenada en el buffer cuando el dispositivo está encendido y se está iniciando. La velocidad de transmisión de la información grabada está estrechamente relacionada con la frecuencia del oscilador de cristal externo. Si la frecuencia del oscilador de cristal es de 40 MHz, entonces la velocidad de transmisión es de 115.200 baudios; si la frecuencia del oscilador de cristal es de 26MHz, entonces la velocidad de transmisión es de 74880 baudios I2S: El módulo cuenta con una interfaz de entrada y una de salida, se usan en aplicaciones que recopilan, procesan, y transmiten datos de audio la funcionalidad I2S se puede aprovechar mediante programación de software, los GPIOs que se utilizarán se multiplexan. I2C: El ESP8266 cuenta con 3 puertos I2C, un maestro/esclavo de propósito general, un esclavo SDIO/SPI, y un maestro/esclavo de propósito general. Las funciones de los pines correspondientes se pueden implementar a través de hardware. Los puertos SPI pueden ser activados a través de la programación de software..

(19) Protocolo MQTT (Message Queue Telemetry Transport) es un protocolo utilizado para la comunicación “Machine to Machine” (M2M) extendido en los sistemas IoT orientado a la transmitir información de sensores debido a que consume poco ancho de banda y puede ser implementado en dispositivos con limitaciones de hardware, La arquitectura MQTT está configurada bajo una topología de tipo estrella con un nodo central que hace de servidor (Broker), El broker gestiona la red y transmite los mensajes, para que no se inactive el canal los clientes envían de forma periódica un paquete (Pingreq) y quedan a la espera de una respuesta del broker (Pingresp) normalmente la comunicación es cifrada, esta configuración se visualiza en la Figura 3.. Figura 3 Esquema de la configuración del protocolo MQTT.. ¿Qué es Bootstrap? Bootstrap es un framework creado internamente por twitter desarrollado por los programadores Mark Otto y Jacob Thornton originalmente llamado Twitter Blueprint hasta que se lanzó como un proyecto de código abierto el 19 de agosto de 2011 y publicado en GitHub. Boostrap permite simplificar la maquetación de sitios web, además de ser compatible con preprocesadores como Less y Saas, ofrece las herramientas para sitios web se vea bien en toda clase de dispositivos (sitios web responsive). El sistema de rejilla y el diseño receptivo vienen de serie con un diseño de cuadrícula de 1170 píxeles de ancho. Alternativamente, el desarrollador puede usar un diseño de ancho variable. Para ambos casos, el juego de herramientas tiene cuatro variaciones para hacer uso de diferentes resoluciones y tipos de dispositivos: teléfonos móviles, retratos y paisajes, tabletas y computadoras de baja y alta resolución. Cada variación ajusta el ancho de las columnas, además posee librerías CSS en estas se encuentran un gran número elementos ya.

(20) desarrollados y listos para ser utilizados como pueden ser botones, menús, cuadros e incluso un amplio listado de tipografías las principales ventajas de este framework son las siguientes:   . Fácil e intuitivo: posee una corta curva de aprendizaje. Compatibles con todos los navegadores: Bootstrap es compatible con la mayoría de navegadores web del mercado. Optimizado para dispositivos móviles: hace que la página web se adapte dinámicamente a la gran mayoría de pantallas y resoluciones existentes en el mercado.. Base de datos . NoSQL. Son muchas las aplicaciones web que utilizan algún tipo de bases de datos para funcionar. Hasta ahora estábamos acostumbrados a utilizar bases de datos SQL como son MySQL, Oracle o MS SQL, pero desde hace ya algún tiempo han aparecido otras que reciben el nombre de NoSQL (Not only SQL – No sólo SQL) y que han llegado con la intención de hacer frente a las bases relacionales utilizadas por la mayoría de los usuarios. Las bases de datos NoSQL son sistemas de almacenamiento de información que no cumplen con el esquema entidad–relación. Tampoco utilizan una estructura de datos en forma de tabla donde se van almacenando los datos, sino que para el almacenamiento hacen uso de otros formatos como clave–valor, mapeo de columnas o grafos (ver epígrafe ‘Tipos de bases de datos NoSQL’). Hablar de bases de datos NoSQL es hablar de estructuras que nos permiten almacenar información en aquellas situaciones en las que las bases de datos relacionales generan ciertos problemas debido principalmente a problemas de escalabilidad y rendimiento de las bases de Ventajas de los sistemas NoSQL Esta forma de almacenar la información ofrece ciertas ventajas sobre los modelos relacionales. Entre las ventajas más significativas podemos destacar: . Se ejecutan en máquinas con pocos recursos: Estos sistemas, a diferencia de los sistemas basados en SQL, no requieren de apenas computación, por lo que se pueden montar en máquinas de un coste más reducido..

(21) .  . Escalabilidad horizontal: Para mejorar el rendimiento de estos sistemas simplemente se consigue añadiendo más nodos, con la única operación de indicar al sistema cuáles son los nodos que están disponibles. Pueden manejar gran cantidad de datos: Esto es debido a que utiliza una estructura distribuida, en muchos casos mediante tablas Hash. No genera cuellos de botella: El principal problema de los sistemas SQL es que necesitan transcribir cada sentencia para poder ser ejecutada, y cada sentencia compleja requiere además de un nivel de ejecución aún más complejo, lo que constituye un punto de entrada en común, que ante muchas peticiones puede ralentizar el sistema.. Tipos de bases de datos NoSQL Dependiendo de la forma en la que almacenen la información, nos podemos encontrar varios tipos distintos de bases de datos NoSQL. Veamos los tipos más utilizados. Fi. Figura 1. Figura 2. Figura 4 Bases de datos clave –valor (Izquierda), Base de datos documentales (Derecha). Figura 5 Bases de datos en grafo.

(22) Ejemplos de bases de datos NoSQL. Figura 6 Ejemplos de bases de NosQL Machine Learning Machine Learning es una disciplina científica del ámbito de la Inteligencia Artificial que crea sistemas que aprenden automáticamente. Aprender en este contexto quiere decir identificar patrones complejos en millones de datos. La máquina que realmente aprende es un algoritmo que revisa los datos y es capaz de predecir comportamientos futuros. Automáticamente, también en este contexto, implica que estos sistemas se mejoran de forma autónoma con el tiempo, sin intervención humana.. Figura 7 Esquema Machine Learning.

(23) METODOLOGÍA Integración de Elementos y Elaboración de Iot. Esquema General En la figura 4 se muestra el esquema general de la solución propuesta. Los bloques identifican cada uno de los componentes principales de la solución. Los componentes principales de los dispositivos de medición son los siguientes: Dispositivo de conexión de red: Es el módulo encargado establecer las conexiones de red inalámbricas a través de Wi-Fi, así como de hacer el envío y recepción de datos. Corresponde al módulo ESP8266-01 el cual se ha detallado en el capítulo 4. La comunicación a la terminal se efectúa a través de un puerto compatible con UART configurado a una velocidad de 115200 baudios (la más alta soportada por el ESP8266). Interface: Es el encargado de hacer las mediciones y actuar ante las variables de interés en cada uno de los dispositivos.. Figura 8 Esquema de bloques Solución.g AUTENTICACIÓN: Esta etapa se encarga de validar las credenciales proporcionadas por los dispositivos y verificar qué políticas tiene asociadas al usuario. HOSTING: Se encarga proveer un espacio de almacenamiento para la aplicación Web.

(24) ALMACENAMIENTO: Esta etapa se encarga de almacenar los datos transmitidos por el dispositivo en una base de datos.IoT: Esta etapa es un servicio de Amazon el cual se encarga de la creación y almacenamiento de dispositivos IoT. SOCKET MQTT: Esta etapa se encarga de enviar datos a los dispositivos conectados a la plataforma. SENSOR: Es un dispositivo que está capacitado para detectar acciones o estímulos externos y responder en consecuencia. Actuador: Es un dispositivo capaz de transformar energía hidráulica, neumática o eléctrica en la activación de un proceso con la finalidad de generar un efecto sobre un proceso APLICACIÓN WEB: se encarga de visualizar de forma gráfica los datos almacenados en la base de datos en la nube. INTERFAZ: Esta etapa es capaz de transformar las señales generadas por un dispositivo en señales comprensibles por otro.Esto por un Microcontrolador que es el componente central, quien efectúa todos los procesos de control de la medición así como la transmisión y recepción de datos a través del dispositivo de conexión inalámbrica. Fuente de energía: El sistema de obtención de energía para el funcionamiento del objeto IoT es el que tiene más variaciones entre el dispositivo de medición de consumo de agua y la energía eléctrica. Mientras que en el dispositivo de medición de agua la fuente de energía es una batería de litio de 3.7 V, el dispositivo de medición eléctrico utiliza una pequeña fuente conmutada, completamente aislada, con una salida de voltaje de 9 voltios capaz de suministrar una corriente de hasta 450 mA (el consumo máximo del ESP8266 es de 250 mA). Dicha fuente se ha adquirido específicamente para este proyecto..

(25) Esquema Especifico. Figura 9 Esquema específico de la solución. Sensor: Dispositivo que capta magnitudes físicas (variaciones de luz, temperatura, sonido, etc.) u otras alteraciones de su entorno. Microcontrolador: Circuito programable capaz de captura los datos enviando por el sensor o el servidor y ejecutar una acción según sea el caso. Router: Dispositivo que proporciona conectividad a nivel de red. AWS: Amazon Web Services (AWS) es la plataforma de servicios en la nube que ofrece potencia de cómputo, almacenamiento en bases de datos, entrega de contenido y otra funcionalidad para ayudar a la solución. IAM: Identity and Access Management (IAM) permite administrar el acceso a los servicios y recursos del server en AWS de manera segura. IoT Core: Es una plataforma en la nube administrada que permite a los dispositivos conectados interactuar con facilidad y seguridad con las aplicaciones en la nube y otros dispositivos. DynamoDB: Es un servicio de base de datos NoSQL rápido y flexible para todas las aplicaciones que requieren latencias constantes y de meros milisegundos a cualquier escala. Aplicación Web Es una herramienta que los usuarios pueden utilizar para acceder a la información almacenada un servidor web a través de internet o de una intranet mediante un navegador..

(26) MQTT Broker o Cloud MQTT: Es un servicio Mosquitto administrado en la nube de amazon. Mosquitto implementa el protocolo MQ Telemetry Transport, MQTT, que proporciona métodos ligeros para llevar a cabo mensajes utilizando un modelo de cola de mensajes de publicación / suscripción.. Figura 10 Descripción del esquema de envió de información de CloudMQTT.. Actuador: Es un dispositivo capaz de transformar energía hidráulica, neumática o eléctrica en la activación de un proceso con la finalidad de generar un efecto sobre un proceso. S3: Amazon Simple Storage Service (S3) es un servicio de almacenamiento para Internet. Se encarga del hosting de la aplicación Web y su acceso al público..

(27) DESARROLLO Creación de la Plataforma Iot para Sensores Industriales Para crear la interfaz de usuario la cual pueda ser accedida desde cualquier tipo de dispositivo (PC, Tablet, Teléfono móvil) por medio de internet es necesario de forma básica seguir los siguientes pasos: . Configurar el dispositivo (Modulo ESP8266) para que acceda a la red y se comunique con la base de datos creada de AWS.. . Conexión del sensor con el dispositivo.. . Registrar el hardware en Amazon IoT para que el dispositivo puede ser una 'cosa' en la nube de Amazon IoT.. . Crear una base de datos DynamoDB en Amazon AWS para almacenar las lecturas del sensor.. . Configurar una página web para leer los datos de DynamoDB para presentarlos al usuario.. Conexión física del Módulo Wi-fi ESP8266. Figura 11 Conexiones Modulo ESP8266.

(28) Configuración del Módulo Wi-fi ESP8266 El módulo ESP8266 es configurado al descargar en el mismo un fichero personalizado con la configuración de acceso a la red, diferentes direccionamientos y claves de acceso a la plataforma AWS. Además, es necesario utilizar un conjunto de librerías para que el código sea correctamente ejecutado. El código utilizado se puede visualizar en el Anexo 1 Fichero Led_Funcional_AWSyMQTTCloud.ino. La estructura del fichero se observa en la figura 12.. Figura 12 Estructura del fichero Led_Funcional_AWSyMQTTCloud.ino. Conexión AWS con el Módulo ESP8266 Para realizar la conexión entre el módulo ESP8266 y la plataforma AWS son necesario los siguientes elementos:    . Cuenta activa en la plataforma AWS (Amazon Web Services) Conexión a internet inalámbrica El software Arduino IDE Computador y cable USB tipo A – Micro usb. Para iniciar la conexión se debe conectar el módulo ESP8266 al computador mediante el cable UBS correspondiente e iniciar el software Arduino IDE, este reconocerá el módulo conectado si está correctamente configurado correctamente. A continuación, se debe abrir el navegador web e ingresar a la página de la plataforma AWS (aws.amazon.com) ingresar los datos correspondientes usuario y contraseña..

(29) Al acceder a la plataforma se debe ingresar a la consola de contror (Console), desplegar la lista de servicios disponibles y acceder al módulo para integración de IOT la ubicación de esta opción se observa en la figura 13.. Figura 13 Servicios disponibles en la plataforma AWS. Al seleccionar este entorno se redireccionará a una página donde se agregará el hardware (Things) con la que interactuará la plataforma a e, básicamente se crea una etiqueta que contendrá el nombre con el que se identificara el hardware (En este caso ioTTestDevice) para crear un registro de esta, lo anteriormente descrito se observa en la figura 14..

(30) Figura 14 En la parte superior entorno AWS IoT, en la inferior, registro del nombre de la 'Cosa' en AWS IoT Al dar clic en Create thing la plataforma configura automáticamente diferentes aspectos como lo es el ARN (Amazon Resource Name) el end point para el protocolo HTTPS y los direccionamientos de los topics del protocolo MQTT, estos se observan en la figura 15.. Figura 15 Parámetros generados por la plataforma AWS IoT..

(31) Estos son necesarios para la configuración del módulo ESP8266 puesto que se ubican como parámetros de configuración del fichero descargado en el modulo. Una vez registrado el hardware es necesario crear la configuración de seguridad que permita una comunicación e interacción entre el hardware (modulo ESP8266) y la plataforma de forma segura. Para esto de nuevo en la consola de servicios hay que dirigirse al servicio “security, identity compliance” en este apartado se crearán los usuarios grupos “Politicas” permisos y claves para una comunicación segura entre el módulo y la plataforma. Al ingresar al entorno es necesario crear un usuario (User name) en este caso “IoTTestUser” el cual tendrá asociado una identificación de acceso única (Access key ID) y una clave de accesos (secret Access key) al dar clic en “Next permissions” el sistema permite agregar permisos y restricciones al usuario creado o agregar dicho usuario un grupo que ya tenga estas políticas de conexión creadas la ubicación de estas opciones se observa en la Figura 16.. Figura 16 Interfaz para la creación de grupos y políticas de usuarios de la plataforma AWS.

(32) En este caso se creará un nuevo grupo (Dar clic en “Create group”) en la nueva venta que se despliega Figura 18, se nombra el grupo en este caso “IotDevicesGroup” y al ser un grupo nuevo no tiene normas de acceso definidas para crearlas hay que dirigirse al botón “Create policy” esto re direccionara la página al entorno de genracion de policías ( Policy generator ).. Figura 17 Ventana de creación de Grupos En el cual se deben seleccionar las opciones mostradas en la tabla 4 o en la figura 18. Tabla 3 Opciones a seleccionar para la política de grupo Tag de acción Effects AWS Service Actions Amazon Resource Name (ARN). Opción a elegir All AWS IoT 1 Action(s) Selected ARN creado al momento de registrar el hardware.

(33) Figura 18 Opciones a seleccionar para la política de grupo Al dar clic en el botón “add statement” la política de conexión se crea generando n nombre por defecto (Policy Name), y un código con las opciones seleccionadas anteriormente como se ve en la imagen. Figura 19 Opciones seleccionadas Cuando se oprime el botón “crate Policy” el sistema redirecciona a la página de gestión de grupos y usuarios en esta finalmente se da clic en “Nect Review ” lo que permite dar por terminado la creación del usuario La página es redirigida y al usuario creado se le asigna por defeco una identificación de acceso única (Access key ID) y una clave de accesos (secret Access key) como se observa en la figura 20..

(34) Figura 20 Pantalla final donde se muestra el Access Key ID y Secret Acces key del usuario creado} Configuración una base de datos DynamoDB en Amazon AWS Para crear y configurar la base de datos dentro de la plataforma AWS solo es necesario tener acceso a internet, se debe abrir el navegador web e ingresar a la página de la plataforma AWS (aws.amazon.com) ingresar los datos correspondientes usuario y contraseña y acceder al servicio de DynamoDB del apartado de bases de datos este se observa en la siguiente figura.. Figura 21 Servicios disponibles en la plataforma AWS Este entorno permite crear y gestionar bases de datos, para iniciar solicita el nombre que se le dará a la base de datos y las llaves de consulta primaria en este caso IotData, deviceld (Nombre del dispositivo), timestamp (Hora y fecha del dato registrado) el registro de esta configuración se visualiza en la siguiente figura.

(35) Figura 22 Entorno de creación de bases de datos de la plataforma AWS Después de creada la base de datos se configura el entorno AWS Iot para que la información registrada por el módulo ESP8266 sea registrada en la base de datos, la forma de lograr esto es mediate la creación de una regla (rule), esta regla se configura en el entorno AWS Iot. Figura 23 Entorno AWS IoT Para configurar esta regla se le asigna un nombre, descripción, versión de SQL, y los atributos y tópicos a filtrar (en este caso se utiliza una sentencia SQL que selecciona todos los elementos de la tabla indicada) una vez creada la norma el sistema solicita seleccionar la tabla a la cual será aplicada (IotData), la estructura de la norma planteada en el entorno AWS Iot se observa en la siguiente figura.

(36) Figura 24 Estructura de la norma configurada Al seleccionar la tabla el sistema solicitar configurar los valores con los cuales se llenara la tabla de la base de datos en este caso los posibles valores de sensor y la hora y fecha de captura de los mismos.. Figura 25 Configuración de los valores asociados a la tabla principal de la base de datos. Creación del Entorno Web Se configuro un sitio web que lea por defecto la última hora de datos de la tabla DynamoDB que se creó anteriormente, y mostrar en un gráfico de líneas Chart.js que la variación de los valores registrados por el sensor el sitio web en sí está basado en Bootstrap / jQuery, con un único archivo HTML y un único archivo .js con un script personalizado para crear los gráficos. El alojamiento de la página se.

(37) realizó en Amazon S3, para realizar la consulta de los datos alojados en la base de datos es necesario crear un usuario con permisos de consulta en la plataforma AWS para hacer esto se utiliza el entorno Amazon I AM, proporcione al usuario el nombre que desee, es necesario tener activa la casilla "Acceso programático" Luego haga clic en el botón 'Siguiente: Permisos'.. Figura 26 Entorno de creación de usuarios En la siguiente pantalla, se hace clic en la tercera imagen en la parte superior que dice 'Adjuntar directivas existentes directamente'. Luego se selecciona el botón 'Crear política'.. Figura 27 Entorno para creación de grupos y políticas..

(38) Al hacer esto se desplegará una nueva pantalla en la cual se selecciona “Crear su propia política".. Figura 28 Configuración de políticas de usuario. El código que se debe insertar para crear la nueva política se observa en las Figuras 29 y 30 { "Version": "2012-10-17", "Statement": [ { "Sid": "ReadOnlyIoTDataTable", "Effect": "Permitir", "Acción": [ "dynamodb: DescribeTable", "dynamodb: Query"] ", " dynamodb: Scan " ], " Recurso ":" < ARN DynamoDB > " } ] } Figura 29 Código para la política de usuario.

(39) Figura 30 Código para la política de usuario insertado en la plataforma AWS Al regresar a la página de creación de usuarios se aplique esta política al usuario y se generan las credenciales de conexión (Access key ID y Secret Acces key) estos serán usados en script del entorno web. Figura 31 Pantalla final donde se muestra el Access Key ID y Secret Acces key del usuario creado.

(40) Figura 32 Pantalla Inicio en la aplicación con un solo sensor. Figura 33 Pantalla Inicio en la aplicación con distintos sensores enviando datos a la plataforma.

(41) Figura 34 Pantalla con la tabla de datos enviados a la aplicación. Figura 35 Pantalla gráfica de datos en el tiempo seleccionado.

(42) Figura 36 Pantalla gráfica de datos en el tiempo seleccionado. Figura 37 Pantalla de envío de datos a los dispositivos enlazados con la plataforma.

(43) CONCLUSIONES . .  .    . El módulo ESP8266 es una solución económica tanto en el valor del propio chip como en el consumo energético requerido para su funcionamiento que permite un uso versátil para permitir conectar diferentes gamas de sensores a internet. AWS es una excelente opción para la incorporación de dispositivos puesto que permite optimizar los tiempos de configuración de dispositivos o hardware (Módulos WI-FI, sensores, actuadores, etc) al tener soluciones concretas que se utilizan en diferentes niveles al integrar dichos dispositivos a plataformas Iot como la desarrollada en el presente proyecto. Se observó una curva de aprendizaje interesante al momento de manejar un lenguaje de programación como HTML, CSS, Js La base de datos utilizada, NoSQL, no es de las convencionales que se usan actualmente, puesto que ésta es una base más grande, la cual utiliza tablas no relacionadas para que el procesamiento de datos sea más rápido. Esto con el fin de poder aplicar a futuro Machine Learning. Como la NoSQL tiene almacenamiento de mayor capacidad, esto hace que se reduzcan los costos puesto que la demanda de datos también es baja. La NoSQL es una base que se puede migrar a un server propio o a servidores externos como Google o heroku. Con el desarrollo de esta plataforma se tiene la ventaja de poder monitorear y controlar los dispositivos remotamente. El tráfico de datos entre la nube y el dispositivo se realiza por medio del protocolo https el cual es altamente seguro y eso garantiza que los datos no sean alterados por entes externos..

(44) BIBLIOGRAFÍA Hierro, J. (2016). FIWARE, el estándar que necesita el IoT. https://iot.telefonica.com/blog/2016/09/es-fiware-estandar-iot Alaa, M., Zaidan, A. A., Zaidan, B. B., Talal, M., & Kiah, M. L. M. (2017). A review of smart home applications based on Internet of Things. Journal of Network and Computer Applications, 97(August), 48–65. http://doi.org/10.1016/j.jnca.2017.08.017 Zhou, K., Fu, C., & Yang, S. (2016). Big data driven smart energy management: From big data to big insights. Renewable and Sustainable Energy Reviews, 56, 215– 225. http://doi.org/10.1016/j.rser.2015.11.050 Terroso-Saenz, F., González-Vidal, A., Ramallo-González, A. P., & Skarmeta, A. F. (2017). An open IoT platform for the management and analysis of energy data. Future Generation Computer Systems. http://doi.org/10.1016/j.future.2017.08.046 Ashton, K. (2009). That “Internet of Things” Thing. RFiD Journal, 4986. http://doi.org/10.1145/2967977 Weiser, M. (1991). The Computer for the 21st Century. Scientific American. http://doi.org/10.1038/scientificamerican0991-94 Preventis, A., Stravoskoufos, K., Sotiriadis, S., & Petrakis, E. G. M. (2016). IoT-A and FIWARE: Bridging the barriers between the cloud and IoT systems design and implementation. CLOSER 2016 - Proceedings of the 6th International Conference on Cloud Computing and Services Science, 2, 146–153. http://doi.org/10.5220/0005912001460153 Amazon. (2016). AWS IoT. Retrieved from https://aws.amazon.com/pt/iot/ H2020, E. (2016). H2020 - SC1-PM-09-2016 - 6 - additional documents 2 - H2020 WP 2016-7 - general annexes. Eu H2020, 2015(December 2013), 1–28..

(45) Anexo 1 Fichero Led_Funcional_AWSyMQTTCloud.ino #include <ESP8266WiFi.h> #include <AmazonIOTClient.h> #include <ESP8266AWSImplementations.h> #include <PubSubClient.h> const char* mqtt_server = "m11.clxoudmqtt.com"; const uint16_t port = 19603; const char *user_name = "dcfmjydj"; const char *mqtt_password = "X51aHosKh0uD"; const char* ssid = "Nombre de la red"; const char* password = "Contraseña de la red"; const int LED = D3; const int BOTON = D4; Esp8266HttpClient httpClient; Esp8266DateTimeProvider dateTimeProvider; AmazonIOTClient iotClient; ActionError actionError; WiFiClient espClient; PubSubClient client(espClient); char msg[50]; int val = 0; //val se emplea para almacenar el estado del boton int old_val = 0; // almacena el antiguo valor de val int state = 0; // 0 LED apagado, mientras que 1 encendido int HomeIO = 1; //val se emplea para almacenar el estado del boton void initWLAN() { Serial.println(); Serial.print("Conectando a "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } randomSeed(micros()); Serial.println(""); Serial.println("WiFi Conectado");.

(46) Serial.println("IP address: "); Serial.println(WiFi.localIP()); } void initAWS() { iotClient.setAWSRegion("us-east-1"); iotClient.setAWSEndpoint("amazonaws.com"); iotClient.setAWSDomain("a2imeekghuew2f.iot.us-east-1.amazonaws.com"); iotClient.setAWSPath("/things/HomeIO/shadow"); iotClient.setAWSKeyID("AKIAIA2X5GHT65X4NGBQ"); iotClient.setAWSSecretKey("HeOPwLSieuTBZREqpeXTqM6Ut/Da7wJ3cDAWuM 6k"); iotClient.setHttpClient(&httpClient); iotClient.setDateTimeProvider(&dateTimeProvider); } void setup() { Serial.begin(115200); Serial.println("Iniciar"); initWLAN(); Serial.println("wlan Iniciar"); initAWS(); Serial.println("iot inicializado"); client.setServer(mqtt_server,port); client.setCallback(callback); pinMode(LED,OUTPUT); // establecer que el pin digital es una señal de salida pinMode(BOTON,INPUT); // y BOTON como señal de entrada } void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Mensaje recibido ["); Serial.print(topic); Serial.print("] "); for (int i = 0; i < length; i++) { Serial.print((char)payload[i]); } Serial.println(); if((char)payload[0] == '1')// Encienda el LED si se recibe un 1 como primer caracter { snprintf (msg, 75,"1 TRUE"); sendLine(); }.

(47) else{ snprintf (msg, 75,"0 FALSE"); state=0; sendLine(); } } void reconnect() { //Bucle hasta que se vuelva a conectar while (!client.connected()) { Serial.print("Intento de conexion MQTT..."); // Intento de conexion if (client.connect("ESP8266Client",user_name,mqtt_password)) { Serial.println("Conectado"); //Una vez conectado, publique un anuncio ... client.publish("outTopic", "led"); //... y vuelva a suscribirse client.subscribe("HomeIO"); } else { Serial.print("ha fallado, rc="); Serial.print(client.state()); Serial.println("vuelva a intentarlo en 5 segundos"); //Espere 5 segundos antes de volver a intentarlo delay(5000); } } } void sendLine() { char shadow[100]; if (((char)msg[0] == '1')) { digitalWrite(LED, HIGH); // enciende el LED strcpy(shadow, "{\"state\":{\"reported\":{\"test_value2\":1234, \"movement\":\"TRUE\"}}}"); Serial.print(state); } else if (state==1) { digitalWrite(LED, HIGH); // enciende el LED.

(48) strcpy(shadow, "{\"state\":{\"reported\":{\"test_value2\":1234, \"movement\":\"TRUE\"}}}"); Serial.print(state); } else { digitalWrite(LED,LOW); // apagar el LED strcpy(shadow, "{\"state\":{\"reported\":{\"test_value2\":1234, \"movement\":\"FALSE\"}}}"); Serial.print(state); } Serial.print("Publicar mensaje: "); Serial.println(msg); client.publish("led", msg); String path = "/things/"; path = path + "HomeIO";//Nombre Creado en AWS path = path + "/shadow"; char pathbuffer[100]; path.toCharArray(pathbuffer, sizeof(pathbuffer)); Serial.print("inicio\n"); Serial.print(pathbuffer); iotClient.setAWSPath(pathbuffer); Serial.println("Tratando de enviar datos"); char* result = iotClient.update_shadow(shadow, actionError); Serial.print(result); delay(4000); } void loop() { if (!client.connected()) { reconnect(); } client.loop(); val= digitalRead(BOTON); // lee el estado del Boton if (((val == LOW) && (old_val == LOW))) { state=1-state; sendLine(); } old_val = val; // valor del antiguo estado }.

(49)

Figure

Figura  1 Diferentes presentaciones del módulo ESP8266.
Figura  3 Esquema de la configuración del protocolo MQTT.
Figura  6 Ejemplos de bases de NosQL  Machine Learning
Figura  9 Esquema específico de la solución.
+7

Referencias

Documento similar

[r]

Como resultado final se creó una base de datos automatizada para el control de la literatura docente que tendrá un impacto positivo, ya que se logrará rapidez

En este sentido, puede defenderse que, si la Administración está habilitada normativamente para actuar en una determinada materia mediante actuaciones formales, ejerciendo

El objetivo de realizar este tipo de prueba al sistema es garantizar que se ejerciten por lo menos una vez todos los caminos independientes de cada módulo o método, todos

 Para recibir todos los números de referencia en un solo correo electrónico, es necesario que las solicitudes estén cumplimentadas y sean todos los datos válidos, incluido el

• Funcionalidad: A partir del id del co-organizer busca en la tabla “users” de la base de datos tanto los datos personales del co-organizer como el número de eventos que ha

En el caso de realizar una análisis estructural dinámico lineal de un edificio en particular, se necesita disponer de la información correspondiente a las dimensiones en planta y

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas