<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>2518-4431</journal-id>
<journal-title><![CDATA[Investigación & Desarrollo]]></journal-title>
<abbrev-journal-title><![CDATA[Inv. y Des.]]></abbrev-journal-title>
<issn>2518-4431</issn>
<publisher>
<publisher-name><![CDATA[UNIVERSIDAD PRIVADA BOLIVIANA]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S2518-44312018000100009</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[SISTEMA DE MONITOREO ENERGÉTICO Y CONTROL DOMÓTICO BASADO EN TECNOLOGÍA “INTERNET DE LAS COSAS”]]></article-title>
<article-title xml:lang="en"><![CDATA[AN ENERGY MONITORING AND DOMOTIC CONTROL SYSTEM BASED ON “INTERNET OF THINGS” TECHNOLOGY]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Escobar Gallardo]]></surname>
<given-names><![CDATA[Erick]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Villazón]]></surname>
<given-names><![CDATA[Alex]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad Privada Boliviana Centro de Investigaciones Ópticas y Energías (CIOE) ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<aff id="A02">
<institution><![CDATA[,Universidad Privada Boliviana Centro de Investigaciones de Nuevas Tecnologías Informáticas (CINTI) ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>00</month>
<year>2018</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>00</month>
<year>2018</year>
</pub-date>
<volume>18</volume>
<numero>1</numero>
<fpage>103</fpage>
<lpage>116</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.org.bo/scielo.php?script=sci_arttext&amp;pid=S2518-44312018000100009&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.bo/scielo.php?script=sci_abstract&amp;pid=S2518-44312018000100009&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.bo/scielo.php?script=sci_pdf&amp;pid=S2518-44312018000100009&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[El “Internet de las Cosas” (Internet of Things - IoT por sus siglas en inglés) es una tecnología en la que pequeños dispositivos electrónicos pueden conectarse a internet, permitiendo el desarrollo de nuevas aplicaciones y servicios. Recientemente, la aplicación de la tecnología IoT a sistemas de eficiencia energética ha despertado interés, sobre todo para el monitoreo de la eficiencia de sistemas en tiempo real. Este artículo presenta el diseño y desarrollo de ChuchusMOTE, un sistema de monitoreo energético y control domótico a través del uso de una red de sensores y actuadores inalámbricos, que utilizan el protocolo de comunicación asíncrono MQTT (Message Queue Telemetry Transport) para el envío de datos y permite su visualización en tiempo real. Se desarrollaron módulos electrónicos implementados sobre la plataforma de desarrollo NodeMCU, una placa hardware inalámbrica que incluye módulos de comunicación compatible con el protocolo MQTT. El sistema ChuchusMOTE fue desplegado para monitorear en tiempo real variables energéticas de paneles solares (voltaje, corriente, potencia y energía generada), el consumo de energía eléctrica y estimar el consumo energético dentro del “Laboratorio de Energías Renovables” de la Universidad Privada Boliviana. Asimismo, ChuchusMOTE controla y automatiza el sistema de iluminación, calefacción solar y extracción de aire de dicho laboratorio.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[The “Internet of Things” or simply IoT, is a technology where small electronic devices can be connected to the internet, allowing the development of new applications and services. Recently, applying IoT technology to energy efficiency systems has attracted interest, notably for real-time efficiency monitoring. In this article, we present the design and development of ChuchusMOTE, an energy monitoring and domotic control system, based on a network of wireless sensors and actuators communicating through MQTT (Message Queue Telemetry Transport), an asynchronous protocol that is used to send data and enables real-time visualization. We implemented electronic modules based on NodeMCU, a wireless development board that includes communication modules that are compatible with the MQTT protocol. ChuchusMOTE was deployed to monitor in real-time energy variables of solar panels (voltage, current, power and generated energy), the consumption of electrical energy, and estimate the energy consumption of the “Renewable Energy Laboratory” at Universidad Privada Boliviana. Furthermore, ChuchusMOTE controls and automatize the lab’s lightning, solar heating and air extraction systems.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[Internet de las Cosas]]></kwd>
<kwd lng="es"><![CDATA[Monitoreo energético]]></kwd>
<kwd lng="es"><![CDATA[Domótica]]></kwd>
<kwd lng="en"><![CDATA[Internet of Things]]></kwd>
<kwd lng="en"><![CDATA[Energy monitoring]]></kwd>
<kwd lng="en"><![CDATA[Domotics]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p align="left"><font color="#800000" size="2" face="Verdana, Arial, Helvetica, sans-serif">http://dx.doi.org/10.23881/idupbo.018.1-8i</font></p>     <p align="right"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><b>ART&Iacute;CULOS &ndash; INGENIER&Iacute;AS</b></b></font></p>     <p align="right">&nbsp;</p>     <p align=center><font size="4" face="Verdana, Arial, Helvetica, sans-serif"><b>SISTEMA DE MONITOREO ENERGÉTICO Y CONTROL DOMÓTICO BASADO EN TECNOLOGÍA “INTERNET DE LAS COSAS”</b></font></p>      <p align=center><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>&nbsp;</b></font></p>      <p align=center><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>AN ENERGY MONITORING AND DOMOTIC CONTROL SYSTEM BASED ON “INTERNET OF THINGS” TECHNOLOGY</b></font></p>     <p align=center>&nbsp;</p>     <p align=center><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>&nbsp;</b></font></p>     <p align=center><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Erick Escobar Gallardo<sup>1 </sup>y Alex Villazón<sup>2</sup> </b></font></p>      <p align=center><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><sup>1</sup><i>Centro de Investigaciones Ópticas y Energías </i>(CIOE)</font></p>      ]]></body>
<body><![CDATA[<p align=center><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><sup>2</sup><i>Centro de Investigaciones de Nuevas Tecnologías Informáticas </i>(CINTI) </font></p>      <p align=center><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>Universidad Privada Boliviana</i></font></p>      <p align=center><font size="2" face="Verdana, Arial, Helvetica, sans-serif">(Recibido el 2 de Mayo 2018, aceptado para publicación el 17 de Junio 2018)</font></p>      <p align="center">&nbsp;</p>     <p align="center">&nbsp;</p> <hr align="JUSTIFY" noshade>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>RESUMEN</b></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>&nbsp;</b></font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El “Internet de las Cosas” (Internet of Things - IoT por sus siglas en inglés) es una tecnología en la que pequeños dispositivos electrónicos pueden conectarse a internet, permitiendo el desarrollo de nuevas aplicaciones y servicios. Recientemente, la aplicación de la tecnología IoT a sistemas de eficiencia energética ha despertado interés, sobre todo para el monitoreo de la eficiencia de sistemas en tiempo real. Este artículo presenta el diseño y desarrollo de ChuchusMOTE, un sistema de monitoreo energético y control domótico a través del uso de una red de sensores y actuadores inalámbricos, que utilizan el protocolo de comunicación asíncrono MQTT (Message Queue Telemetry Transport) para el envío de datos y permite su visualización en tiempo real. Se desarrollaron módulos electrónicos implementados sobre la plataforma de desarrollo NodeMCU, una placa hardware inalámbrica que incluye módulos de comunicación compatible con el protocolo MQTT. El sistema ChuchusMOTE fue desplegado para monitorear en tiempo real variables energéticas de paneles solares (voltaje, corriente, potencia y energía generada), el consumo de energía eléctrica y estimar el consumo energético dentro del “Laboratorio de Energías Renovables” de la Universidad Privada Boliviana. Asimismo, ChuchusMOTE controla y automatiza el sistema de iluminación, calefacción solar y extracción de aire de dicho laboratorio.</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Palabras Clave</b>: Internet de las Cosas, Monitoreo energético, Domótica.</font></p>  <hr align="JUSTIFY" noshade>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>ABSTRACT</b></font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">The “Internet of Things” or simply IoT, is a technology where small electronic devices can be connected to the internet, allowing the development of new applications and services. Recently, applying IoT technology to energy efficiency systems has attracted interest, notably for real-time efficiency monitoring. In this article, we present the design and development of ChuchusMOTE, an energy monitoring and domotic control system, based on a network of wireless sensors and actuators communicating through MQTT (Message Queue Telemetry Transport), an asynchronous protocol that is used to send data and enables real-time visualization. We implemented electronic modules based on NodeMCU, a wireless development board that includes communication modules that are compatible with the MQTT protocol. ChuchusMOTE was deployed to monitor in real-time energy variables of solar panels (voltage, current, power and generated energy), the consumption of electrical energy, and estimate the energy consumption of the “Renewable Energy Laboratory” at Universidad Privada Boliviana. Furthermore, ChuchusMOTE controls and automatize the lab’s lightning, solar heating and air extraction systems.</font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Keywords:</b> Internet of Things, Energy monitoring, Domotics.</font></p> <hr align="JUSTIFY" noshade>     <p align="justify">&nbsp;</p>      <p align="justify">&nbsp;</p>      <p align="justify"><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>1.&nbsp;&nbsp;&nbsp;&nbsp; INTRODUCCIÓN</b></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>&nbsp;</b></font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El “Internet de las cosas” o “Internet of Things” (que en el resto del artículo referiremos simplemente como IoT, por sus siglas en inglés), es la tecnología que permite la interconexión de dispositivos físicos, vehículos, edificios y otros elementos integrados con electrónica, software, sensores, actuadores y redes de conectividad que permiten a estos objetos recopilar e intercambiar datos para su posterior análisis [1]. A diferencia del procesamiento y control de la señal digital tradicional que consumen demasiada potencia en los nodos y demasiado ancho de banda en la red al procesar series de tiempo periódicas, la tecnología IoT permite realizar <i>muestreo por evento</i> o <i>muestreo aperiódico</i> reduciendo así el consumo energético. </font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Por otro lado, los sistemas de control y monitoreo en tiempo real son importantes en múltiples áreas y aplicaciones, gracias a que otorgan la habilidad de poder monitorear la eficiencia del sistema analizado, además de poder diagnosticar errores y fallas presentes en estos. Estas fallas se ven reflejadas en las múltiples herramientas disponibles en los sistemas de monitoreo en tiempo real, e.g. a través de gráficas de las variables monitoreadas. Dentro de los sistemas de control, el control domótico permite automatizar sistemas eléctricos y electrónicos ejecutando rutinas programadas para así mejorar la eficiencia energética de estos sistemas y proveer facilidad de manejo al usuario final. </font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Combinando características de monitoreo y control domótico con la tecnología IoT, se puede obtener un sistema de análisis de eficiencia y control de cargas eléctricas y electrónicas para poder ver así el efecto de incidencia sobre el sistema analizado y el consumo total energético. Debido a las restricciones en potencia y ancho de banda, el IoT permite la computación distribuida de los eventos generados por los sensores. Si bien los procesadores relativamente pequeños de los sensores pueden realizar un procesamiento útil en muchas secuencias de datos, el reconocimiento de eventos de interés, mediante el procesamiento externo y envío de datos utilizando un protocolo ligero, reduce la cantidad de ancho de banda de la red consumida y también reduce el consumo de energía ya que la comunicación inalámbrica que requiere grandes cantidades de energía [2].</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En este artículo se describe el diseño y desarrollo de ChuchusMOTE<a href="#_ftn1" name="_ftnref1" title="">[1]</a> un sistema de monitoreo de variables energéticas y control domótico basado en la tecnología IoT, que consta de nodos electrónicos sensores y actuadores encargados de obtener variables energéticas y controlar remotamente cargas eléctricas y electrónicas. Este sistema sirve para aplicaciones de análisis y mejora de eficiencia de sistemas fotovoltaicos, así como aplicaciones de análisis de consumo energético de un entorno. Utilizando la tecnología IoT se puede conectar sensores con los módulos de control y análisis de datos, a través de mensajes ligeros de manera asíncrona. Asimismo, el sistema permite guardar todos los datos en una base de datos, y visualizar todas las variables controladas en tiempo real a través de aplicación Web.</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El resto del artículo está estructurado de la siguiente manera: La Sección 2 presenta la arquitectura de ChuchusMOTE. La Sección 3 describe en detalle el diseño, desarrollo del prototipo incluyendo el software de control y visualización, y una estimación de costo del sistema desarrollado. Los resultados obtenidos se muestran en la Sección 4 y finalmente la Sección 5 concluye el artículo.</font></p>     <p align="justify">&nbsp;</p>     ]]></body>
<body><![CDATA[<p align="justify"><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>2.&nbsp;&nbsp;&nbsp;&nbsp; ARQUITECTURA DEL SISTEMA CHUCHUSMOTE</b></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>&nbsp;</b></font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para poder separar, de acuerdo a su funcionalidad, los diferentes componentes de un sistema IoT, se considera la taxonomía definida por Gubbi <i>et al</i>. [3] donde definen 3 elementos genéricos en una arquitectura IoT: </font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">(1)&nbsp; <b>Hardware:</b> Compuesto por sensores, actuadores y hardware de comunicación.</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">(2)&nbsp; <b>Middleware:</b> Capa de software que incluye protocolos de comunicación, almacenamiento y herramientas de cómputo para análisis de datos</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">(3)&nbsp; <b>Presentación:</b> Visualización y herramientas de interpretación que pueden utilizar para diferentes aplicaciones.</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La arquitectura del sistema ChuchusMOTE descrita en la <a href="#f1">Figura 1</a>, sigue una estructura IoT en 3 niveles, como se describe a continuación.</font></p>      <p align="center"><a name="f1"></a><img src="/img/revistas/riyd/v18n1/a09_figura_01.gif" width="447" height="388"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>&nbsp;</b></font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>2.1.&nbsp;&nbsp;&nbsp; Nivel Hardware</b></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>&nbsp;</b></font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Está conformado por múltiples microcontroladores (Micro Controller Unit o CMU), capaces de adquirir señales a través de sus periféricos. El sistema cuenta con el microcontrolador ESP8266 [4], que es un MCU de bajo costo, que incluye con toda la pila de protocolos TCP/IP y una capacidad para transmitir datos vía Wi-Fi. Se implementaron cuatro módulos diferentes sobre placa de desarrollo NodeMCU<a href="#_ftn2" name="_ftnref2" title="">[2]</a>, cada uno con una función específica:</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">a)&nbsp;&nbsp;&nbsp;   <i>NodeMCU_SP </i>: Recolección variables de paneles solares y de un piranómetro</font></p>      ]]></body>
<body><![CDATA[<p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">b)&nbsp;&nbsp;&nbsp; <i>NodeMCU_AC </i>:  Medición de corriente AC</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">c)&nbsp;&nbsp;&nbsp;&nbsp;   <i>NodeMCU_Lights</i> : Control para encendido y apagado de luces</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">d)&nbsp;&nbsp;&nbsp;   <i>NodeMCU_Fan    </i>: Control para encendido/apagado de un extractor de aire</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Asimismo el sistema cuenta con una placa Arduino (<i>Arduino_SolarHeater</i>), que se ocupa de enviar la temperatura tomada de varios sensores y decide el encendido/apagado de un calefón solar. </font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>2.2.&nbsp;&nbsp;&nbsp; Nivel Middleware</b></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>&nbsp;</b></font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La capa middleware de ChuchusMOTE cuenta con los siguientes componentes: </font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">a)&nbsp;&nbsp;&nbsp; Una aplicación web que implementa la lógica del sistema</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">b)&nbsp;&nbsp;&nbsp;   Una base de datos para almacenar los datos generados por los dispositivos del nivel hardware.</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">c)&nbsp;&nbsp;&nbsp;&nbsp; Un servicio de comunicación ligero para envío de datos de manera asíncrona.</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Antes de describir estos componentes, observemos que la comunicación entre los diferentes elementos del sistema sigue un modelo cliente-servidor, utilizando los protocolos HTTP (Hypertext Transport Protocol) [5] y MQTT (Message Queueing Transport Protocol) [6], de la siguiente manera:</font></p>      ]]></body>
<body><![CDATA[<p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&bull;&nbsp; <b>Uso del protocolo HTTP</b></font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El protocolo HTTP, que es el protocolo de base de la tecnología Web, incluye una serie de métodos de petición para la interacción entre cliente y servidor. ChuchusMOTE utiliza una interface de tipo RESTful [7] simplificada que utiliza dos métodos: GET para solicitar información al servidor y POST para enviar información al servidor. El nodo electrónico Arduino_SolarHeater utiliza el interface REST para enviar información leída de sus sensores a través de la API (Application Programming Interface) desarrollada en el servidor ChuchusMOTE, y a su vez implementa un mini-servidor REST para recibir datos del servidor. El nodo NodeMCU_Fan también utiliza el interface REST para solicitar información sobre el modo de operación y temperatura límite (o “set point”).</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&bull;&nbsp; <b>Uso del protocolo MQTT</b></font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El protocolo MQTT que está basado en el patrón “publicación/suscripción” o “publish/subscribe”, es simple y ligero, diseñado para dispositivos con restricciones y con poco ancho de banda disponible para su comunicación, alta latencia o no confiables [8]. Este protocolo es por ende idóneo para aplicaciones IoT. Como muestra la <a href="#f2">Figura 2</a>, las interacciones entre elementos de tipo “Publisher” y “Subscriber” se realiza a través de una entidad intermedia (llamada <i>Broker MQTT</i>), que recibe eventos publicados organizados por “tópicos”, y los distribuye a aquellos suscritos a dichos tópicos. La comunicación es totalmente asíncrona, por lo que no se require tener explicitamente un canal de comunicación abierto constantemente. Adicionalmente MQTT soporta la noción de QoS (Quality of Service) que permite enviar mensajes siguiendo tres niveles de comunicación: 0 (at most once), 1 (at least once) y 2 (exactly once), indicando respectivamente que un mensaje será enviado sin garantias que llegue (best effort), llegará al menos una vez (pero puede ser duplicado), y llegará exactamente una vez sin duplicados. </font></p>      <p align="center"><a name="f2"></a><img src="/img/revistas/riyd/v18n1/a09_figura_02.gif" width="425" height="240"></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">ChuchusMOTE utiliza MQTT para enviar datos desde los diferentes nodos electrónicos. El servidor se suscribe a diferentes tópicos hacia los cuales los diferentes nodos envían los datos. Para el envío de datos no críticos (e.g. datos de sensores de temperatura), se utiliza un nivel de QoS de 0, puesto que la pérdida de datos no representa un problema. Sin embargo, para el envío de información de crítica de control, se utiliza un nivel de QoS de 2. </font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>2.2.1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Servidor ChuchusMOTE</b></font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El aplicación Web del Servidor ChuchusMOTE utiliza HTTP para comunicarse con los clientes Web (en la capa Presentación), y con el nodo Arduino a través del interface REST. La aplicación Web fue implementada utilizando la pila MEAN<a href="#_ftn3" name="_ftnref3" title="">[3]</a> (MongoDB, Express, AngularJS y Node.js), ampliamente basada en el lenguaje de programación JavaScript, ideal para el manejo de eventos asíncronos. El servidor, además de responder a las solicitudes HTTP de los clientes Web, también incluye un módulo MQTT para suscribirse al Broker MQTT y recibir las notificaciones asíncronas. Finalmente, para enviar los datos en tiempo-real a los clientes Web, el servidor ChuchusMOTE utiliza el módulo WebSocket socker.io<a href="#_ftn4" name="_ftnref4" title="">[4]</a> que permite abrir un canal bidireccional entre el servidor y el cliente, sin necesidad de cargar el contenido de toda la página de la aplicación en el cliente Web. </font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>2.2.2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Base de Datos</b></font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">ChuchusMOTE utiliza una base de datos MongoDB que es una base de datos NoSQL (i.e. no estructurada) y orientada a documentos [9]. El servidor ChuchusMOTE se conecta al servidor MongoDB utilizando el modulo “mongoose” de Node.js. MongoDB almacena datos en documentos similares a JSON<a href="#_ftn5" name="_ftnref5" title="">[5]</a> de manera flexible, lo que significa que los campos pueden variar de documento a documento y la estructura de datos se puede cambiar con el tiempo. Cada variable almacenada en la base de datos tiene un modelo propio lo que facilita la búsqueda y organización de la información solicitada por los clientes web. </font></p>      ]]></body>
<body><![CDATA[<p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Los datos enviados por los nodos electrónicos, son almacenados en el servidor MongoBD en forma de documentos JSON con la siguiente estructura:</font></p>      <blockquote>       <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">{</font></p>       <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">   &quot;_id&quot;     : ... ,</font></p>       <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">       &quot;sensorID&quot; : ... ,</font></p>       <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">       &quot;sensorVAL&quot; : ... ,</font></p>       <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">       &quot;timestamp&quot; : ...</font></p>       <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">}</font></p> </blockquote>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Con la siguiente correspondencia:</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&bull;&nbsp; <b>_id :</b> Identificador único (llave primaria) de cada documento en la base de datos.</font></p>      ]]></body>
<body><![CDATA[<p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&bull;&nbsp; <b>sensorID :</b> Correspondiente al identificador del sensor del nodo electrónico que envía los datos, y que se usa como ID el tópico MQTT.</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&bull;&nbsp; <b>sensorVAL :</b> Destinado a guardar los valores que envían los sensores</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&bull;&nbsp; <b>timestamp :</b> Contiene la fecha en la cual se guardaron los datos en la base de datos. El valor corresponde al standard <i>Unix epoc time</i>, i.e. milisegundos desde 01/01/1970 hasta el instante en que los datos son almacenados dentro de la base de datos.</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>2.2.3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Broker MQTT</b></font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para la distribución de los mensajes MQTT se utilizó   el Broker Open Source Eclipse MOSQUITTO<a href="#_ftn6" name="_ftnref6" title="">[6]</a> que implementa el protocolo MQTT 3.1.1, que es el estándar utilizado en ChuchusMOTE. </font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Si bien cada componente del nivel middleware pueden desplegarse en servidores físicos diferentes, la aplicación Web del Servidor ChuchusMOTE, la base de datos MongoDB, y el Broker MQTT fueron instalados en un mini-computador RaspberryPi 3 Modelo B<a href="#_ftn7" name="_ftnref7" title="">[7]</a>, de manera que el sistema sea más compacto y de bajo costo. Los tres componentes, pueden funcionar de manera separada con un mínimo de esfuerzo de re-configuración.</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>&nbsp;</b></font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>2.3.&nbsp;&nbsp;&nbsp;Nivel Presentación</b></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>&nbsp;</b></font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En el nivel de presentación de ChuchusMOTE, se implementó una aplicación interactiva utilizando el lenguaje de programación JavaScript y HTML con hojas de estilo CSS para desplegar una interfaz amigable al usuario. La interacción entre el servidor y cliente se realiza a través varios scripts que son encargados de permitir desplegar distintas funciones dinámicas. Para el despliegue de gráficos se utilizó la librería AmCharts<a href="#_ftn8" name="_ftnref8" title="">[8]</a> que permite la visualización interactiva de datos en diferentes tipos de vistas (e.g. line charts, pie chart). Para la recepción de datos en tiempo real, el interface Web cliente utiliza una conexión bidireccional WebSocket socket.io, en codigo embedido en las páginas Web.</font></p>      <p align="center"><a name="f3"></a><img src="/img/revistas/riyd/v18n1/a09_figura_03.gif" width="469" height="414"></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La <a href="#f3">Figura 3</a> muestran los 2 sectores de la interfaz gráfica Web: el sector (1) contiene todo el menú de navegación y opciones del sistema (panel de control, visualización de datos históricos, visualización por tipo, visualización de datos en tiempo-real y búsqueda), y el sector (2) contiene el marco de visualización de datos.</font></p>     ]]></body>
<body><![CDATA[<p align="justify">&nbsp;</p>     <p align="justify"><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>3.&nbsp;&nbsp;&nbsp;&nbsp;DISEÑO Y DESARROLLO DEL SISTEMA</b></font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">A continuación se describe la estructura del servidor ChuchusMOTE y la interacción entre los diferentes módulos. Asimismo, describimos en detalle la comunicación entre los componentes y como se combinaron los protocolos de comunicación para el envío de mensajes de datos y control. Finalmente, describimos la implementación de los dispositivos electrónicos desarrollados, su lógica de funcionamiento y cómo interactúan con el resto del sistema.</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>3.1.&nbsp;&nbsp;&nbsp; ESTRUCTURA DEL SERVIDOR CHUCHUSMOTE</b></font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La estructura y diferentes módulos que conforman el servidor ChuchusMOTE se muestra en la <a href="#f4">Figura 4</a>. </font></p>      <p align="center"><a name="f4"></a><img src="/img/revistas/riyd/v18n1/a09_figura_04.gif" width="462" height="314"></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El servidor ChuchusMOTE integra 5 módulos usuario: <i>Home</i> (página principal de la aplicación), <i>Real Time</i> (visualización de datos en tiempo real), <i>Control</i> (interacción con los nodos), <i>Search</i> (búsqueda de datos históricos) y <i>SCADA</i><a href="#_ftn9" name="_ftnref9" title="">[9]</a> (representación gráfica del sistema). El componente <i>Gestor de datos</i>, interactúa con los 5 módulos de manera directa haciendo de interface con la base de datos y el Broker MQTT (e.g. para búsqueda de datos históricos o visualización en tiempo real respectivamente). Cuando el módulo <i>Control</i> es desplegado, éste se conecta al Broker MQTT para poder enviar eventos de control a los diferentes nodos electrónicos que previamente se han suscrito a los tópicos de control correspondientes. El módulo <i>Control</i> requiere autentificación de usuario previa, para poder realizar operaciones remotas de control domótico. El componente <i>Auth </i>gestiona la autentificación de usuarios.</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>&nbsp;</b></font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>3.2.&nbsp;&nbsp;&nbsp; FUNCIONAMIENTO Y COMUNICACIÓN</b></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>&nbsp;</b></font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La <a href="#f5">Figura 5</a> muestra el diagrama de funcionamiento del sistema completo, donde para simplificar se describe la comunicación entre un nodo sensor genérico NodeMCU, el servidor Web y el cliente Web.</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a name="f5"></a><img src="/img/revistas/riyd/v18n1/a09_figura_05.gif" width="675" height="431"></font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El servidor ChuchusMOTE inicia suscribiéndose a todos los “tópicos de datos” a través de los cuales recibirá información de los diferentes NodeMCU (1). Aquellos NodeMCU que requieran recibir mensajes de control para actuadores, se suscriben a su vez a los “tópicos de control” correspondientes (2). Para el envío de datos, el NodeMCU obtiene el valor leído del sensor al que se encuentra conectado (3). Luego, el nodo genera un mensaje en formato JSON con los datos y los publica en el tópico MQTT respectivo (4) y el servidor recibe los mensajes según el tópico al que se subscribió (5).  El servidor procesa el mensaje y lo almacena en la base de datos MongoDB (6) sin efectuar ningún cambio de formato adicional, resultando en una operación eficiente de escritura. Cuando un cliente Web se conecta al Servidor ChuchusMOTE, éste responde con la aplicación gráfica interactiva Web y abre un canal WebSocket socket.io (7) para el envío y recepción de datos de manera bidireccional. Si el usuario elige la visualización en tiempo-real, todo mensaje MQTT que llegue posteriormente al servidor es enviado al cliente Web por el WebSocket, mostrando la actualización de datos. Si el usuario accede al módulo de control (previa autentificación), podrá enviar comandos de control al NodeMCU correspondiente a través de servidor (8). Para esto, el servidor genera un nuevo mensaje de control en formato JSON, si es necesario lee información de la base de datos (9) y finalmente publica el mensaje MQTT en el tópico correspondiente (10). Los mensajes de control serán recibidos por el NodeMCU con subscripción al tópico (11), el cual lo procesará y realizará la operación de control en el actuador correspondiente (12). </font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Si bien la publicación de mensajes desde los NodeMCU no requiere algún tipo de seguridad en particular, aquellos de control si requieren ser protegidos. Además de la protección de autentificación en el módulo <i>Control</i> de la aplicación Web (ver <a href="#f4">Figura 4</a>), se protegió la comunicación de control en las pruebas de laboratorio con autentificación básica (usuario/contraseña), y para el despliegue en la red abierta utilizando MQTT sobre el protocolo criptográfico TLS/SSL [10].</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>3.3.&nbsp;&nbsp;&nbsp; DESARROLLO DE LOS NODOS ELECTRÓNICOS</b></font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se desarrollaron cinco nodos electrónicos para el sistema ChuchusMOTE: dos exclusivamente para la recolección de datos con sensores y tres actuadores con sensores. Las <a href="#t1">TABLA 1</a> y <a href="#t2">TABLA 2</a> describen todos los nodos electrónicos con su función, sensores, actuadores y las variables medidas. </font></p>      <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>&nbsp;</b></font><a name="t1"></a><img src="/img/revistas/riyd/v18n1/a09_tabla_01.gif" width="628" height="214"></p>     <p align="center">&nbsp;</p>     <p align="center"><a name="t2"></a><img src="/img/revistas/riyd/v18n1/a09_tabla_02.gif" width="746" height="417"></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">A continuación se describe cada uno de los nodos, y el funcionamiento del software embebido desarrollado para cada uno. La programación del nodo se realizó en el lenguaje C++ dentro del Arduino IDE<a href="#_ftn10" name="_ftnref10" title="">[10]</a> que permite añadir modulos de software a la placa de desarrollo NodeMCU con el microcontrolador ESP826.</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>3.3.1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nodo electrónico NodeMCU_SP</b></font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El nodo NodeMCU_SP está encargado de recolectar información proveniente de varios sensores relativos a paneles solares. La <a href="#f6">Figura 6</a> muestra en la parte superior el esquema de conexión del NodeMCU_SP y la parte inferior el desarrollo electrónico correspondiente. Las variables recolectadas de los paneles solares son las siguientes:</font></p>      ]]></body>
<body><![CDATA[<p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&bull;&nbsp; Voltaje: Variable medida por un divisor de voltaje</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&bull;&nbsp; Corriente: Variable medida por el sensor ACS712</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&bull;&nbsp; Potencia: Variable resultante de la multiplicación de Voltaje por Corriente</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&bull;&nbsp; Energía: Integral de la potencia entregada por los paneles durante una hora</font></p>      <p align="center"><a name="f6"></a><img src="/img/revistas/riyd/v18n1/a09_figure_06.jpg" width="697" height="502"></p>     <p align="center">&nbsp;</p>     <p align="center"><a name="t3"></a><img src="/img/revistas/riyd/v18n1/a09_tabla_03.gif" width="718" height="226"></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Al iniciarse, el nodo NodeMCU_SP   recibe los parámetros de conexión hacia el enrutador Wi-Fi, y la dirección del   Broker MQTT. Luego, procede a la lectura de los datos de los sensores y debido   a que se usa un multiplexor analógico, primero se envía un valor digital al   multiplexor para habilitar la salida analógica a cada sensor. Posteriormente   realiza el envío de los datos leído al Broker MQTT sobre los tópicos   respectivos a cada sensor, i.e. panel/amp, panel/voltage, panels/power y panels/energy del nodo NodeMCU_SP como muestra la <a href="#t3">TABLA 3</a></font></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>3.3.2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nodo electrónico NodeMCU_AC</b></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>&nbsp;</b></font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El nodo NodeMCU_AC está encargado de realizar la medición del consumo eléctrico. La <a href="#f7">Figura 7</a> muestra el desarrollo electrónico del nodo, que incluye el sensor de corriente eléctrica ACS712 mostrado en el recuadro. Una vez los parámetros MQTT inicializados y la conexión Wi-Fi establecida, el nodo realiza la lectura del valor de intensidad de corriente eléctrica utilizando el sensor ACS712, y luego se calcula la potencia eléctrica eficaz como el <i>valor cuadrático medio</i> o RMS (del inglés <i>root mean square</i>). El algoritmo usado en este nodo consiste en realizar mediciones durante medio segundo, lo que equivale a realizar mediciones durante 25 ciclos (señal de 50Hz). Durante este tiempo se obtienen las lecturas máximas (<i>Imax</i>) y mininas (<i>Imin</i>), y se calcula la intensidad de corriente pico (<i>Ip</i>) como el promedio de ambas lecturas. A este resultado le restamos la amplitud del ruido que está presente cuando la corriente es 0. Con la corriente pico se procede a calcular la intensidad de corriente en RMS y la potencia eléctrica en RMS. Estos valores son finalmente publicados en un mensaje MQTT en el tópico ac/power del nodo NodeMCU_AC como muestra la <a href="#t3">TABLA 3</a>. El nodo entra modo reposo durante 1 minuto, y vuelve a leer los datos y publicarlos. </font></p>      ]]></body>
<body><![CDATA[<p align=center><a name="f7"></a><img src="/img/revistas/riyd/v18n1/a09_figure_07.jpg" width="343" height="334"></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>3.3.3.&nbsp;&nbsp;&nbsp;Nodo electrónico NodeMCU_Lights</b></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>&nbsp;</b></font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El nodo NodeMCU_Lights está encargado del encendido y apagado de luces, a través de la recepción de mensajes MQTT. La <a href="#f8">Figura 8</a> muestra el desarrollo electrónico del nodo NodeMCU_Lights. Cuando llega el mensaje de control sobre el protocolo MQTT en el tópico control/lights (ver <a href="#t3">TABLA 3</a>), y dependiendo del mensaje recibido, el nodo envía una acción sobre un actuador que controlada las luces (para cambiar su estado). </font></p>      <p align="center"><a name="f8"></a><img src="/img/revistas/riyd/v18n1/a09_figure_08.jpg" width="353" height="295"></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>3.3.4.&nbsp;&nbsp;&nbsp;Nodo electrónico NodeMCU_Fan</b></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>&nbsp;</b></font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El nodo NodeMCU_Fan está encargado del control de un extractor de aire. La <a href="#f9">Figura 9</a> muestra el desarrollo electrónico del NodeMCU_Fan. </font></p>      <p align="center"><a name="f9"></a><img src="/img/revistas/riyd/v18n1/a09_figure_09.jpg" width="365" height="262"></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Este nodo funciona en dos modos: manual o automático (según el modo que el usuario escogió en el Modo de Control). Al inicio, el NodeMCU_Fan utiliza el interface REST del servidor ChuchusMOTE para solicitar el último dato de modo de ejecución guardado en la base de datos. En modo manual, el nodo NodeMCU_Fan se suscribe al tópico control/fan (ver <a href="#t4">TABLA 4</a> - INTERFACE REST DE CHUCHUSMOTE TABLA 4) y espera las ordenes de encendido/apagado posteriores.</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En el modo automático el “set point” (i.e. el valor límite en °C) es devuelto en la respuesta de la solicitud REST. Luego, el nodo NodeMCU_Fan lee los valores de temperatura ambiente (interior) y exterior de los sensores, y dependiendo de la diferencia con el “set point”, i.e. si la diferencia entre exterior e interior sobrepasa el “set point”, procede accionar el actuador enviando una señal positiva de voltaje y cerrando el canal de comunicación eléctrico entre la línea de alimentación de tensión alterna y el extractor de aire. Los valores de temperatura exterior e interior son publicados en el tópico MQTT temp/exterior y temp/interior, respectivamente.</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>3.3.5.&nbsp;&nbsp;&nbsp;Nodo electrónico Arduino_Solar Heater</b></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>&nbsp;</b></font></p>      ]]></body>
<body><![CDATA[<p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El nodo Arduino_SolarHeater (ver <a href="#f10">Figura 10</a>) está encargado del encendido y apagado automático del calefactor solar, y la lectura de 4 valores de temperatura: </font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&bull;&nbsp; Tin_water: Temperatura en °C de entrada de agua al radiador</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&bull;&nbsp; Tout_water: Temperatura en °C de salida de agua del sistema de calefacción solar</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&bull;&nbsp; Tin_air: Temperatura en °C de entrada de aire al ventilador</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&bull;&nbsp; Tout_air: Temperatura en °C de salida de aire de la superficie del radiador</font></p>      <p align="center"><a name="f10"></a><img src="/img/revistas/riyd/v18n1/a09_figure_10.jpg" width="383" height="329"></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">A diferencia de los otros nodos, el Arduino_SolarHeater utiliza una conexión Ethernet por cable. El nodo solicita al servidor el “set point” guardado en la base de datos a través de su interface REST, y compara el valor recibido al de los sensores de temperatura interior. En caso de ser inferior, se enciende el calefactor solar enviando un 0 lógico al actuador. Todos los datos leídos de temperatura y de calor calculados al servidor a través del interface REST correspondiente. La <a href="#t4">TABLA 4</a> muestra el interface REST de base de ChuchusMOTE.</font></p>      <p align="center"><a name="t4"></a><img src="/img/revistas/riyd/v18n1/a09_tabla_04.gif" width="742" height="269"></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>&nbsp;</b></font></p>      <p align="justify"><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>4.&nbsp;&nbsp;&nbsp;&nbsp; RESULTADOS</b></font></p>      ]]></body>
<body><![CDATA[<p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se instaló el sistema completo e hicieron pruebas de validación de los diferentes componentes del sistema. El sistema se encuentra totalmente funcional y los datos recolectados están disponibles en el portal de ChuchusMOTE<a href="#_ftn11" name="_ftnref11" title="">[11]</a> donde se puede interactuar con el sistema domótico, analizar los datos recolectados durante varios meses, y visualizar los datos en tiempo real los diferentes datos generados por distintos sensores, como muestra la <a href="#f11">Figura 11</a>. </font></p>      <p align="center"><a name="f11"></a><img src="/img/revistas/riyd/v18n1/a09_figura_11.gif" width="731" height="380"></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para la validación del sistema, que duró 4 semanas, se verificó que los nodos electrónicos comunican correctamente los datos al servidor, son guardados en la base de datos, y que los valores corresponden calculados corresponde a las especificaciones de los dispositivos en observación y controlados. Como ejemplo, a continuación mostramos la validación correspondiente a medidas tomadas el mismo día (27/07/2017).</font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En la parte solar, las mediciones fueron realizadas de un panel solar marca ZYTECH-ZT55S que tiene una potencia máxima teórica de 55W y una eficiencia máxima de 13%. La <a href="#f12">Figura 12</a> muestra la gráfica interactiva de medición del voltaje del panel solar observamos que el voltaje máximo medido es de aproximadamente 19.7 Voltios, y se observa claramente la curva característica correspondiente a la radiación solar de un día de invierno entre las 6:30 y las 18:00 aproximadamente. </font></p>      <p align="center"><a name="f12"></a><img src="/img/revistas/riyd/v18n1/a09_figura_12.gif" width="657" height="353"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>&nbsp;</b></font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La <a href="#f13">Figura 13</a> muestra la gráfica de medición de la intensidad de corriente del panel solar, observamos que la corriente máxima medida es de aproximadamente 2.6 A. Para la validación la medidas de potencia del panel solar, se evaluaron todos los datos recibidos durante un día soleado, como muestra la <a href="#f14">Figura 14</a> entre las 09:00 y las 18:00, donde se observa un incremento de potencia de salida del panel solar alcanzando un máximo de 50.888 Watts. Considerando que el panel solar utilizado por el sistema un ZYTECH-ZT55S que tiene una potencia máxima teórica de 55W según su hoja de datos<a href="#_ftn12" name="_ftnref12" title="">[12]</a>, se observa que no alcanza el máximo de potencia señalado. Sin embargo, la medición realizada por el nodo electrónico está muy cerca de dicho máximo teórico. Para entender esta diferencia, es necesario considerar que las mediciones realizadas por los sensores del nodo tienen un margen de error relativo del 1% para lecturas de voltaje y 5% para lecturas de intensidad de corriente. Además, se tiene que tomar en cuenta que existe un cierto deterioro inherente en las celdas fotovoltaicas debido a la antigüedad de los paneles utilizados (de aproximadamente 5 años).</font></p>     <p align="center"><a name="f13"></a><img src="/img/revistas/riyd/v18n1/a09_figura_13.gif" width="668" height="369"></p>     <p align="center">&nbsp;</p>     <p align="center"><a name="f14"></a><img src="/img/revistas/riyd/v18n1/a09_figura_14.gif" width="699" height="271"></p>     <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para el cálculo de la eficiencia del sistema fotovoltaico se tomó en cuenta el área de 0.492 m<sup>2 </sup>del panel solar y la radiación solar (W/m<sup>2</sup>) del momento en que se realiza la medición de potencia eléctrica del panel solar. En la <a href="#f15">Figura 15</a> se observa la eficiencia del panel solar, donde puede ver un pico máximo de eficiencia de 12.2%. Según la hoja de datos el panel solar cuenta con una eficiencia máxima de 13%; lo que demuestra que está dentro del rango de eficiencia aceptable. </font></p>      ]]></body>
<body><![CDATA[<p align="center"><a name="f15"></a><img src="/img/revistas/riyd/v18n1/a09_figura_15.gif" width="747" height="227"></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El sistema de control domótico se observa en la <a href="#f16">Figura 16</a>, se puede identificar todos los componentes del sistema de control: luces, extractor de aire y calefactor solar (controlado a través del “set point” definido por el usuario). Además, muestra el estado actual de todos los elementos controlados (encendido/apagado).</font></p>      <p align="center"><a name="f16"></a><img src="/img/revistas/riyd/v18n1/a09_figura_16.gif" width="726" height="369"></p>     <p align="justify">&nbsp;</p>     <p align="justify"><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><a name="_Ref482096524"><b>5.&nbsp;&nbsp;&nbsp;&nbsp; CONCLUSIONES</b></a></font></p>      <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En este artículo se presentó el diseño y desarrollo ChuchusMOTE, un sistema de monitoreo energético con control domótico basado en tecnología IoT, que incluye el desarrollo electrónico de una red de sensores y actuadores que comunican utilizando el protocolo de comunicación MQTT. Dicho protocolo, al estar basado en el modelo “publicación/subscripción”, permite una comunicación asíncrona entre los diferentes elementos del sistema tanto para el envío de datos como mensajes de control. ChuchusMOTE cuenta con un servidor y aplicación Web con una interface de tipo REST, y permite visualizar datos en tiempo-real, realizar búsquedas por fecha, y realizar operaciones remotas de control en los actuadores, entre otros. Los resultados obtenidos confirman la factibilidad de la combinación de la tecnología IoT, la programación embebida y el desarrollo electrónico utilizando elementos electrónicos comerciales simples y de facil acceso.</font></p>     <p align="justify">&nbsp;</p>     <p><b><font size="3" face="Verdana, Arial, Helvetica, sans-serif">6. BIBLIOGRAFÍA</font></b></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">[1] </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">International Telecommunication Union, &laquo;Internet of Things Global Standards Initiative,&raquo; ITU, Julio 2015. [En l&iacute;nea]. </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Disponible:     <a href="http://www.itu.int/en/ITU-T/gsi/iot/Pages/default.aspx" target="_blank">http://www.itu.int/en/ITU-T/gsi/iot/Pages/default.aspx</a>. [&Uacute;ltimo acceso: 11 Junio 2017].</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=967844&pid=S2518-4431201800010000900001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">[2] </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">D. Serpanos y M. Wolf, Internet-of-Things   (IoT) Architectures, Algorithms, Methodologies, Atlanta: Springer, 2018. </font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">[3] </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">J. Gubbi, R. Buyya, S. Marusic y M.   Palaniswami, &laquo;Internet of Things (IoT): A vision, architectural elements, and   future directions,&raquo; <i>Future Generation Computer Science, </i>vol. 29, n&ordm; 7, pp. 1645-1660, 2013. </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">[4] </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Espressif Systems, &laquo;ESP8266 SDK API   Guide,&raquo; Espressif Systems IOT Team, 2015.</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=967847&pid=S2518-4431201800010000900004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">[5] </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Internet Engineering Task Force,   &laquo;Hypertext Transfer Protocol -- HTTP/1.1,&raquo; IETF, 1999. [En l&iacute;nea]. Disponible: <a href="https://tools.ietf.org/html/rfc2616" target="_blank">https://tools.ietf.org/html/rfc2616</a>. [&Uacute;ltimo acceso: 31 Mayo 2017].</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=967848&pid=S2518-4431201800010000900005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">[6] </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">OASIS Consortium, &laquo;MQTT Version 3.1.1 -   OASIS Standard,&raquo; 29 Octorber 2014. [En   l&iacute;nea]. Disponible:   <a href="http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html" target="_blank">http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html</a>.</font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">[7] </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">R. Fielding, Architectural Styles and the   Design of Network-based Software Architectures, Irvine, USA: University of California, Irvine, 2000. </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=967850&pid=S2518-4431201800010000900007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">[8] </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Message Queue Telemetry Transport, &laquo;MQTT   F.A.Q,&raquo; MQTT, [En l&iacute;nea]. Disponible: <a href="http://mqtt.org/faq" target="_blank">http://mqtt.org/faq</a>.   [&Uacute;ltimo acceso: 30 Mayo 2017].</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=967851&pid=S2518-4431201800010000900008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">[9] </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">MongoDB, &laquo;What is MongoDB?,&raquo; MongoDB, [En   l&iacute;nea]. Disponible:   <a href="https://www.mongodb.com/what-is-mongodb" target="_blank">https://www.mongodb.com/what-is-mongodb</a>. [&Uacute;ltimo acceso: 26 Mayo 2017].</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=967852&pid=S2518-4431201800010000900009&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">[10] </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">J. Viega, M. Messier y P. Chandra, Network Security with OpenSSL, O'Reilly, 2002. </font></p> <hr align=JUSTIFY size=1 width="33%">        <p>&nbsp;</p>     <p><font size="3"><b><font face="Verdana, Arial, Helvetica, sans-serif">NOTAS</font></b></font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#_ftnref1" name="_ftn1" title="">[1]</a> ChuchusMOTE viene de la combinación de “chuchusmuti”, nombre nativo del producto de la leguminosa andina llamada “tarwi” (<i>Lupinus mutabilis), </i>y “MOTE”, nombre en inglés con el que se refiere comúnmente a los sensores IoT.</font></p>        <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#_ftnref2" name="_ftn2" title="">[2]</a> <a href="http://nodemcu.com/" target="_blank">http://nodemcu.com/</a></font></p>        <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#_ftnref3" name="_ftn3" title="">[3]</a> <a href="http://mean.io/" target="_blank">http://mean.io/</a></font></p>        <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#_ftnref4" name="_ftn4" title="">[4]</a> <a href="https://socket.io/" target="_blank">https://socket.io/</a></font></p>        <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#_ftnref5" name="_ftn5" title="">[5]</a> JavaScript Object Notation: es un formato de texto ligero para el intercambio de datos  </font></p>        <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#_ftnref6" name="_ftn6" title="">[6]</a> <a href="https://mosquitto.org/" target="_blank">https://mosquitto.org/</a></font></p>        <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#_ftnref7" name="_ftn7" title="">[7]</a> <a href="https://www.raspberrypi.org/" target="_blank">https://www.raspberrypi.org/</a></font></p>        <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#_ftnref8" name="_ftn8" title="">[8]</a> <a href="https://www.amcharts.com/" target="_blank">https://www.amcharts.com/</a></font></p>        <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#_ftnref9" name="_ftn9" title="">[9]</a> SCADA significa en inglés <i>Supervisory Control and Data Acquisition</i> (Supervisión, Control y Adquisición de Datos)</font></p>        <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#_ftnref10" name="_ftn10" title="">[10]</a> <a href="https://www.arduino.cc/" target="_blank">https://www.arduino.cc/</a></font></p>        ]]></body>
<body><![CDATA[<p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#_ftnref11" name="_ftn11" title="">[11]</a> <a href="http://research.upb.edu:3500" target="_blank">http://research.upb.edu:3500</a></font></p>        <p align="justify"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#_ftnref12" name="_ftn12" title="">[12]</a>     <a href="http://www.posharp.com/zt55s-solar-panel-from-zytech-solar_p1925167756d.aspx" target="_blank">http://www.posharp.com/zt55s-solar-panel-from-zytech-solar_p1925167756d.aspx</a></font></p>     <p align="justify">&nbsp;</p>      ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="book">
<collab>International Telecommunication Union</collab>
<source><![CDATA[Internet of Things Global Standards Initiative]]></source>
<year>Juli</year>
<month>o </month>
<day>20</day>
<publisher-name><![CDATA[ITU]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Serpanos]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
<name>
<surname><![CDATA[Wolf]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<source><![CDATA[Internet-of-Things (IoT) Architectures, Algorithms, Methodologies]]></source>
<year>2018</year>
<publisher-loc><![CDATA[Atlanta ]]></publisher-loc>
<publisher-name><![CDATA[Springer]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Gubbi]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Buyya]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
<name>
<surname><![CDATA[Marusic]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
<name>
<surname><![CDATA[Palaniswami]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Internet of Things (IoT): A vision, architectural elements, and future directions]]></article-title>
<source><![CDATA[Future Generation Computer Science]]></source>
<year>2013</year>
<volume>29</volume>
<numero>7</numero>
<issue>7</issue>
<page-range>1645-1660</page-range></nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="book">
<collab>Espressif Systems</collab>
<source><![CDATA[ESP8266 SDK API Guide]]></source>
<year>2015</year>
<publisher-name><![CDATA[Espressif Systems IOT Team]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="book">
<collab>Internet Engineering Task Force</collab>
<source><![CDATA[Hypertext Transfer Protocol -- HTTP/1.1]]></source>
<year>1999</year>
<publisher-name><![CDATA[IETF]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="">
<collab>OASIS Consortium</collab>
<source><![CDATA[MQTT Version 3.1.1 - OASIS Standard]]></source>
<year>29 O</year>
<month>ct</month>
<day>ob</day>
</nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Fielding]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
</person-group>
<source><![CDATA[Architectural Styles and the Design of Network-based Software Architectures]]></source>
<year>2000</year>
<publisher-loc><![CDATA[Irvine, USA ]]></publisher-loc>
<publisher-name><![CDATA[University of California, Irvine]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="book">
<collab>Message Queue Telemetry Transport</collab>
<source><![CDATA[MQTT F.A.Q.]]></source>
<year></year>
<publisher-name><![CDATA[MQTT]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="book">
<collab>MongoDB</collab>
<source><![CDATA[What is MongoDB?]]></source>
<year></year>
<publisher-name><![CDATA[MongoDB]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B10">
<label>10</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Viega]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Messier]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
<name>
<surname><![CDATA[Chandra]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
</person-group>
<source><![CDATA[Network Security with OpenSSL]]></source>
<year>2002</year>
<publisher-name><![CDATA[O'Reilly]]></publisher-name>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
