Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
DIVISIÓN DE ESTUDIOS DE POSGRADO E INVESTIGACIÓN “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” POR ING.Clarivel Fabela Soto T E S I S PRESENTADO COMO REQUISITO PARCIAL PARA OBTENER EL GRADO DE MAESTRO EN CIENCIAS EN INGENIERÍA ELÉCTRICA DIRECTOR DE TESIS (Dr. Francisco Valdés Peresgazga) CODIRECTOR DE TESIS (Dr. Hesner Coto Fuentes) ISSN: 0188-9060 RIITEC:(15) -TMCIE - 2020 Torreón, Coahuila. México Enero 2021 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” i Agradecimientos Especialmente quiero agradecer a mi familia, a mis padres, en especial a mi madre por su apoyo incondicional en todo momento y por siempre impulsarme a superarme y cumplir con cada una de mis metas y cuidar de mi hijo para seguir estudiando. Al Dr. Francisco Valdés Peresgazga por brindarme su apoyo, confianza durante todo este periodo y sobre todo por la oportunidad de culminar esta meta. Al Dr. Hesner Coto Fuentes por todo el apoyo y orientación para encaminarme hacia el objetivo general del proyecto. Al CONACYT por el apoyo económico brindado. También quiero agradecer a todos mis maestros que fueron una parte importante para el progreso de mi trabajo. “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” ii Resumen: El internet de las cosas es la conexión de objetos de uso habitual o cotidiano a internet. La finalidad es la interconexión de diferentes objetos que utilizamos con cierta frecuencia, con el objetivo de hacernos la vida más fácil, por ejemplo, en la administración eficiente de la energía o en potenciar nuestra propia seguridad. Además, el internet de las cosas se basa en sensores, en redes de comunicaciones y en dispositivos inteligentes que manejan todo el proceso y los datos que se generan. Los sensores son los sentidos del sistema y, para que puedan ser empleados de forma masiva, deben tener bajo consumo y coste, un reducido tamaño y una gran flexibilidad para su uso en todo tipo de circunstancias. El enfoque del proyecto es: IoT (Internet Of Things) con una computadora integrada a un sistema analítico. Este sistema analítico ya fue diseñado y construído para la medición de la concentración del cobre en el efluente de una mina. El enfoque de este proyecto es el monitorieo en tiempo real de los datos generados por el sistema analítico mediante su integración al Internet de las cosas. Para el monitoreo de datos se evaluaron los tipos de computadoras de placa única, entre las que destacan una Raspberry Pi y Tinker Board con el fin de utilizar una y usarse como servidor. Para ello se instalaron los sistemas operativos, en la Raspberry Pi se maneja el sistema operativo Debían el cual está basado en Linux. Y en la Tinker Board se basa en un sistema operativo TinkerOs- Debian “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” iii Se utiliza la computadora de placa única (Raspberry Pi) para tener una base de datos guardados en ella y acceder a ellos cuando se requiera con o sin internet, basándose en el software MyOpenLab, el cual es una herramienta que sirve para realizar sistemas automatizados mediante una interfaz gráfica. El software MyOpenLab se programa mediante bloques o diagramas de flujo. La interfaz gráfica es la pauta para monitorear los datos generados, guardarlos en un archivo csv o de texto y además subirlos a internet. Se utilizó la plataforma del IoT Ubidots para subir datos en tiempo real, para ello, se utiliza el protocolo de comunicación MQTT LENS el cual se basa la suscripción/publicación a un topic de alguna variable de interés y permitiendo así el monitoreo de cualquier variable. Palabras clave: Internet de las Cosas, sistema analítico, protocolo de comunicación MQTT, plataformas IoT “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” iv Abstract: The Internet of Things (IoT) refers to the networking of daily use devices. The aim being the interconnection of frequently used objects to make life easier. An example is the efficient management of energy or the enabling of our personal safety. The Internet of Things is based on sensors, communication networks and intelligent devices that manage both processes and data. To use all these massively they have to be low-power and low-cost. They should be small and flexible as well so they can be used in different settings. The focus of the present project is: IoT (Internet Of Things) using a single-board computer board integrated to an analytical system. The analytical system in question is already designed and built. It measures the concentration of copper in the effluent of a mine. The present work will allow for the remote monitoring of this chemical variable in real time integrating the analytical system to the Internet of Things. To monitor the data generated by the analytical system we evaluated two single-board computers: the Raspberry Pi y and the Tinker Board. We used two operating systems: Debian, a Linux-based on Linux used by the Raspberry Pi and TinlerOS-Debian used by the Tinker Board. As explained in the present report, we used the single board computer Raspberry Pi to produce a database that can be accessed locally or through the Internet. For this we used the software MyOpenLab, a tool for the development of automatic systems through a graphic “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” v interface. The graphic interface allows the monitoring of the generated data, the storage of these data as csy or text files and their upload to the Internet. The IoT platform used was Ubidots to upload data in real time following the MQTT LENS protocol based on the subscription/publication to a topic of some variable of interest thus achieving the monitoring of this variable. Keywords: Internet of Things, analytical systems, MQTT communications protocol, IoT platforms “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” vi ÍNDICE CAPITULO I INTRODUCCIÓN ......................................................................................... 1 1.1. Antecedentes del proyecto .................................................................................. 2 1.2. Planteamiento del problema ................................................................................ 2 1.3. Objetivo ............................................................................................................... 3 1.3.1. Objetivo general ........................................................................................... 3 1.3.2. Objetivos específicos .................................................................................... 3 1.4. Justificación ......................................................................................................... 3 CAPITULO II ESTUDIO DEL ARTE .................................................................................. 4 2.1. Introducción a IoT ................................................................................................ 4 2.2. Se resume IoT como: .......................................................................................... 5 2.2.1. Sensores y actuadores ................................................................................. 5 2.2.2. Digitalización ................................................................................................ 6 2.2.3. Personas y procesos.................................................................................... 6 2.3. Elementos claves de un ecosistema IoT .............................................................. 7 2.4. Campos de aplicación del IoT .............................................................................. 8 2.4.1. Salud ............................................................................................................ 8 2.4.2. IoT Industrial ................................................................................................. 8 2.4.3. Smart Cities ................................................................................................ 10 2.4.4. Logística ..................................................................................................... 10 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” vii 2.5. Hardware del IoT ............................................................................................... 11 2.6. Protocolos de comunicación .............................................................................. 13 2.7. Protocolo MQTT ................................................................................................ 14 2.7.1. Calidad de servicio MQTT (QoS) ................................................................ 17 2.7.2. Los principales actores del protocolo MQTT ............................................... 18 2.7.3. Topics en el Protocolo MQTT ..................................................................... 19 2.7.4. Seguridad en MQTT ................................................................................... 21 2.7.5. Ventajas del MQTT ..................................................................................... 22 2.8. Plataformas IOT ................................................................................................ 23 2.8.1. Adafruit ....................................................................................................... 24 2.8.2. ThingSpeak ................................................................................................ 25 2.8.3. Yaler ........................................................................................................... 26 2.8.4. Google Cloud.............................................................................................. 27 2.8.5. Microsoft azure ........................................................................................... 28 2.8.6. Amazon Web Services ............................................................................... 29 2.8.7. Ubidots ....................................................................................................... 30 2.9. Arquitecturas IoT ............................................................................................... 31 2.10. MyOpenLab ................................................................................................... 33 2.10.1. Historia .................................................................................................... 33 2.10.2. Características más importantes ............................................................. 34 2.10.3. Partes de la aplicación ............................................................................ 35 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” viii 2.11. Comparación de Raspberry Pi 3 Modelo B+ vs Tinker Board ......................... 38 2.12. Características de las tarjetas de tamaño reducido ........................................ 40 2.12.1. Raspberry Pi 3 ........................................................................................ 40 2.12.2. Tinker Board ASUS ................................................................................. 42 CAPITULO III METODOLOGÍA ...................................................................................... 45 3.1. Instalación de sistema operativo a Raspberry Pi ............................................... 45 3.2. Instalación del programa MyOpenLab en Raspberry Pi ..................................... 46 3.3. Instalación de ID de Arduino a Raspberry Pi ...................................................... 48 3.4. Instalación de sistema operativo a Tinker Board ................................................ 50 3.5. Instalación del programa MyOpenLab en Tinker Board ..................................... 51 3.6. Instalación de ID de Arduino a Tinker Board ...................................................... 53 3.7. Selección de computadora de placa única: ........................................................ 53 3.8. Pruebas de programación en MyOpenLab y Arduino ......................................... 55 3.9. Programación en MyOpenLab ........................................................................... 58 3.9.1. Prueba 1: .................................................................................................... 58 3.9.2. Prueba 2 ..................................................................................................... 59 3.9.3. Prueba 3 ..................................................................................................... 60 3.9.4. Prueba 5 ..................................................................................................... 61 3.10. Desarrollo de interfaz gráfica en MyOpenLab para el proyecto: ..................... 62 CAPITULO IV RESULTADOS ....................................................................................... 72 4.1. Selección de computadora de placa única: ........................................................ 72 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” ix CONCLUSIONES ............................................................................................................ 77 RECOMENDACIONES .................................................................................................... 77 BIBLIOGRAFÍA ................................................................................................................ 78 ÍNDICE DE TABLAS Tabla 2.1. Características de Raspberry Pi 3 modelo b+ [7]. ........................................... 41 Tabla 2.2. Características de Tinker Board ASUS [7]....................................................... 43 ÍNDICE DE FIGURAS Figura 2.1. Sensores y actuadores [3] ............................................................................... 5 Figura 2.2. Digitalización [3] .............................................................................................. 6 Figura 2.3. Personas y Procesos [3] ................................................................................. 6 Figura 2.4. IoT industrial [9] ............................................................................................... 9 Figura 2.5. Smart Cities [9].............................................................................................. 10 Figura 2.6. Logística [9] ................................................................................................... 11 Figura 2.7. Componentes [9] ........................................................................................... 12 Figura 2.8. Función del protocolo MQTT [11] .................................................................. 15 Figura 2.9. Conexión con el Bróker [11] .......................................................................... 16 Figura 2.10. Función Publicar [11] ................................................................................... 16 Figura 2.11. Función subscribirse [11] ............................................................................ 16 Figura 2.12. Red simple publicación y suscripción de topicsen el protocolo MQTT [10] . 21 Figura 2.13. Plataforma Adafruit IO [9] ............................................................................ 24 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” x Figura 2.14. Plataforma ThingSpeak [9] .......................................................................... 25 Figura 2.15. Plataforma Yaler [9]..................................................................................... 26 Figura 2.16. Plataforma Google Cloud Platform [9] ......................................................... 27 Figura 2.17. Plataforma Microsoft Azure [9] .................................................................... 28 Figura 2.18. Plataforma Amazon Web Services [9] ......................................................... 29 Figura 2.19. Plataforma Ubidots [12] ............................................................................... 30 Figura 2.20. Panel Circuito .............................................................................................. 35 Figura 2.21. Panel Frontal ............................................................................................... 35 Figura 2.22. Ventana Principal ........................................................................................ 36 Figura 2.23. Placa Raspberry Pi 3 modelo B+ y puertos GPIO [7] .................................. 42 Figura 2.24. PlacaTinker Board ASUS y Pines GPIO [7] ................................................. 44 Figura 3.1. Entorno Raspbian ......................................................................................... 46 Figura 3.2. Instalación Java ............................................................................................ 47 Figura 3.3. Descarga MyOpenLab para Linux ................................................................. 47 Figura 3.4. Entorno MyOpenLab ..................................................................................... 48 Figura 3.5. Actualización de paquetes en Raspberry ...................................................... 49 Figura 3.6. ID de Arduino. ............................................................................................... 49 Figura 3.7. Sistemas operativos ...................................................................................... 50 Figura 3.8. Entorno TinkerOS-Debian ............................................................................. 51 Figura 3.9. Instalación Java en computadora Tinker Board ............................................. 52 Figura 3.10. Ventana Principal del ID de Arduino en Tinker Board .................................. 53 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” xi Figura 3.11. Propiedades de Arduino Firmata ................................................................. 55 Figura 3.12. Configuración de Pines para Arduino Firmata [8]. ....................................... 56 Figura 3.13. Panel circuito para prender un led ............................................................... 58 Figura 3.14. Ejecución de interfaz ................................................................................... 58 Figura 3.15. Panel circuito de conversión analógica a digital. ......................................... 59 Figura 3.16. Ejecución de interfaz ................................................................................... 59 Figura 3.17. Panel circuito para escribir datos en una tabla ............................................ 60 Figura 3.18. Ejecución de interfaz ................................................................................... 60 Figura 3.19. Panel circuito para escribir datos en tabla y graficarlos. .............................. 61 Figura 3.20. Entorno Ejecución de interfaz ...................................................................... 61 Figura 3.21. Panel frontal de interfaz en MyOpenLab ..................................................... 62 Figura 3.22. Panel circuito de interfaz en MyOpenLab .................................................... 63 Figura 3.23. Panel circuito del proyecto parte inicial........................................................ 64 Figura 3.24. Panel circuito del proyecto parte central ...................................................... 64 Figura 3.25. Panel circuito del proyecto parte final .......................................................... 65 Figura 3.26. Tipos de protocolos de comunicación en MyOpenLab ................................ 65 Figura 3.27. Crear nuevo componente en MyOpenLab ................................................... 66 Figura 3.28. Entorno Ubidots .......................................................................................... 67 Figura 3.29. Abrir o crear nuevos dispositivos en Ubidots ............................................... 68 Figura 3.30. Descarga e instalación de MQTTLens ........................................................ 68 Figura 3.31. Entorno principal de MQTTLens .................................................................. 69 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” xii Figura 3.32. Entorno para ingresar datos de la conexión ................................................ 70 Figura 3.33. Pantalla para publicar o subscribirse a un topic o dispositivo ...................... 71 Figura 4.1. Lecturas de temperatura con MyOpenLab y Arduino .................................... 72 Figura 4.2. Lecturas guardadas en fichero mediante la interfaz en MyOpenLab ............. 73 Figura 4.3. Nueva conexión con el nombre de Mosquitto para bróker Ubidots ................ 74 Figura 4.4. Datos del Bróker Ubidots .............................................................................. 74 Figura 4.5. Usuario y contraseña para el bróker Ubidots (API de Ubidots MQTT) ........... 75 Figura 4.6. Conexión y publicación de un dato de temperatura para plataforma Ubidots 75 Figura 4.7. Datos publicados en la plataforma Ubidots ................................................... 76 1 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” CAPITULO I INTRODUCCIÓN En este trabajo de tesis se realiza la evaluación de computadoras de placa única entre las que destacan una Raspberry Pi 3 (Raspberry Pi Foundation, Cambridge, Reino Unido) y una Tinker Board (ASUS Computer International Direct, Taipéi, Taiwán) para la aplicación de un sistema analítico al internet de las cosas, utilizando como servidor y hardware enfocado al IoT una de ellas, un software de programación MyOpenLab (Carmelo Salafia, Alemania) enfocado en el sistema operativo Linux y una plataforma IoT Ubidots para monitorear un flujo de datos en tiempo real. Este trabajo está conformado por cuatro capítulos a continuación se describen de manera breve: En el capítulo I, se establecen los antecedentes, objetivos, planteamiento del problema y la justificación del proyecto. En el capítulo II, se presenta el estudio del arte. En el se da la descripción de lo que es el internet de las cosas (IOT), como es su ecosistema, sus campos de aplicación, hardware, protocolos de comunicación, protocolo mqtt y plataformas IOT. Además, se describe lo que es el software MyOpenLab y se hace la comparación de las dos opciones de computadoras de placa única: la Raspberry Pi 3 b+ y la Tinker Board. En el capítulo III, la metodología seguida para el desarrollo del proyecto y cumplir con los objetivos. En el capítulo IV se presentan los resultados obtenidos en el proyecto. Finalmente se dan a conocer las conclusionesy recomendaciones. 2 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” 1.1. Antecedentes del proyecto En el TecNM campus Instituto Tecnológico de la Laguna, en el área de instrumentación se trabaja en proyectos relacionados con la medición de concentraciones de elementos químicos como, cobalto, cadmio, y cobre en vinculación con una empresa del ramo metalúrgico. Desde hace dos años se trabaja con un sistema analítico para la medición de concentración de cobre, en el cual el acceso a los datos se obtiene siguiendo un protocolo dentro de la empresa. 1.2. Planteamiento del problema El desarrollo de la electrónica, la gestión de nuevas tecnologías, servicios y plataformas han permitido la interconexión digital de objetos cotidianos con internet, mejorando considerablemente el acceso a la información y con ello al monitoreo de procesos. Los objetos deben contar con hardware especial que permita la conectividad a internet y que además programen eventos en función de las tareas a realizar [1]. Las computadoras de placa única son uno de los objetos que se pueden utilizar para realizar una interconexión digital, ya que cuentan con un sistema de hardware y software, así como con un procesador de aplicaciones que ejecuta un sistema operativo de alto nivel, como Linux, Android, o Windows, conectividad inalámbrica, y por cable, tarjetas de expansión y software de código abierto [2]. 3 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” 1.3. Objetivo 1.3.1. Objetivo general Evaluar dos computadoras de placa única; la Raspberry Pi 3 (Raspberry Pi Foundation, Cambridge, Reino Unido) y la Tinker Board (ASUS Computer International Direct, Taipéi, Taiwán) para la aplicación de un sistema analítico al internet de las cosas. 1.3.2. Objetivos específicos Utilizar como servidor y hardware enfocado al IoT una de ellas. Utilizar un software de programación MyOpenLab (Carmelo Salafia, Alemania) enfocado en el sistema operativo Linux. Utilizar una plataforma IoT Ubidots para monitorear un flujo de datos en tiempo real. 1.4. Justificación El núcleo de los sistemas analíticos está compuesto por un circuito basado en un microcontrolador encargado de controlar y sincronizar los distintos procesos necesarios para realizar las mediciones; la utilización de estos microcontroladores podrían ser el puente necesario para su integración al internet de las cosas. Al tener entre sus recursos protocolos de comunicación como la UART, el I2C y el SPI de las cuales fluirían los datos entre el sistema analítico y una computadora de placa única encargada de comunicarse con la nube y atender los servicios web. Para ello es importante evaluar las distintas computadoras de placa única, así como las distintas herramientas orientadas a los servicios de internet, para poder garantizar la integración del sistema analítico al internet de las cosas obteniendo datos de forma remota. 4 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” CAPITULO II ESTUDIO DEL ARTE 2.1. Introducción a IoT El Internet de las Cosas (IoT) consiste en la integración de sensores y dispositivos en objetos cotidianos que quedan conectados a Internet a través de redes fijas e inalámbricas. Dado su tamaño y coste, los sensores son fácilmente integrables en hogares, entornos de trabajo y lugares públicos. De esta manera, cualquier objeto es susceptible de ser conectado y estar presente en la Red. El concepto de Internet de las cosas fue propuesto por Kevin Ashton en el Auto-ID Center del MIT (Massachusetts Institute of Technology) en 1999, donde se realizaban investigaciones en el campo de la identificación por radiofrecuencia en red (RFID) y tecnologías de sensores. El tamaño, el coste y el consumo de energía del hardware se han reducido drásticamente, por lo que ahora es posible fabricar dispositivos electrónicos diminutos a un coste muy reducido. Estos pequeños dispositivos, junto con la expansión de las redes de comunicación, permiten incorporar inteligencia y conexión a los objetos del mundo real y están transformando lo que era una red global de personas en una red global de todas las cosas. Mediante radiofrecuencia, la información viaja a un ordenador o dispositivo móvil con acceso a Internet. Dicha información puede ser recibida por un usuario para su interpretación. También existe la posibilidad de que el extremo final sea otra máquina que interprete los datos y actúe según parámetros preestablecidos [3]. 5 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” 2.2. Se resume IoT como: 2.2.1. Sensores y actuadores Ubicación de datos utilizando sensores GPS, los ojos y las orejas con cámaras y micrófonos, junto con los órganos sensoriales (Figura 2.1) que pueden medir todo, desde la temperatura hasta cambios de presión [3]. Figura 2.1. Sensores y actuadores [3] 6 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” 2.2.2. Digitalización Estas entradas se digitalizan (Figura 2.2) y se colocan en las redes [3]. Figura 2.2. Digitalización [3] 2.2.3. Personas y procesos Estas entradas en la red se pueden combinar en sistemas bidireccionales que integran datos, personas, procesos y sistemas (Figura 2.3) para la mejora en la toma de decisiones [3]. Figura 2.3. Personas y Procesos [3] 7 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” 2.3. Elementos claves de un ecosistema IoT Hardware: son los sensores y dispositivos que recopilan datos del entorno, por ejemplo, sensores de humedad, temperatura, etc. El Hardware también se encarga de realizar acciones específicas en función de los datos recolectados, por ejemplo, un sistema de riego automático para los cultivos. Conectividad: el hardware necesita transmitir los datos recolectados, generalmente a entornos de nube, enviar los datos recolectados sobre humedad, temperatura, etc. También necesita recibir comandos desde la nube, asociados a la realización de acciones concretas; la indicación de encender el riego para los cultivos. Algunos sistemas IoT utilizan un componente intermedio entre el hardware y la conexión a la nube, generalmente una puerta de enlace o un enrutador. Software: lo normal es que el software esté en la nube, dada su proximidad con los datos enviados por sensores y dispositivos. El Software es el responsable de analizar todos los datos recibidos y generar acciones concretas en función de estos datos. Por ejemplo, en base a los datos de humedad decirle al sistema de riego que no se encienda un día específico. Interfaz de usuario: Todo sistema IoT necesita una interfaz, a través del cual los usuarios interactúan con el sistema IoT. Por ejemplo, una app para Smartphone o basada en la web, con un tablero que muestre las tendencias de humedad y permita a los usuarios activar o desactivar manualmente los sistemas de riego [4]. 8 “Evaluación de computadoras de placa única para la integraciónde sistemas analíticos al internet de las cosas” 2.4. Campos de aplicación del IoT El IoT tiene el potencial de poderse aplicar en muchísimos sectores. De hecho, los millones de dispositivos que formarán parte del IoT se instalan en lugares tan dispares como hospitales, camiones o industrias por poner sólo algunos ejemplos. Veamos a continuación varios de los sectores más importantes [9]. 2.4.1. Salud El mundo de la salud es uno de los campos que más se pueden beneficiar de la implantación del IoT con múltiples aplicaciones: desde monitoreo remoto hasta sensores inteligentes e integración de dispositivos médicos. La implementación del IoT en el mundo de la salud hará que pacientes y médicos estén más conectados, que la prevención de enfermedades sea más efectiva y automatizada, y que incluso en un futuro se puedan implementar algoritmos en la nube que puedan empezar a predecir enfermedades. Hoy en día existen varios ejemplos de equipos IoT, como equipos que permiten monitorear la actividad física y, en función de esta, controlar de manera exhaustiva a un paciente [9]. 2.4.2. IoT Industrial Tanto IoT como el IIoT -del inglés Industrial Internet of Things– parten de la misma idea: conectar objetos (desde un zapato a un horno industrial) mediante electrónica a Internet para poder hacer que la vida sea un poco mejor desde un punto de vista de seguridad, eficiencia, etc. Pero las similitudes terminan aquí, porque el IoT y el IIoT tienen un background diferente y porque también apuntan a clientes y sectores diferentes. 9 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” IoT tiene una relación más cercana a las situaciones cotidianas y a la interacción con los humanos. Cuando se habla de IoT, se hace comúnmente pensando en situaciones como unos zapatos conectados a internet que permiten ver la cantidad de kilómetros recorridos en un día, o un contenedor de basura con sensores de nivel. Por lo tanto, se puede decir que el IoT tiene por objeto satisfacer necesidades al gran público por medio de electrónica que se podrá integrar en dispositivos comunes. En cambio, IIoT se refiere a conectar a Internet elementos de la industria y el concepto está estrechamente relacionado con el de Industria 4.0 (Figura 2.4). Pero, ¿qué es la Industria 4.0? El término fue acuñado en Alemania hace ya unos años y debe su nombre a “cuarta revolución industrial”. El objetivo de la industria 4.0 es usar la información generada en fábricas para hacerlas más eficientes económicamente. El background de la industria es completamente diferente al que tiene el IoT. ¿Por qué? Pues porque las cosas (sensores y actuadores) ya están conectadas con sistemas de automatización, y lo que hay que hacer en estos casos es conectarlos con el cloud [9]. Figura 2.4. IoT industrial [9] 10 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” 2.4.3. Smart Cities ¿Quién a estas alturas no ha escuchado nunca hablar de las ciudades inteligentes? (figura 2.5). El desafío de las nuevas ciudades es, entre otros, ser más eficientes y más limpias, y el IoT puede ayudar en buena medida a ello. Por ejemplo, un problema común en muchas ciudades es el de detectar fugas de agua. Hoy existen soluciones que permiten detectar la fuga de agua en algún lugar, y avisar automáticamente a técnicos de mantenimiento para que asistan a la reparación rápidamente, haciendo que de esta manera se reduzca drásticamente la pérdida de agua y recursos en ciudades [9]. Figura 2.5. Smart Cities [9] 2.4.4. Logística Otro sector donde el IoT ya tiene influencia es el de la logística. Gracias a su tecnología, se permiten conectar operadores con clientes, pudiendo mejorar de forma muy significativa toda la cadena de valor, incluyendo el almacenamiento, transporte y entrega de mercancía (Figura 2.6). 11 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” Un ejemplo importante por ejemplo está en el control y trazabilidad de temperaturas en productos perecederos. Existen soluciones ya en el mercado que permiten monitorear la temperatura de un producto en todo su ciclo, pudiendo de esta manera garantizar que la temperatura idónea no se ha perdido en ningún momento. Otro ejemplo importante hoy en día está en el control de lote. La tecnología IoT permite poder controlar lotes de camiones y asegurar que en todo momento su localización es correcta de acuerdo a los parámetros establecidos [9]. Figura 2.6. Logística [9] 2.5. Hardware del IoT Motas Aunque los nodos de sensores inalámbricos ya hace mucho tiempo que existen, el concepto de Motas es relativamente nuevo. La idea de las “motas” proviene de los Estados Unidos y se refiere a dispositivos extremadamente pequeños (de aquí el nombre), conectados inalámbricamente unos con otros y pasándose información del ambiente (temperaturas, humedades, almacenaje de sus baterías, etc.). Forman parte de la arquitectura compleja del IoT. 12 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” Componentes: En la figura 2.7 se pueden diferenciar diferentes componentes: Figura 2.7. Componentes [9] Microcontrolador: Es el elemento que procesa los datos recogidos por los sensores y controla la funcionalidad del nodo. Memoria Externa: Almacenamiento de datos del nodo. En general, la cantidad de memoria necesaria es muy dependiente de cada aplicación. Sensor: Es el dispositivo que es capaz de producir alguna señal eléctrica a un cambio físico como temperatura o humedad, por ejemplo. Batería: Aportan la energía al nodo para su funcionamiento, tanto cuando está dormido y cuando está activo. 13 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” Transceptor: Es el encargado de funciones tanto de transmisión como de recepción de datos [9]. 2.6. Protocolos de comunicación Un protocolo de comunicación es un método para comunicar datos entre máquinas. Este método, en realidad queda definido tanto por el medio físico como por el medio informático en la que se intercambian los datos. Anteriormente los protocolos de comunicación eran de lo más primitivos: un voltaje tenía un significado, y una ausencia de voltaje tenía otro. Hoy este método es ampliamente usado en el mundo industrial [9]. Cuando se necesita ampliar las comunicaciones para hacerlas más rápidas y con mayor ancho de banda, es necesario métodos más sofisticados para comunicar. Se necesita definir reglas que permitan comunicar más y mejor. En la industria surgieron primero estándares físicos, como RS-232, RS485 o WiFi, donde los programadores pueden basar sus comunicaciones para realizar sus propios protocolos. De esta forma, por ejemplo, Modbus se puede basar en estándares serie o TCP/IP para comunicar sus datos. Y MQTT es ampliamente usado en el mundo del IoT [9]. En el mundo del IoT tenemos múltiples protocolos disponibles, que también admiten múltiples clasificaciones posibles: Protocolos HAN: Protocolos para red local o domótica. Se encuentran ejemplos como NFC, RFID o WiFi entre otros.14 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” Protocolos LAN: Los protocolos LAN pueden cubrir áreas ligeramente mayores que los HAN. En este sentido, se encuantran protocolos como LORA o DECT. Protocolos WAN: Finalmente, los protocolos WAN tienen como fin cubrir amplísimos terrenos. 3G, 4G, 5G, GSM son algunos de los más populares. Los protocolos IoT por lo tanto son muchos. La elección de uno u otro depende mucho de la aplicación que se contemple realizar. 2.7. Protocolo MQTT El protocolo MQTT se ha convertido en uno de los principales pilares del IoT por su sencillez y ligereza. Ambos son condicionantes importantes dado que los dispositivos de IoT, a menudo, tienen limitaciones de potencia, consumo, y ancho de banda [11]. MQTT son las siglas MQ Telemetry Transport, aunque en primer lugar fue conocido como Message Queing Telemetry Transport. Es un protocolo de comunicación M2M (machine-to- machine) de tipo message queue. Está basado en la pila TCP/IP como base para la comunicación. En el caso de MQTT cada conexión se mantiene abierta y se "reutiliza" en cada comunicación. Es una diferencia, por ejemplo, a una petición HTTP 1.0 donde cada transmisión se realiza a través de conexión. MQTT fue creado por el Dr. Andy Stanford-Clark de IBM y Arlen Nipper de Arcom (ahora Eurotech) en 1999 como un mecanismo para conectar dispositivos empleados en la industria petrolera. Aunque inicialmente era un formato propietario, en 2010 fue liberado y 15 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” pasó a ser un estándar en 2014 según la OASIS (Organization for the Advancement of Structured Information Standards) [11]. El funcionamiento del MQTT es un servicio de mensajería push con patrón publicador/suscriptor (pub-sub). En este tipo de infraestructuras los clientes se conectan con un servidor central denominado bróker. Para filtrar los mensajes que son enviados a cada cliente los mensajes se disponen en topics organizados jerárquicamente. Un cliente puede publicar un mensaje en un determinado topic. Otros clientes pueden suscribirse a este topic, y el bróker le hará llegar los mensajes suscritos (Figura 2.8) [11]. Figura 2.8. Función del protocolo MQTT [11] Los clientes inician una conexión TCP/IP con el bróker, el cual mantiene un registro de los clientes conectados. Esta conexión se mantiene abierta hasta que el cliente la finaliza. Por defecto, MQTT emplea el puerto 1883 y el 8883 cuando funciona sobre TLS. Para ello el cliente envía un mensaje CONNECT (Figura 2.9) que contiene información necesaria (nombre de usuario, contraseña, client-id…). El bróker responde con un mensaje CONNACK, que contiene el resultado de la conexión (aceptada, rechazada, etc.). 16 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” Figura 2.9. Conexión con el Bróker [11] Para enviar los mensajes el cliente emplea mensajes PUBLISH (Figura 2.10), que contienen el topic y el payload. Figura 2.10. Función Publicar [11] Para suscribirse y desubscribirse se emplean mensajes SUBSCRIBE y UNSUSCRIBE, que el servidor responde con SUBACK y UNSUBACK (Figura 2.11). Figura 2.11. Función subscribirse [11] Por otro lado, para asegurar que la conexión está activa los clientes mandan periódicamente un mensaje PINGREQ que es respondido por el servidor con un PINGRESP. Finalmente, el cliente se desconecta enviando un mensaje de DISCONNECT [11]. 17 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” 2.7.1. Calidad de servicio MQTT (QoS) MQTT dispone de un mecanismo de calidad del servicio o QoS, entendido como la forma de gestionar la robustez del envío de mensajes al cliente ante fallos (por ejemplo, de conectividad). Niveles: QoS 0 unacknowledged (at most one): El mensaje se envía una única vez. En caso de fallo por lo que puede que alguno no se entregue. QoS 1 acknowledged (at least one): El mensaje se envía hasta que se garantiza la entrega. En caso de fallo, el suscriptor puede recibir algún mensaje duplicados. QoS 2 assured (exactly one). Se garantiza que cada mensaje se entrega al suscriptor, y únicamente una vez. Usar un nivel u otro depende de las características y necesidades de fiabilidad del sistema. Lógicamente, un nivel de QoS superior requiere un intercambio mayor de mensajes de verificación con el cliente y, por tanto, mayor carga al sistema [11]. 18 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” 2.7.2. Los principales actores del protocolo MQTT El protocolo MQTT clasifica los actores que participan en la red en clientes y servidores. A estos últimos los denomina brokers Los clientes Los clientes MQTT pueden abarcar un amplio rango de formatos. Pueden ser clientes MQTT que recolectan información del medio (sensores y sistemas embebidos) o aplicaciones ejecutando alguna librería MQTT y que de alguna forma interactúen con los datos. Pueden ser divulgadores (publicadores) y subscriptores de mensajes y además, pueden controlar y configurar los sensores a su cargo mediante comandos, si es que son nodos de sensores. Éstos siempre se conectan a un tercer participante, denominado bróker de mensajes. El bróker El bróker MQTT es un servicio (software) que implementa el protocolo MQTT y que establece la comunicación, a nivel de aplicación, entre los diferentes clientes. Hace de intermediario entre los productores y los consumidores. Es el responsable de recibir los mensajes, filtrarlos y rutarlos a los clientes subscritos según su topic. Otra tarea importante del bróker es autorizar el acceso e identificar los clientes. Puede haber varios brokers en una misma red [10]. 19 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” 2.7.3. Topics en el Protocolo MQTT Un topic se refiere a tema o asunto concreto. Al final, es un identificador que define el contenido del mensaje o el ámbito de influencia del mensaje (contexto). Con esto se clasifican y discriminan unos mensajes de otros y por extensión, unos nodos de otros. Todo aquel que quiera publicar un mensaje MQTT, es responsable de clasificarlo en un topic concreto y los clientes subscritos a es topic, recibirán esos mensajes. Las subscripciones pueden ser explícitas, con lo que el nodo sólo recibe mensajes de un topic concreto o puede recibir mensajes de varios topics si la subscripción se hace a través de algún identificador común a varios topics (es decir, utilizando lo que en inglés se conoce como wildcards, # y +). Los topics en el protocolo MQTT se organizan según una estructura jerárquica en árbol (topic tree), utilizando el carácter “/” para formar un topic de varios niveles. Similar a la ruta a un directorio de carpetas típico de tu ordenador. Entonces, el topic string es una cadena de caracteres que identifica el topic final del mensaje. [10]. Estas cadenas pueden ser: Multinivel: Se utiliza el carácter (wildcard) # para admitir cualquier nivel por debajo del nivel mostrado en la cadena. Simple: Se utiliza el carácter (wildcard) + para admitir sólo hasta el nivel mostrado en la cadena.Ejemplos de Topics Como ejemplo, una aplicación de Internet de las Cosas para gestionar un jardín de forma inteligente mediante el protocolo MQTT (Figura 2.12). El jardín está dividido en varias parcelas, cada parcela con diferentes plantas, árboles y características de riego. 20 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” El topic raíz podría ser: “jardín” Algunos subniveles podrían ser: jardín/césped jardín/frutales/manzanos/temperatura jardín/rosales/humedad Utilizando los caracteres comodin (wildcards): jardín/frutales/# En este caso, los subscriptores a esta cadena (string topic) recibirán todos los mensajes identificados con los topics jardín/frutales y todos los de niveles inferiores, como, por ejemplo jardín/frutales/manzanos. jardín/+: En este caso, los subscriptores a esta cadena recibirán los mensajes de ese nivel, por ejemplo, mensajes del tipo jardín/rosales, pero no recibirán los mensajes jardín/rosales/humedad [10]. 21 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” Figura 2.12. Red simple publicación y suscripción de topics en el protocolo MQTT [10] 2.7.4. Seguridad en MQTT La seguridad siempre debe ser un factor importante a considerar en cualquier sistema de comunicación M2M. El protocolo MQTT dispone de distintas medidas de seguridad que podemos adoptar para proteger las comunicaciones. Esto incluye transporte SSL/TLS y autentificación por usuario y contraseña o mediante certificado. Sin embargo, hay que tener en cuenta que muchos de los dispositivos IoT disponen de escasa capacidad, por lo que el SLL/TLS puede suponer una carga de proceso importante. En muchos casos, la autentificación consiste en una contraseña y usuario que son enviados como texto plano. Por último, también es posible configurar el bróker para aceptar conexiones anónimas. Todo esto debe ser tenido en cuenta a la hora de configurar un sistema MQTT, y entender los riesgos de cada uno de ellos, así como su impacto en la eficiencia del sistema [11]. 22 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” 2.7.5. Ventajas del MQTT Son varias las ventajas del protocolo MQTT como sistema de comunicación M2M, como son escalabilidad, asincronismo, desacoplamiento entre clientes. Además, MQTT aporta una serie de características que le han hecho sobre salir sobre otros competidores. La principal, es su sencillez y ligereza. Esto lo hace adecuado para aplicaciones IoT, donde frecuentemente se emplean dispositivos de escasa potencia. Además, esto menor necesidad de recursos se traduce en un menor consumo de energía, lo cual es interesante en dispositivos que funcionan 24/7 y muy especialmente en dispositivos alimentados por batería. Otra consecuencia de la ligereza del protocolo MQTT es que requiere un ancho de banda mínimo, lo cual es importante en redes inalámbricas, o conexiones con posibles problemas de calidad. MQTT dispone de medidas adicionales importantes, como la seguridad y calidad del servicio (QoS). Por último, es una solución largamente probada y consolidada, que aporta robustez y fiabilidad [11]. 23 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” 2.8. Plataformas IOT Una plataforma IoT es un servicio integrado que ofrece las herramientas necesarias para integrar los dispositivos a la nube. La plataforma necesita ser capaz de soportar millones de conexiones simultáneas de dispositivos y permitir a los usuarios configurar sus dispositivos fácilmente para la comunicación de máquina a máquina [9]. Elegir la plataforma de IoT adecuada es una tarea compleja. Este punto tiene como objetivo aclarar parte de la complejidad y ofrecer una guía rápida para una elección. Conectividad: Protocolos disponibles para poder comunicar con los dispositivos Seguridad / Privacidad: En un mundo donde estamos cada vez más expuestos al hackeo, es importante que la plataforma presente una buena y sólida prevención contra hackers. 24 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” 2.8.1. Adafruit Características Visualización y almacenamiento de datos Datos se almacenan por 30 días Muy simple crear Dasbboard personalizados APIs REST y MQTT En fase beta Figura 2.13. Plataforma Adafruit IO [9] 25 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” 2.8.2. ThingSpeak Características Visualización y almacenamiento de datos Multiples displays y formas de visualización Permite el procesado de datos (promedios, máximos, mínimos, etc) Integración con twitter y otras plataformas Figura 2.14. Plataforma ThingSpeak [9] 26 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” 2.8.3. Yaler Características Acceso a dispositivos a través de la red mediante Yaler Relay Compatible con cualquier dispositivo con sockets TCP (Arduino, Netduino, etc.) Acceso a dispositivos sin port forwarding Evita muchas complicaciones Figura 2.15. Plataforma Yaler [9] 27 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” 2.8.4. Google Cloud Características • Conjunto de servicios que permiten a desarrolladores desarrollar y lanzar aplicaciones bajo infraestructura Google. • Pensado para trabajar con Brillo OS y Weave. • Encriptación en APIs de Google Cloud, seguridad. • Big Data. • Servicio gratuito por 60 días. Figura 2.16. Plataforma Google Cloud Platform [9] 28 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” 2.8.5. Microsoft azure Características • Plataforma Cloud Computing multifunción (no solo IoT) • IoT Suite • Servicios orientados a eventos, analíticas avanzadas, Business Intelligence, almacenamiento de datos. • Gratuito por 30 días. Figura 2.17. Plataforma Microsoft Azure [9] 29 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” 2.8.6. Amazon Web Services Características • Colección de servicios en la nube • Lanzado en 2006 • Soporta gran cantidad de protocolos: HTTP, MQTT o WebSockets. • SDK propio. • Gratuito por 1 año (capa limitada) [9]. Figura 2.18. Plataforma Amazon Web Services [9] 30 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” 2.8.7. Ubidots Características Ubidotses una plataforma IoT que presenta una nube basada en dispositivos globales. Es una plataforma asequible, fiable y utilizable en un ecosistema de plataformas IoT. Ubidots está especializada en soluciones de hardware y software conectadas para monitorizar, controlar y automatizar procesos remotamente en el ámbito de la salud, energía, industria, fabricación, servicios públicos y transporte (Figura 2.19). Además, recientemente creó Ubidots for Education que es una plataforma para estudiantes que les permite construir, desarrollar, probar, aprender y explorar el futuro de las aplicaciones y soluciones conectadas a Internet [12]. Figura 2.19. Plataforma Ubidots [12] 31 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” 2.9. Arquitecturas IoT La arquitectura describe la estructura de una solución de IoT, lo que incluye el software (Plataformas, sistemas operativos, etc.) y el hardware (Dispositivos de red, sensores, etc) [9]. Antes de empezar a plantear una solución cualquiera, se debe tener claro el diseño que se tiene que implementar. Los arquitectos típicamente diseñan planos antes de construir edificios. Los ingenieros de IoT diseñan arquitecturas de red antes de implementar soluciones [9]. Un buen diseñador de arquitecturas IoT tiene presente siempre la funcionalidad que busca la solución, por eso, debe tener en cuenta un conjunto de conceptos que se presentan a continuación: Necesidad de los datos del lado del cliente: ¿Qué debe leer el consumidor final? ¿Datos en tiempo real? ¿Históricos? ¿Una combinación? Disponibilidad de los generadores de datos: ¿Dónde están estos equipos? ¿Pueden enviar datos en tiempo real? ¿Puede caerse la red? En ese caso, ¿Conviene poner alguna base de datos de por medio para guardar datos temporalmente? Lenguaje: ¿La plataforma habla el idioma de los equipos generadores de datos? Seguridad: ¿Cómo van a navegar los datos entre los sensores hasta la plataforma IoT? ¿Pueden ser interceptados estos datos y modificados? ¿Se tiene disponible alguna encriptación u otro mecanismo para proteger la información? 32 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” Escalabilidad: Esto no es menor, ¿Mi arquitectura puede soportar muchos más datos en el futuro? ¿Está alineada con las perspectivas de futuro del cliente? Algoritmos: ¿Dónde debe ejecutarse cada algoritmo? ¿Se tienen herramientas para hacer que algunos algoritmos se ejecuten en la capa de los sensores, y otros en la capa del cloud? ¿Dónde cada uno? [9]. 33 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” 2.10. MyOpenLab Es un software de desarrollo basado en elementos gráficos, cada uno cumple con una función específica y tiene propiedades configurables por el usuario, dichos componentes se pueden unir entre sí para implementar de una manera sencilla la parte gráfica y lógica de una aplicación. El software integra elementos para comunicarse con plataformas comerciales como Arduino, Raspberry Pi, Android y dispositivos con comunicación serial (Figura 2.22) [5]. 2.10.1. Historia Esta iniciativa surgió desde Alemania con Carmelo Daniel Salafia quien inicio el proyecto y lo desarrollo durante varios años. El 12 de agosto del 2012 fue publicada en la página oficial la versión v3.0.3.2 y se fue actualizando a medida que se desarrollaban nuevos elementos y se corregían errores en el programa. Para finales del 2015 al detectar que MyOpenLab no se ejecutaba para Raspberry Pi, el ingeniero Javier Velásquez habilito un Raspberry Pi con acceso remoto para trabajar en conjunto de forma remota con Carmelo Salafia y lograr que MyOpenLab se ejecutara en Linux ARM que para el momento era la distribución Raspbian Wheezy, lo cual se logró y se publicó la versión v3.0.8.3 desde la cual MyOpenLab se ejecuta en ARM. Desde esta etapa se han desarrollado en Colombia elementos para el manejo de funciones básicas del GPIO de la Raspberry pi, elementos para Arduino, control programático de las aplicaciones, elementos de visualización de texto, una interfaz de comunicación con la terminal de Linux, métodos http para comunicarnos con Android y están en desarrollo varias correcciones y nuevos elementos. 34 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” Debido al gran interés en el desarrollo de proyecto y la colaboración continua de Carmelo salafia ha decidido que el desarrollador principal de proyecto a partir de la versión v3.10.0 será el ingeniero Javier Velásquez de Colombia [5]. 2.10.2. Características más importantes Facilidad de uso Amplia biblioteca de funciones tanto para manejo de señales analógicas como digitales. Tratamiento de los tipos de datos y operaciones con estos. Realización de las aplicaciones mediante el uso de bloques de función. Facilidad para crear pantallas de visualización que recojan el estado de las variables y eventos de las simulaciones. Posibilidad de ampliación de su librería de componentes. Posibilidad de creación de submodelos que se pueden encapsular a su vez en otros submodelos [6]. Las aplicaciones que se realizan con MyOpenLab reciben el nombre de VM (Visual Modeling). 35 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” 2.10.3. Partes de la aplicación Circuito (Panel Circuito) Figura 2.20. Panel Circuito Panel de Visualización (Panel Frontal) Figura 2.21. Panel Frontal 36 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” El Circuito (Figura 2.20) será el conjunto de funciones y/o operadores que convenientemente enlazados responden a una funcionalidad relacionada con un circuito electrónico o un sistema del tipo que sea. Este conjunto de funciones se edita en el correspondiente panel de edición de circuito, que aparece en la pestaña etiquetada “Panel Circuito”. La parte de Panel Frontal (Figura 2.21) de Visualización será el que aparece en la pestaña etiquetada con “Panel Frontal” en la que se situarán los objetos de visualización grafica que asociados a las variables del circuito permitirán la visualización de la evolución de la simulación. Podemos editar el código Java del componente y modificarlo si es nuestro deseo. Esta posibilidad hace de MyOpenLab una herramienta absolutamente flexible y abierta [6]. Ventana principal Figura 2.22. Ventana Principal 37 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” Sección 1: Proyectos abiertos Sección 2: Editor de propiedades de los elementos (Sólo tiene que seleccionar un miembro y que se puede editar aquí el Propiedades del elemento) Sección 3: Panel de Circuito Sección 4: Descripción de pines y ayuda HTLM del elemento Sección 5: Librería de elementos de panel Circuito Sección 6: Pestaña de panel Frontal [6].38 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” 2.11. Comparación de Raspberry Pi 3 Modelo B+ vs Tinker Board Actualmente las tecnologías de información (TI) son muy utilizadas en las actividades cotidianas de las personas, al igual que los dispositivos electrónicos como la Raspberry Bi 3 y la Tinker Board, los cuales, a pesar de su pequeño tamaño, tienen capacidades suficientes para competir en el mercado si se toman en cuenta sus características, tales como su memoria, su procesador y que incluyen un puerto Ethernet, wifi y bluetooth. Adicionalmente, a causa de sus diferentes tipos de sensores, brindan la oportunidad de ser implementados desde una aplicación móvil hasta proyectos de hardware que requieran procesar información en tiempo real. Ambas tarjetas, la Raspberry Bi 3 y la Tinker Board, compiten entre sí en aspectos como la velocidad de procesamiento, la arquitectura interna, la cantidad de periféricos, la versatilidad, el precio y el tamaño; además, en el hecho de que ambas pueden soportar un sistema operativo. Por un lado, la Raspberry Pi 3 es una placa de bajo costo que incluye todos los elementos que ofrece una computadora. Hoy en día ha adquirido gran importancia en el mercado por su diversidad de opciones para realizar proyectos en redes de computadoras, circuitos electrónicos, robótica, domótica, seguridad, programación, entre otras áreas tecnológicas. Incluso, algunos autores como Saari, Muzaffar y Hyrynsalmi (2017) han utilizado la Raspberry Pi a manera de solución para el Internet de las Cosas (IoT). En su investigación, estos tres autores mencionan que es totalmente adaptable y que se puede utilizar como un instrumento a la medida, como un proceso de una computadora, al igual que permite realizar modificaciones para la operación de sistemas embebidos, obteniendo un mejor rendimiento, alta rentabilidad y una buena recuperación de datos. 39 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” También en las ciencias médicas se ha usado la Raspberry Pi como monitor de signos vitales para detectar fallas cardiacas, atendiendo anomalías en la salud a través de la tecnología del sistema global para las comunicaciones móviles (GSM, por sus siglas en inglés) o vía Internet, y puede servir como conexión entre paciente y doctor (Pardeshi, Sagar, Murmurwar y Hage, 2017). En otras aplicaciones, este dispositivo se ha implementado en el área de la biología, particularmente en la crianza de peces, donde se implementó como monitor de calidad del agua dentro un tanque. A través de un micro controlador Arduino, en conjunto con la Raspberry Pi, se logró automatizar la alimentación de los peces en tiempo y forma, todo a través de una aplicación web (Hasim, Ramalingam, Ernawan y Puviarasi, 2017). Otras de las ventajas de este dispositivo es que puede funcionar como nodo sensor o router en las redes de telecomunicaciones dentro del IoT (Gragasin, Talplacido y Macabale, 2017). Por último, en otro trabajo implementaron tanto la Raspberry Pi como el Arduino para realizar el registro de asistencia: este lo usaron para el registro de asistencia (ARD) y aquel fungía como un servidor web, mientras que la transmisión de los datos se realizó con la tecnología Zigbee (Sunehra y Goud, 2016). Por otro lado, su digna contrincante, la Tinker Board de ASUS (ASUSTeK Computer Inc., 2017) no se queda atrás y promete tener un rendimiento líder en su clase. Algunas aplicaciones donde se ha implementado este dispositivo es en el multiplexado de dos módulos de cámaras: Cooper, Azhar, Van Der Mark, Delmas y Gimel'farb (2017) demostraron que puede ser un buen sustituto tecnológico para sistemas GoPro de baja velocidad. 40 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” También se ha utilizado a la Tinker Board en aspectos más orientados a la arquitectura interna de memoria a la medida por tecnologías Altera OpenCL para dar aplicaciones de compiladores donde se utiliza un kernel y se demostró que se puede obtener un soporte de paquetes de datos de una tarjeta proveniente de proveedores de Internet (Richmond, Blackstone, Hogains, Thai y Kastner, 2016). Como parte de las aportaciones de este artículo, se presenta una breve comparativa de las características de ambas tarjetas, lo cual ayudará para determinar cuál es la más adecuada según el caso en el que se quiera implementar un dispositivo de este tipo. A continuación, se especificarán aún más las características de las tarjetas de tamaño reducido [7]. 2.12. Características de las tarjetas de tamaño reducido Son computadoras en una sola placa de tamaño reducido con suficiente potencia para instalar y ejecutar sistemas operativos en tiempo real. Además, tiene un bajo precio y son multiplataforma [7] 2.12.1. Raspberry Pi 3 El modelo más actual es el B de Raspberry Pi 3, el cual tiene una unidad de almacenamiento con tarjeta MicroSD Card Slot y está dotado con 35 000 paquetes y programas pre compilados en un formato que facilita la instalación. Además, a pesar de estar adaptado a la perfección a la placa, no es un sistema operativo afiliado con la fundación Raspberry Pi, ya que fue creado por un equipo pequeño y dedicado a desarrolladores, por lo que permite la instalación de una gran variedad de sistemas 41 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” operativos, entre ellos Noobs, Ubuntu MATE y Windows, aunque el más utilizado suele ser Raspbian basado en Debían, con soporte en línea para actualizarlo. Adicionalmente, tiene un procesador quad-core ARMv8 a 1.2 GHz de 64 bits de velocidad, características suficientes para permitir implementarlo en aplicaciones como punto de acceso; puede generar y procesar señales por diferentes sensores a través de sus puertos GPIO o recibirlas a través de su puerto Ethernet, wifi y bluetooth, y brinda la posibilidad de conectar diferentes dispositivos a través de su puerto USB. En la tabla 2.1 y en la figura 2.23 se muestran de manera detallada todas estas características (Raspberry Pi Foundation, 2017) [7]. Tabla 2.1. Características de Raspberry Pi 3 modelo b+ [7]. Especificaciones técnicas Características CPU 1.4 GHz 64 bits quad-core ARMv8 GPU 400 MHz bradcom video core IV RAM 1 GB(1024 MB) ALMACENAMIENTO MicroSD slot CONECTIVIDAD 4 puertos USB 2.0 SALIDA DE VIDEO Full HDMI SALIDA AUDIO Conector de audio de 3.5 mm, puerto HDMI RED Wi-Fi 2.4/5GHz Bluetooth: 2.4GHz y 5GHz IEEE 802.11.b/g/n/ac, Bluetooth 4.2, BLE Ethernet: Gigabit Ethernet sobre USB 2.0 (300 Mbps) PINES GPIO 40 pines GPIO 42 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” ALIMENTACIÓN 5v a 2.5A micro USB Figura 2.23. Placa Raspberry Pi 3 modelo B+ y puertos GPIO [7] 2.12.2. Tinker Board ASUS La compañía ASUS recientemente creó la primera versión de su placa, que es muy similar a la Raspberry Pi 3, la cual tiene un procesador Rock chip RK3288 de 32 bits. A diferencia la Raspberry, la Tinker Board por el momento solo cuenta con dos sistemas operativos oficiales, TinkerboardOS de Debían y TinkerOS Kodi. Estas y más características de la Tinker Board y de sus puertos GPIO se muestran en la tabla 2.2 y en la figura 2.24, respectivamente [7].43 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” Tabla 2.2. Características de Tinker Board ASUS [7] Especificaciones técnicas Características CPU Rock chip RK3288 quad-core 1.8 GHz (32 bits) GPU ARM-based Mali T764 GPU RAM 2 GB ALMACENAMIENTO MicroSD con soporte para velocidad de tarjeta UHS-1 CONECTIVIDAD 4 puertos USB 2.0 SALIDA DE VIDEO HDMI SALIDA AUDIO Conector de audio de 3.5 mm 192 KHz/24 bits, salida de audio y micrófono RED 802.11 b/g/n Wi-Fi Bluetooth 4.0+ EDR 10/100 Ethernet PINES GPIO 40 pines GPIO ALIMENTACIÓN 5v a 2A micro USB CAMARA Se puede incluir una interfase para cámara 44 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” Figura 2.24. PlacaTinker Board ASUS y Pines GPIO [7] 45 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” CAPITULO III METODOLOGÍA Se realizó el estudio de cómo determinar que computadora de placa única se ha de utilizar, en base a la información recabada sobre la aplicación de cada una de ellas enfocadas al IoT. De igual manera se buscó: Seleccionar el sistema operativo adecuado para cada una, la instalación del software MyOpenLab para la implementación de una interfaz gráfica. Realizar pruebas de programación con este y Arduino. Instalar IDE de Arduino para cada una de las placas. Por último, la aplicación de una plataforma IoT Ubidots para subir los datos a internet. 3.1. Instalación de sistema operativo a Raspberry Pi • Descarga de sistema operativo Raspbian • Visitar la página https://www.raspberrypi.org/downloads/raspbian/ y descargar la versión más reciente de NOOBS LITE. • Se descarga el programa SD memory Card Formatter para formatear y asegurar que la MicroSD este en blanco. • Se copian todos los datos de la carpeta de NOOBS LITE a la MicroSD • Una vez copiados los datos se introduce la tarjeta MicroSD en la Raspberry Pi 3 modelo b+ • Se introduce la MicroSD a la Raspberry Pi y se conecta el cable Ethernet, un teclado, un ratón si es necesario y su fuente de alimentación de la Raspberry Pi. • Aparecerá la siguiente tabla para seleccionar Raspbian Recommended 46 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” • En seguida se da clic en instalar y se lleva a cabo la instalación de manera automática del sistema operativo Raspbian. • Al finalizar la instalación aparece la sig. Pantalla (Figura 3.1) del entorno del sistema Operativo Raspbian Figura 3.1. Entorno Raspbian 3.2. Instalación del programa MyOpenLab en Raspberry Pi Para la instalación de MyOpenLab es necesario descargar e instalar Java, para esto se abre la terminal del sistema operativo Raspbian y se teclea lo siguiente. Sudo su apt-get install openjdk-8-jdk Luego se escoge la versión alternativa de java con la cual es compatible el programa MyOpenLab tecleando lo siguiente: Sudo update-alternatives –config java Y se selecciona el número 2 (/usr/lib/jvm/java-8-openjdk-armhf/jre/bin/java) (Figura 3.2) 47 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” Figura 3.2. Instalación Java • Una vez terminada la instalación de java, visitar la página https://myopenlab.org/inicio/ para realizar la descarga. Dar clic en la parte de descargas y descargar la versión que correspondiente según el sistema operativo, en este caso es la de Linux (Figura 3.3): Figura 3.3. Descarga MyOpenLab para Linux 48 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” • Una vez terminada la descarga se descomprimen los archivos en una carpeta, posteriormente entramos a la carpeta para ejecutar el archivo Start_Linux para abrir el programa. • Pero antes de ejecutar el archivo damos clic en cambiar propiedades y parecerá la siguiente pantalla en la cual cambiaremos en la parte de ejecutar a cualquiera, de esta manera podrá abrirse el programa (Figura 3.4): Figura 3.4. Entorno MyOpenLab 3.3. Instalación de ID de Arduino a Raspberry Pi Se modifican algunas características en el sistema para descargar y actualizar una lista de paquetes. Se ingresa lo siguiente: sudo nano /etc/apt/sourse.list La tercera línea de código se modifica quitando el # y se guarda tecleando la letra O. Enseguida se introduce: sudo apt-get update y sudo apt-get upgrade, para realizar la descarga y actualización de paquetes necesarios para la instalación del ID de Arduino (Figura 3.5) 49 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” Figura 3.5. Actualización de paquetes en Raspberry • Enseguida se escribe en la terminal lo siguiente para la instalación de ID de Arduino: sudo apt-get install arduino* • Al finalizar la instalación, se cierra la terminal y en la parte de Programación del sistema operativo aparecerá anclado el ID de Arduino (Figura 3.6). Figura 3.6. ID de Arduino. 50 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” 3.4. Instalación de sistema operativo a Tinker Board Visitar la página https://www.asus.com/mx/Single-Board-Computer/Tinker-Board/ e ir a la parte de descargas para descargar el sistema operativo conveniente (Figura 3.7), en este caso fue TinkerOs- Debian Figura 3.7. Sistemas operativos Requerimientos Tarjeta Micro SD con al menos 8GB de capacidad. Cable Micro USB y un adaptador de 5V/2~2.5A con LPS. Monitor con cable HDMI. Teclado y mouse. Nota: Para mejorar la estabilidad del sistema, es altamente recomendable usar una tarjeta SD de alta velocidad (Clase 10 o superior). Procedimiento Inserta la tarjeta microSD en una PC con Windows. Descarga y ejecuta la aplicación "Win32DiskImager". Navega y selecciona el archivo de la imagen que será flasheada. Selecciona la tarjeta microSD como fuente de destino. Haz clic en "Escribir". 51 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas” Retira con seguridad la tarjeta microSD con la nueva imagen de arranque, luego insértala en la ranura de la Tinker Board. Figura 3.8. Entorno TinkerOS-Debian 3.5. Instalación del programa MyOpenLab en Tinker Board Para la instalación de MyOpenLab es necesario descargar e instalar Java, para esto se abre la terminal del sistema operativo TinkerOS- Debian y se teclea lo siguiente, esto para actualizar las librerías. Sudo apt-get update Enseguida se introduce lo siguiente para instalar el java Sudo apt-get install default-jre (Figura 3.9). 52 “Evaluación de computadoras de placa única para la integración de sistemas analíticos al internet de las cosas”
Compartir