Integración de un sistema de comunicaciones internet y...
Transcript of Integración de un sistema de comunicaciones internet y...
Integración de un sistema de comunicaciones internet y base de datos, para calcular el consumo de energía mediante la dimerización de la iluminación en el hogar, variado y
consultado desde una aplicación.
William Alejandro Sánchez Mendoza, Andrea Lorena Sánchez Montenegro.
Universidad Distrital Francisco José De Caldas
Facultad Tecnológica, Ingeniería en Telecomunicaciones
Bogotá, Colombia
2019
II Integración de un sistema de comunicaciones internet y base de datos, para calcular el consumo de
energía mediante la dimerización de la iluminación en el hogar, variado y consultado desde una
aplicación
Integración de un sistema de comunicaciones internet y base de datos, para calcular el consumo de energía mediante la dimerización de la iluminación en el hogar, variado y
consultado desde una aplicación
William Alejandro Sánchez Mendoza, Andrea Lorena Sánchez Montenegro.
Proyecto de grado presentado como requisito para optar al título de:
Ingeniero(a) en Telecomunicaciones
Director (a):
Mgtr. Frank Giraldo
Universidad Distrital Francisco José De Caldas
Facultad Tecnológica, Ingeniería en Telecomunicaciones
Bogotá, Colombia
2019
(Dedicatoria )
A nuestros padres por el apoyo incondicional a
lo largo de nuestra carrera.
Resumen y Abstract V
Resumen
En este documento se presenta la integración de un sistema de comunicaciones internet
y base de datos, para calcular el consumo de energía mediante la variación de la
iluminación del hogar, variado y consultado desde una aplicación.
Esta aplicación hibrida fue desarrollada para móviles y tabletas con sistema operativo
Android, permite modificar la intensidad lumínica de las luminarias en el hogar o espacio
específico desde cualquier lugar con acceso a internet, enviando peticiones a un servidor
Web haciendo uso de HTTP Request POST.
Para el servidor web, se usa un web service que está desarrollado sobre Raspbian,
sistema operativo de la matriz Raspberry pi 3. En el web service va programado todo lo
que tiene que ver con la conexión a internet, selección de puerto TPC/UDP para la
visualización de la página Web en el móvil o computador, la conexión a la base de datos
por puertos TCP y la configuración de macros de ejecución recurrente para la obtención,
manipulación y procesamiento de datos.
La base de datos está desarrollada en SQL Server, totalmente configurada para tener
acceso desde la Raspberry pi tanto para escritura de datos como lectura de los mismos.
En la base de datos se tienen configuradas 5 tablas en las que se almacenan tiempos y
porcentajes de uso en tiempo real con una resolución máxima de 10 segundos.
En la interfaz, se realizan consultas a la base de datos o se varía la intensidad de cada
lámpara independientemente a través de una interfaz. Esta interfaz fue desarrollada en
HTML y CSS usando Boostrap como Front-End. El uso de JavaScript es indispensable
para la comunicación entre el Front-End y el Back-End, que está desarrollado en dos
lenguajes, Python 3.4 y SQL Server.
VI Integración de un sistema de comunicaciones internet y base de datos, para calcular el consumo de
energía mediante la dimerización de la iluminación en el hogar, variado y consultado desde una
aplicación
Palabras clave: Front-End, Back-End, comunicación, intensidad de Luz, consultas,
registros.
Abstract
This paper presents the integration of an internet communications system and database,
in order to calculate the electric power consumption through the dimerization of home
lighting, varied and consulted from an application.
This hybrid application was developed for mobile phones and tablets with Android
operating system, allows to modify the luminous intensity of the luminaries of the home or
specific space from anywhere with Internet access, It sends requests to a Web server using
HTTP Request POST.
For the web server it uses a web service that is developed on Raspbian, which is the
operating system of the Raspberry pi 3 matrix. In the web service, everything that has to
do with the internet connection is selected, port selection TPC / UDP for the display of the
Web page on the mobile or computer, the connection to the database by TCP ports and
the configuration of recurring execution macros for obtaining, manipulating and processing
data.
The database is developed in SQL Server and fully configured to have access from the
Raspberry pi for both data writing and reading them. In the database there are 5 tables
configured in which times and percentages of use are stored in real time with a maximum
resolution of 10 seconds.
In the interface, queries are made to the database or the intensity of each luminaire is
varied independently through an interface. This interface was developed in HTML and CSS
using Boostrap as Front-End. The use of JavaScript is essential for communication
between the Front-End and the Back-End, which is developed in two languages, Python
3.4 and SQL Server.
Keywords: Front-End, Back-End, communication, light intensity, queries, records.
Contenido VII
Contenido
Pág.
Resumen ......................................................................................................................... V
Introducción .................................................................................................................... 9
1. Comunicación ........................................................................................................ 10 1.1 Direccionamiento IP Local y global ................................................................ 10 1.2 Comunicación Navegador - Servidor ............................................................. 11
1.2.1 Solicitud HTTP .................................................................................... 11 1.2.2 Respuesta HTTP ................................................................................. 13
1.3 Autenticación y autorización .......................................................................... 15 1.4 Cliente de red PuTTY .................................................................................... 15 1.5 Módem local .................................................................................................. 16
1.5.1 Puerto 443 .......................................................................................... 17 1.5.2 Puerto 22 ............................................................................................ 17 1.5.3 Port Forwarding ................................................................................... 17
1.6 Controlador Raspberry Pi 3 ........................................................................... 18
2. Desarrollo de la aplicación .................................................................................... 20 2.1 Front – End de la aplicación........................................................................... 20
2.1.1 Usos de HTML y CSS ........................................................................ 21 2.2 Back – End de la aplicación ........................................................................... 21 2.3 Capa de presentación y ejecución ................................................................. 21 2.4 Modificaciones a la base de datos por medio de Python ................................ 22 2.5 Base de datos ................................................................................................ 27 2.6 Análisis de tráfico ........................................................................................... 27
3. Resultados de los objetivos .................................................................................. 29 3.1 General .......................................................................................................... 29
3.1.1 Aplicación móvil .................................................................................. 30 3.1.2 Aplicación web .................................................................................... 34
3.2 Específicos .................................................................................................... 35
4. Resultados prácticos ............................................................................................. 41 4.1 Presunciones ................................................................................................. 41 4.2 Resultados ..................................................................................................... 42
4.2.1 Ahorro por zona en el hogar ................................................................ 42 4.2.2 Ahorro por mes del año ....................................................................... 43 4.2.3 Periodo de recuperación de la inversión ............................................. 44
VIII Título de la tesis o trabajo de investigación
5. Conclusiones ......................................................................................................... 47
Bibliografía .................................................................................................................... 49
Contenido 9
Introducción
La evolución de espacios tradicionales a espacios inteligentes a partir de la integración
de herramientas o dispositivos de bajo costo pero de altas prestaciones y tecnologías
de la información trascendiendo enfáticamente hacia la comodidad, confort, seguridad
y ahorro de recursos naturales, es cada vez más común en ámbitos familiares,
empresariales y hasta rurales.
En la era de las tecnologías de la información y comunicaciones, es indispensable
pensar cómo integrarla homogéneamente con la cotidianidad de las civilizaciones. Por
eso, este proyecto integra en varios aspectos de la tecnología y la cotidianidad en una
nueva perspectiva que desarrolla otra opción que se incluye a lo largo de los prototipos
de domótica; enfatizando eso sí, en la ventaja que se tiene al contar con una conexión
a internet, ya sea en el móvil, hogar o empresa.
Es sabido que los datos recolectados de toda índole son importantes para la realización
de predicciones de comportamientos o toma de decisiones individuales, grupales o
generacionales. A lo largo de la historia los datos se han presentado en todos los pasos
dados por la humanidad desde los primeros pensadores, pasando por las grandes
bibliotecas como Alejandría hasta las bases de datos que hoy día se manejan. Es por
eso que la obtención de datos se hace indispensable en la mayoría de situaciones;
adicional está íntimamente relacionado con la evolución de las tecnologías de la
información.
Este proyecto integra ambos aspectos tecnológicos de manera conjunta al hacer uso
de las tecnologías de la información y comunicaciones y el almacenamiento de datos
en sistemas informáticos que puedan ser fácilmente procesados y consultados por
cualquier individuo.
10 Integración de un sistema de comunicaciones internet y base de datos, para calcular el
consumo de energía mediante la dimerización de la iluminación en el hogar, variado y
consultado desde una aplicación
1. Comunicación
1.1 Direccionamiento IP Local y global
Para el enrutamiento y direccionamiento se debe tener en cuenta dos factores importantes,
la conectividad en área local (LAN) y la conectividad en área global (WAN). Para la LAN
se utiliza un segmento de direccionamiento IP privado clase C (192.168.0.0/24). El módem
utilizado tiene este segmento con asignación de IP dinámico, es decir que el pool de
direcciones puede ser asignado aleatoriamente a cada equipo conectado a la red, ya sea
por cable o inalámbricamente como se muestra en la Figura 1-1.
Para la conexión satisfactoria de la aplicación o visualización de la página WEB, el servidor
debe estar expuesto en el módem local para que sea alcanzado desde cualquier lugar.
Esto quiere decir que se debe realizar un proceso de re-direccionamiento por puertos TCP-
UDP a una dirección y puertos locales.
Figura 1-1: Port Forwarding [Fuente propia].
11
1.2 Comunicación Navegador – Servidor
La comunicación entre el navegador y el servidor se lleva a cabo en varias etapas pero
dos de ellas son las más destacadas, primero cuando el navegador realiza una solicitud
HTTP y segundo cuando el servidor procesa la solicitud y después envía una respuesta
HTTP. En la Figura 1-2 se observa un programa cliente que establece la conexión con un
programa del servidor y envía un pedido a este último mediante el método request, URL y
versión de protocolo, seguido por un mensaje que contiene los modificadores del pedido,
información sobre el cliente y contenido. El servidor responde con una línea de estado,
incluyendo su versión de protocolo y un mensaje de éxito (HTTP 200) o error (HTTP 404,
HTTP 401, etc.), seguido de un mensaje que contiene información del servidor y contenido.
[1]
Figura 1-2: Protocolo TCP/IP [2].
1.2.1 Solicitud HTTP
A continuación se muestra la solicitud HTTP POST y la solicitud HTTP GET dentro del
proyecto:
HTTP POST:
URL: 192.168.0.254:8000/GPIO/9/pulseRatio/0.97
POST /GPIO/9/pulseRatio/0.97 HTTP/1.1
Host: 192.168.0.254:8000
Content-Type: application/x-www-form-urlencoded
cache-control: no-cache
12 Integración de un sistema de comunicaciones internet y base de datos, para calcular el
consumo de energía mediante la dimerización de la iluminación en el hogar, variado y
consultado desde una aplicación
Para este ejemplo, la solicitud que se está enviando al servidor mediante request
POST es que coloque el GPIO del número 9 en ratio de funcionamiento al 97% de
uso de este.
HTTP GET:
URL: 192.168.0.254:8000/GPIO/9/value
Server →WebIOPi/0.7.1/Python3.4
Cache-Control →no-cache
Content-Type →text/plain
Content-Length →1
En la aplicación WEB es posible observar este proceso en el ingreso al menú de
desarrollador pulsando la tecla F12 y ubicándose en la opción NETWORK o RED. En
la figura 1-2-1 se puede observar que las peticiones realizadas al servidor arrojan el
código de estado después realizar cierta petición.
Figura 1-2-1: Menú desarrollador [Fuente propia].
13
Por otro lado, en este ejemplo se está haciendo una solicitud de información sobre el
estado del GPIO 9 al servidor con el Request GET. La Figura 1-2-1-1 muestra la
estructura general del mensaje de solicitud.
Figura 1-2-1-1: Mensaje de solicitud [Fuente Propia].
1.2.2 Respuesta HTTP
A continuación se muestra un ejemplo de la respuesta HTTP en el ingreso a la aplicación
web:
HTTP POST:
Request URL: http://192.168.0.254:8000/GPIO/23/pulseRatio/0.1
Request Method: POST
Status Code: 200 OK
Remote Address: 192.168.0.254:8000
Referrer Policy: no-referrer-when-downgrade
HTTP GET:
Request URL: http://192.168.0.254:8000/*
Request Method: GET
Status Code: 200 OK
14 Integración de un sistema de comunicaciones internet y base de datos, para calcular el
consumo de energía mediante la dimerización de la iluminación en el hogar, variado y
consultado desde una aplicación
Remote Address: 192.168.0.254:8000
Referrer Policy: no-referrer-when-downgrade
Después de enviado un request al servidor, ya sea GET, POST, PUT, DELETE o cualquier
otro, el servidor enviara una respuesta codificada mediante un número como se muestran
en la Figura 1-2-2.
Figura 1-2-2: Códigos de respuesta de los request HTTP [Fuente propia]
La Figura 1-2-2-1 muestra la estructura general del mensaje de respuesta.
Figura 1-2-2-1: Mensaje de respuesta [Fuente propia].
15
1.3 Autenticación y autorización
En el caso de este proyecto HTTP GET se usa para leer los GPIO de la Raspberry Pi 3
por los cuales se varía la intensidad de luz de cada lámpara. HTTP POST actúa en el
momento en que se consulta el consumo de las lámparas.
En la Figura 1-3 observamos el proceso de autenticación y autorización de un protocolo
HTTP.
Figura 1-3: Procedimiento autenticación y autorización [3].
1.4 Cliente de red PuTTY
PuTTY es un cliente de red que soporta los protocolos SSH, Telnet y Rlogin y Serial RS232
que sirve principalmente para iniciar una sesión remota con otra máquina o servidor. Es de
licencia libre y está diseñado y mantenido principalmente por Simon Tatham desde Gran
Bretaña. A pesar de su sencillez es muy funcional y configurable. [4]
Para configurar PuTTY se realizaron los siguientes pasos:
16 Integración de un sistema de comunicaciones internet y base de datos, para calcular el
consumo de energía mediante la dimerización de la iluminación en el hogar, variado y
consultado desde una aplicación
En la matriz Raspberry Pi 3 se ha asignado una dirección local estática, con esto
nos aseguramos que podemos acceder a la consola de control siempre sin
necesidad de verificar cual fue la dirección asignada por DHCP (Dynamic Host
Configuration Protocol).
En la selección del puerto se debe configurar el puerto que se haya definido en la
configuración de la Raspberry Pi 3 que por defecto es el puerto 22 por estándar
internacional, sin embargo, en este caso, se ha personalizado el puerto para que la
conexión SSH sea por el puerto “1989”; la comunicación a consola se realiza por protocolo
SSH, también es necesario habilitar el servidor Shell en la Raspberry Pi.
Una vez nos conectamos a la matriz, esta nos solicitara un usuario y una
contraseña. Estas opciones también son configurables en la matriz de control, por
lo que decidimos usar el usuario PI y la contraseña “Distrital”, ahora se puede desde
la consola hacer las modificaciones que se desee. Vale aclarar que al ser una
derivación del SO Linux, se usan comandos muy similares a esta plataforma.
1.5 Módem local
Este es el módem o GPON usado en el proyecto y se configuro de tal manera que se
tuviera acceso a la configuración del DHCP para no tener inconvenientes en el momento
de ingresar desde cualquier ubicación ya que para el servidor se configuró un IP estática.
El H108N trabaja con las especificaciones de administración estándar TR-069, lo que
permite la administración y el diagnóstico remotos, reduce la mano de obra necesaria para
el mantenimiento en el sitio y aumenta el índice de satisfacción del cliente (CSI, por sus
siglas en inglés). [5]
17
Figura 1-5: Módem ZTE ZXHN H108N [5].
1.5.1 Puerto 443 (Confirmación de ingreso)
El puerto 443 de TCP, es el predeterminado que utiliza el HTTPS (Hypertext Transfer
Protocol Secure).Si este puerto está bloqueado en cualquier servidor o dispositivo desde
la computadora hacia un destino determinado, como www.microsoft.com, tu conexión a
cualquier sitio HTTPS fallará y el navegador mostrará un mensaje de error como " Error de
conexión segura " o " La página no se puede mostrar”. Este fallo estará directamente en el
router porque no tenemos abierto el puerto. [6]
1.5.2 Puerto 22 (Secure shell)
El puerto 22 está por defecto para ser usado en comunicaciones seguras con SSH, es
decir con comunicaciones encriptadas y se debe hacer con la aplicación PuTTY; si se
desea cambiar de puerto se puede hacer pero hay que tener en cuenta que al ejecutar la
aplicación SSH no se debe olvidar el puerto abierto para esta comunicación. [6]
1.5.3 Port Forwarding
En el caso del proyecto, el dispositivo que cumple la tarea de realizar el Port Forwarding,
es el módem que se explica en el apartado 1.5. El módem debe ser capaz de soportar esta
configuración ya que es completamente necesario para cumplir con los objetivos del
proyecto. En la Figura 1-5-3, se muestra la configuración del Port Forwarding en el módem.
18 Integración de un sistema de comunicaciones internet y base de datos, para calcular el
consumo de energía mediante la dimerización de la iluminación en el hogar, variado y
consultado desde una aplicación
Mediante Port Forwarding se permite que conexiones remotas alcancen el servidor, host o
servicios dentro de una red privada LAN. Es decir que un host que este fuera de una red
LAN donde este alojado un servidor deberá conectarse a la IP publica de la red local que
es provista por el proveedor de servicios y un router o módem realizará la tarea de NAT.
Una vez el router o módem hayan realizado el NAT, el host remoto tendrá acceso al
servidor local para poder consumir sus servicios por un puerto especifico. [7]
Figura 1-5-3: Configuración Port Forwarding [Fuente propia].
Anteriormente se explicó la necesidad de tener reserva de direccionamiento en el servidor
interno DHCP. La función que cumple esta característica es que no haya complicaciones
en la configuración, ya que el Port Forwarding hace NAT a una IP específica y no a un
rango de este segmento privado.
1.6 Controlador Raspberry Pi 3
Gran parte del desarrollo del proyecto se realizó de manera remota, es decir que se requirió
establecer acceso a varios sistemas de comunicación para poder hacer la configuración
de la matriz, desarrollo de la aplicación Web, transferencia de archivos por protocolo SFTP.
19
La conexión de la Raspberry Pi 3 a la base de datos se realiza mediante librerías en Python
3, que permiten realizar consultas, ejecutar procesos almacenados, triggers y demás que
requiera para el almacenamiento y procesamiento de datos.
20 Integración de un sistema de comunicaciones internet y base de datos, para calcular el
consumo de energía mediante la dimerización de la iluminación en el hogar, variado y
consultado desde una aplicación
2. Desarrollo aplicación
Figura 2: Modelo del proceso de la aplicación [Fuente propia].
2.1 Front – End de la aplicación
En el proyecto se hace uso de interfaces dinámicas mediante el uso de Frameworks
desarrollados en JavaScript como Boostrap. La mejor ventaja de este framework es el
dinamismo de adaptación al ser usado en dispositivos con diferentes resoluciones en la
pantalla.
2.1.1 Usos de HTML y CSS
En el caso del proyecto, se tienen programados dos archivos locales y uno de uso global
en CSS para dar características a todos los HTML que se usan en el proyecto. De esta
manera se aportan características de estilo a la página web.
21
2.2 Back – End de la aplicación
Para la capa de acceso a datos que se utilizó en la aplicación, se empleó la interacción de
dos lenguajes de programación orientada a objetos. El primero es JavaScript que está
estrictamente relacionado a la capa Front-end y Python 3.4 que está en constante
ejecución directamente en la Raspberry Pi 3. El método de interacción de estos dos
lenguajes se realiza mediante macros.
2.3 Capa de presentación y ejecución
En el proyecto, el lenguaje JavaScritp se usó en varios aspectos; tanto en la capa de
presentación para la personalización Boostrap y la parte de la ejecución de macros hacia
el Python, captura de datos como las fechas, cálculo y exposición de datos. A continuación
se relaciona el Algoritmo que se usó para el manejo de los datos y cálculo de resultados.
Algoritmo usado en JavaScript:
Inicio Leer consumos, tiempos globalStrUsage = consumos globalStrTime = tiempos tiempoTotal = 0; consumoTotal = 0; valorTotal = 0; para i < globalStrUsage.length dimmers [i] = globalStrUsage[i] tiempo [i] = globalStrTime[i] fin para Para j < globalStrUsage.length consumos [j] = tiempo [j] / 3600 consumos [j] = consumos [j] * 60 consumos [j] = consumos [j] * dimmers [j] fin para Escribir consumos[] para k < globalStrUsage.length valor [k] = consumos [k]/1000 valor [k] = valor [k] * 445.7 valor [k] = (Valor [k]*100)/100 fin para Escribir valores [] para m < globalStrUsage.length
22 Integración de un sistema de comunicaciones internet y base de datos, para calcular el
consumo de energía mediante la dimerización de la iluminación en el hogar, variado y
consultado desde una aplicación
tiempoTotal = tiempoTotal + tiempo [m] tiempoDias [m] = tiempo [m]/86400 tiempo [m] = tiempo [m] - (tiempoDias [m] * 86400) tiempoHoras [m] = tiempo [m] / 3600 tiempo [m] = tiempo [m] - (tiempoHoras [m] * 3600) tiempoMinutos [m] = tiempo [m] / 60 tiempo [m] = tiempo [m] - (tiempoMinutos [m] * 60) tiempoSegundos [m] = tiempo [m] si (m = (globalStrUsage.length-1)) { tiempoTotalDias [m] = tiempoTotal [m]/86400 tiempoTotal [m] = tiempoTotal [m] - (tiempoDias [m] * 86400) tiempoTotalHoras [m] = tiempoTotaltiempoTotal [m] / 3600 tiempoTotal [m] = tiempoTotal [m] - (tiempoHoras [m] * 3600) tiempoTotalMinutos [m] = tiempoTotal [m] / 60 tiempoTotal [m] = tiempoTotal [m] - (tiempoMinutos [m] * 60) tiempoTotalSegundos [m] = tiempoTotal [m] } fin para Escribir Concatenado (tiempoDias[] + tiempoHoras[]+tiempoMinutos[]+tiempoSegundos) Escribir Concatenado (tiempoTotalDias[] + tiempoTotalHoras[]+tiempoTotalMinutos[]+tiempoTotalSegundos) para n < globalStrUsage.length valorTotal += valor [n] consumoTotal += consumos [n] fin para Escribir (valorTotal) Escribir (consumoTotal)
2.4 Modificaciones a la base de datos por medio de Python
En el proyecto se usó en lenguaje de programación orientado a objetos Python en su
versión 3.4 compatible con el sistema operativo que se instaló en la Raspberry. Para la
implementación del proyecto, se debió tener en cuenta cuatro principales funciones que
requerían modelos de funcionamiento diferentes. A continuación se muestran los
diagramas de flujo de cada función principal aplicada:
23
Figura 2-4: Diagrama de flujo para el almacenamiento de datos [Fuente propia].
Como se puede ver, este proceso es continuo y no tiene un proceso final, es decir, hay un
loop continuo e infinito que se repite cada 10 segundos.
24 Integración de un sistema de comunicaciones internet y base de datos, para calcular el
consumo de energía mediante la dimerización de la iluminación en el hogar, variado y
consultado desde una aplicación
Figura 2-4-1: Diagrama de flujo para el procesamiento de datos almacenados en la
primera tabla [Fuente propia].
El manejo de las tablas, su función, datos almacenados y demás características, están
debidamente explicadas en el capítulo 3, resultado de los objetivos.
25
Figura 2-4-2: Diagrama de flujo para el procesamiento de datos a las 11:59 PM [Fuente
propia].
El manejo de las tablas, su función, datos almacenados y demás características, están
debidamente explicadas en el capítulo 3, resultado de los objetivos.
26 Integración de un sistema de comunicaciones internet y base de datos, para calcular el
consumo de energía mediante la dimerización de la iluminación en el hogar, variado y
consultado desde una aplicación
Figura 2-4-3: Diagrama de flujo solicitud de datos a la base de datos por parte del usuario
[Fuente propia].
En este último diagrama, se requieren varias validaciones de acuerdo con la fecha de
consulta; si la consulta es del mismo día que se está consultando, si la consulta es desde
27
días anteriores pero tiene el mismo día de consulta o si es consulta de otros días atrás.
Estas validaciones repercuten en la query que se va a ejecutar en la base de datos.
2.5 Base de Datos
El almacenamiento de datos se realiza en tablas que tienen internamente 10 columnas y
están configuradas para que sirvan como identificadores del tiempo o del promedio del
consumo.
En este proyecto se usa SQL server para administrar la base de datos, principal motor para
el almacenamiento de datos y la consulta de los mismos. El volumen de datos soportado
por esta base de datos, según las especificaciones del software es de 10 GB, espacio más
que suficiente para el mínimo volumen de datos que hasta el momento maneja este
proyecto, el cual es aproximadamente de 10MB y está en crecimiento, lo cual se explica
en detalle en el apartado 3.2.3.
2.6 Análisis de tráfico
El análisis de tráfico se realizó utilizando una herramienta para este propósito llamada
WireShark en la que se capturan los paquetes filtrando por IPs de origen y destino, además
de los puertos usados, en este caso el puerto 8000. En la Figura 2-6 se logra identificar
que los picos de consumo de ancho de banda corresponden al cambio de menú, es decir,
cuando la página debía cargar nuevamente.
28 Integración de un sistema de comunicaciones internet y base de datos, para calcular el
consumo de energía mediante la dimerización de la iluminación en el hogar, variado y
consultado desde una aplicación
Figura 2-6: Uso de tráfico realizando prueba de esfuerzo con un usuario [Fuente propia].
En la Figura 2-6 se realizan pruebas sobre todas las funcionalidades de la aplicación Web
sobre un ambiente controlado con el objetivo de identificar en que momentos se ocupa
más ancho de banda, por ejemplo, cada pico de consumo es el momento en que se abre
un nuevo link en la aplicación. En el lapso de los 20 segundos en adelante, se realiza
modificación de los parámetros de los sliders sin evidenciar un consumo de ancho de
banda considerable. De 70 segundos en adelante se realizan pruebas de consultas a la
base de datos donde tampoco se ve mayor uso de ancho de banda.
29
3. Resultados de los objetivos
3.1 General
Crear una aplicación híbrida, la cual permita variar la intensidad lumínica de los
focos en el hogar y, realizar consultas a una base de datos a través de internet.
Para así obtener el uso en vatios y el valor en pesos en tiempo real (resolución
10 segundos) o en fechas definidas por el usuario a través de una interfaz
gráfica.
Este objetivo se cumple a cabalidad cumpliendo con lo estipulado. Se creó una
aplicación WEB y una aplicación móvil que son perfectamente funcionales e interactúan
debidamente en cualquiera de las circunstancias. La interfaz web puede ser verificada
a través de los siguientes enlaces web: inmoticaud.linkpc.net:9443 ó
sergiosanchez.de:9443. La selección de las fechas en la aplicación web se realiza en
la subdirección ~/queries_boostrap.html. En la Figura 3 se ve la forma de la selección
de las fechas por parte del usuario para que importe desde la base de datos la
información de los consumos calculados.
Figura 3: Seleccionador de fecha inicial y fecha final para la obtención de los
resultados solicitados [Fuente propia].
30 Integración de un sistema de comunicaciones internet y base de datos, para calcular el
consumo de energía mediante la dimerización de la iluminación en el hogar, variado y
consultado desde una aplicación
Cuando se oprime el botón calcular, la información de las fechas va por medio de macros
desde JavaScript a la Raspberry pi 3 con los datos seleccionados.
Para la resolución de la captura de datos cada 10 segundos, se definió un loop infinito en
el script de Python que se ejecuta en la Raspberry pi 3 guardando los datos en variables y
enviándolas a través de una consulta dinámica hacia la base de datos.
3.1.1 Aplicación móvil
En la aplicación móvil se requieren hacer algunas validaciones iniciales para comprobar
que haya conectividad a las Raspberry Pi 3. Como se comentó en el apartado 1.2.2, cada
Request GET o POST que se realice al servidor, tendrá un código de respuesta ya sea
positivo o negativo. Teniendo esta información, en la aplicación móvil se procede a hacer
una consulta GET al servidor para obtener el código HTTP Request 200 que quiere decir
que la conectividad se está realizando correctamente.
La validación se debe realizar 3 veces, una a la dirección local del servidor,
192.168.0.254:8000; así sabremos que estamos trabajando localmente. Otra petición a los
enlaces sergiosanchez.de e inmoticaud.linkpc.net. Este proceso se hace
automáticamente, en caso de no haber conectividad aparecerá una pantalla de error. A
continuación se muestra el ingreso a la aplicación desde un celular Android, Figura 3-1-1.
31
Figura 3-1-1: Inicialización de la aplicación y validación de conectividad al servidor
[Fuente propia].
Una vez se valida la conectividad al servidor, aparecerá un menú con 5 opciones, “Como
se usa”, “Dimmers”, “Consumos” y “Equipo” Figura 3-1-1. Cada opción abre una nueva
opción en la aplicación y cumple una función diferente explicada a continuación:
32 Integración de un sistema de comunicaciones internet y base de datos, para calcular el
consumo de energía mediante la dimerización de la iluminación en el hogar, variado y
consultado desde una aplicación
Figura 3-1-1: Menú inicial después de haber comprobado la conectividad al servidor
[Fuente propia].
Como se usa: Abre una nueva Screen donde se explica el funcionamiento de la
aplicación y la mejor manera de sacarle provecho.
Dimmers: Esta opción abre la Screen desde donde podrán ser controlados cada
foco de manera individual, Figura 3-1-1.
Consumos: En esta opción se abre la Screen para poder realizar consultas a la
base de datos sobre consumos, tiempo y valor de cada foco individualmente y un
totalizado, la mecánica es similar al entorno web, Figura 3-1-1.
Equipo: abre una nueva screen donde aparece una breve reseña sobre el equipo
de trabajo.
33
Figura 3-1-1: Ventana donde se encuentran los Dimmers para manejo de las
intensidades [Fuente propia].
Figura 3-1-1: Ventana donde se encuentran los seleccionadores de fecha, botón y tabla
de resultados [Fuente propia].
34 Integración de un sistema de comunicaciones internet y base de datos, para calcular el
consumo de energía mediante la dimerización de la iluminación en el hogar, variado y
consultado desde una aplicación
3.1.2 Aplicación web
En la interfaz gráfica se ha definido usar un modelo sencillo de fácil entendimiento que no
requiera conocimientos previos o avanzados sobre comunicaciones o computación.
La barra de navegación superior cuenta con un sencillo menú que guiará al usuario de
manera tan práctica que será muy difícil perderse. Sin embargo, se ha decidido realizar un
manual de funcionamiento que encontrara en el apartado “Como Funciona” Figura 3-1-2.
Figura 3-1-2: Menú de navegación [Fuente propia].
A continuación se describirá la funcionalidad de cada apartado en la barra de navegación
del proyecto:
Inicio: Se realiza una breve descripción del proyecto, como está constituido, el
propósito del mismo y dar una bienvenida.
Información: Se muestra información más detallada y técnica del desarrollo de la
aplicación web.
Dimmers: Se encuentran los sliders que envían peticiones HTTP POST cada vez
que se modifica su valor hacia el servidor Web, se muestra en la Figura 3-1-2-1.
Figura 3-1-2-1: Organización de Sliders y botones [Fuente propia].
35
Consulta: En este segmento se pueden realizar las consultas de los tiempos de
uso, consumos en Watt y Costo económico de todo el sistema de iluminación del
espacio, en este caso el hogar.
Como funciona: En este módulo, se realiza una descripción de cómo se debe usar
la aplicación para darle mayor provecho.
3.2 Específicos
3.2.1 Implementar un sistema de comunicaciones vía internet para que desde una central Raspberry Pi 3 permita variar un sistema de regulación de intensidad lumínica de una casa, usando una aplicación conectada a internet o red de área local.
Para este objetivo se requirió hacer modificaciones en distintos dispositivos para lograr la
comunicación de la Raspberry en el entorno local y para que fuera expuesta en la web.
Inicialmente, se debió configurar las Raspberry pi 3 para que estuvieran en el segmento
de red de la red local; como el módem que provee internet asigna una dirección por medio
de un servidor DHCP (Dynamic Host Configuration Protocol), no era viable mantener esta
configuración, por lo que se debió ajustar el módem para que no asignara todo el segmento
192.168.0.0/24 sino para que asignara dinámicamente el segmento desde la IP
192.168.0.3 hasta la IP 192.168.0.100 dejando como Gateway de toda la red la IP
192.168.0.1 cómo se puede ver en la Figura 3-2-1.
36 Integración de un sistema de comunicaciones internet y base de datos, para calcular el
consumo de energía mediante la dimerización de la iluminación en el hogar, variado y
consultado desde una aplicación
Figura 3-2-1: Configuración del módem para direccionamiento dinámico y estático
[Fuente propia].
El módem es el dispositivo que cumple la función de realizar el Port Forwarding, explicado
en el apartado 1.5. El módem en debe ser capaz de soportar esta configuración ya que es
completamente necesario para cumplir con los objetivos del proyecto. En la Figura 3-2-1-
1, se muestra la configuración del Port Forwading en el módem.
Figura 3-2-1-1: Configuración Port Forwarding [Fuente propia]
De esta manera se tiene acceso a la consola de las Raspberry pi 3 y al servidor web
instalado desde internet por medio de la dirección local asignada o por medio internet.
37
3.2.2 Establecer una red de alta disponibilidad entre dos Raspberry Pi 3 que permita la continua prestación del servicio.
Se estableció una red de alta disponibilidad entre 2 Raspberry pi 3 estableciendo así una
continuidad del servicio que se presta en el servidor Web.
El tiempo de validación de estatus está configurado a 30 segundos, es decir que cada vez
que transcurra este tiempo, la Raspberry esclava, validará el estatus de la principal y si no
hay respuesta, el rol de master será otorgado a la esclava.
3.2.3 Implementar una base de datos en SQL server que almacene datos de tiempo de uso y porcentaje de utilización de cada lámpara independientemente y que pueda ser consultada desde internet.
Para el caso del desarrollo de este proyecto, se definió una base de datos con 5 tablas, en
las que se almacenan diferentes datos y se explican a continuación:
[dbo].[rpi]:Almacena los datos enviados desde la matriz cada 10 segundos, esta
tabla tiene los diferentes datos de cada zona o habitación donde se tenga una
lámpara conectada al sistema.
[dbo].[rpiValuesHour]: Esta tabla guarda el promedio de uso de cada lámpara,
este promedio se realiza una vez cada minuto y los datos son extraídos y
procesados de la tabla [dbo].[rpi]. La cantidad de registros que almacena esta
tabla es de 1440 registros/dia
[dbo].[timeOfUseHour]: Esta tabla almacena el tiempo de uso de cada lámpara
que este capturando datos de la tabla inicial. Para la obtención de estos datos es
necesario realizar una Query que valide cada dato de la tabla principal [dbo].[rpi],
verificando si es un valor valido y diferente de 0 y por cada dato valido sume 10
segundos al tiempo de uso independientemente cada lámpara. La cantidad de
registros que almacena esta tabla al igual que [dbo].[rpiValuesHour] es de 1440
registros/día.
[dbo].[rpiValuesDay]: En esta tabla se almacenan los datos del promedio de uso
diario, es decir que se deben procesar los datos de la tabla [dbo].[rpiValuesHour]
38 Integración de un sistema de comunicaciones internet y base de datos, para calcular el
consumo de energía mediante la dimerización de la iluminación en el hogar, variado y
consultado desde una aplicación
y guardar el resultado de esta consulta en esta nueva tabla. Este dato que se
guarda es inmodificable y puede ser consultado en cualquier momento sin alterar
el producto esperado.
[dbo].[timeOfUseDay]: Esta tabla guarda el tiempo de uso de cada lámpara que
se tiene almacenada en la tabla [dbo].[timeOfUseHour], Como es tiempo, se debe
sumar y tomar el acumulado de esta y guardarlo como registro permanente, para
ser consultado en cualquier momento.
Nota: A las tablas [dbo].[timeOfUseHour] y [dbo].[rpiValuesDay], se les almacenan
datos todos los días a media noche, es decir que se tiene una tarea programada cada 24
horas para que procese la información de las tablas de uso por horas y guarde el resultado
en los registros diarios.
Las tareas programadas se definieron como queries dinámicas por medio de una consulta
programada en lenguaje SQL y Python.
3.2.4 Calcular el valor aproximado en pesos, la potencia usada para cada foco y el total de las variables anteriores de acuerdo con las fechas seleccionadas por el usuario.
Para el cálculo de costo, vatios y tiempo de uso se usa el script en JavaScript. Después
que los datos son obtenidos por las consultas en el script de Python, son devueltas como
cadenas largas de datos, por lo que se requiere hacer el procesamiento para capturar cada
dato individualmente según se requiera, tiempo o porcentaje de utilización.
Luego de divididos los datos, se debe hacer un recorrido por cada uno y aplicar los cálculos
necesarios para obtener el resultado requerido según pesos, tiempo y uso de cada foco.
Los tiempos que se obtienen de la base de datos, viene en formato Epoch Time, lo que
indica que se deben aplicar las siguientes fórmulas para obtener el valor exacto en días,
horas, minutos:
39
𝑫𝒊𝒂𝒔 =𝐸𝑝𝑜𝑐ℎ𝑇𝑖𝑚𝑒
86400 (1)
𝐸𝑝𝑜𝑐ℎ𝑇𝑖𝑚𝑒 = 𝐸𝑝𝑜𝑐ℎ𝑇𝑖𝑚𝑒 − (𝐷𝑖𝑎𝑠 ∗ 86400) (1.1)
𝑯𝒐𝒓𝒂𝒔 =𝐸𝑝𝑜𝑐ℎ𝑇𝑖𝑚𝑒
3600 (2)
𝐸𝑝𝑜𝑐ℎ𝑇𝑖𝑚𝑒 = 𝐸𝑝𝑜𝑐ℎ𝑇𝑖𝑚𝑒 − (𝐻𝑜𝑟𝑎𝑠 ∗ 3600) (2.1)
𝑴𝒊𝒏𝒖𝒕𝒐𝒔 =𝐸𝑝𝑜𝑐ℎ𝑇𝑖𝑚𝑒
60 (3)
Así, concatenando las cadenas Días, horas y minutos se puede saber exactamente el
tiempo de uso de cada lámpara.
La tabla en la que se publican los resultados está configurada para que muestre el
resultado individual para cada foco y el resultado total, de esta manera se tiene un mayor
control de cada consumo y de los tiempos individualmente, asi se muestra en la Tabla 3-
2-4.
Tabla 3-2-4: Tabla de resultados de los cálculos de potencias, tiempo y Pesos. [Fuente
propia]
40 Integración de un sistema de comunicaciones internet y base de datos, para calcular el
consumo de energía mediante la dimerización de la iluminación en el hogar, variado y
consultado desde una aplicación
3.2.5 Analizar el consumo de energía y costos, por medio de los resultados del uso variado frente al uso directo, y validar el ahorro como tendencia para mejorar la calidad de vida de los usuarios.
Los resultados de este análisis se ven en el capítulo 4, Conclusiones.
41
4. Resultados prácticos
4.1 Presunciones
Se toman como presunciones iniciales:
El ambiente de pruebas será en un hogar que consta de una familia de 4 personas
conformada por padre, madre y 2 hijos de edad mediana, universitarios.
Según la Cámara de Electrodomésticos de la ANDI, a través de su Comité de
Fabricantes de Iluminación los colombianos continúan usando bombillas
incandescentes y lo confirma artículo publicado por el medio informativo El Heraldo,
la lámpara de más común uso es de 60W suficientes para iluminar una vivienda de
un hogar colombiano promedio. [8]
El tiempo registrado es de 5 meses y medio y se calcula el resto de año de tiempo
para calcular el tiempo de retorno de inversión.
Figura 4-1: Plano del hogar Colombiano promedio [Fuente propia].
42 Integración de un sistema de comunicaciones internet y base de datos, para calcular el
consumo de energía mediante la dimerización de la iluminación en el hogar, variado y
consultado desde una aplicación
4.2 Resultados
Se observa que el foco con mayor consumo es el del pasillo, esto debido a que es un hogar
con poca luz y requiere del uso constante de este durante el desplazamiento nocturno de
los habitantes del hogar. Seguido del foco del pasillo, el alto consumo de las Habitaciones
1 y 2 se justifica en el estar habitadas por jóvenes los cuales estarán más tiempo en casa
que sus padres, Figura 4-2.
4.2.1 Ahorro por zona en el hogar
En la Figura 4-2-1 se observa la comparación del costo en pesos demandada por cada
foco del hogar usando cada uno 60W; en la medida de referencia tomando el tiempo de
uso y colocando su resultado como si no se hubiera variado (NORMAL); el otro
comparativo comparando el resultado del uso variado del mismo foco; el tercero usando
un foco led ahorrador variable de 6,5W de consumo. Se observa así que el uso de
tecnologías LED refleja una disminución considerable del gasto de energía, y ayudando al
ahorro tanto energético al disminuir el daño al medio ambiente como económico para el
gasto mensual del hogar.
Figura 4-2: Comparación Consumo en W de un hogar, tanto normal como variado.
[Fuente propia]
43
Figura 4-2-1: Gasto energético en pesos tanto normal como variado [Fuente propia].
4.2.2 Ahorro por mes del año
En la Figura 4-2-2 se refleja un ahorro promedio por mes de $8,500 lo que representa
aproximadamente un 21,5% de ahorro monetario por mes con el uso de un foco variable
de 60W comparado con uno no variable.
Por otra parte, comparando lo anterior con el uso de un foco LED cuyo consumo es de
6,5W, es evidente que la disminución es de aproximadamente $30,100 lo que representa
un 91% de ahorro monetario.
La esperanza de vida de un bombillo incandescente es de 1.200 horas aproximadamente
10 meses, en comparación con un bombillo ahorrador, el cual tiene una esperanza de vida
de 10.000 horas, este último bombillo presenta frecuentes daños por su sensibilidad a la
temperatura y la humedad según el estudio publicado en el sitio web efecto LED, la vida
útil de una bombilla. [9]
44 Integración de un sistema de comunicaciones internet y base de datos, para calcular el
consumo de energía mediante la dimerización de la iluminación en el hogar, variado y
consultado desde una aplicación
Figura 4-2-2: Gasto Energético en pesos por mes [Fuente propia].
4.2.3 Periodo de recuperación de la inversión
A continuación, se desglosan los valores de inversión de mano de obra, Tabla 4-2-3;
equipo de uso propio, Tabla 4-2-3-1; y software, Tabla 4-2-3-2. Esto para una inversión
total expresada en la tabla 4-2-3-3.
Tabla 4-2-3: Inversión mano de obra del proyecto [Fuente propia].
INVERSIÓN MANO DE OBRA
En miles de $
Alejandro Sánchez 2500
Andrea Sánchez 2500
45
Tabla 4-2-3-1: Cuantificación equipos de uso propio [Fuente propia].
Cuantificación equipos de uso propio
En miles de $
Computadores 265
Tarjeta de desarrollo Raspberry 240
Módulo Wi-Fi 95
Total 600
Tabla 4-2-3-2: Cuantificación del software del proyecto [Fuente propia].
Cuantificación del software del proyecto
En miles de $
Raspbian OS 0
MIT App Inventor 0
Notepad++ 0
Python 3.7 0
Crontab 0
SQL server Management Studio 0
Pyodbc 0
PuTTY 0
WinSCP 0
Total 0
Tabla 4-2-3-3: Inversión total del proyecto [Fuente propia].
INVERSIÓN TOTAL DEL PROYECTO
En miles de $
Mano de Obra 5000
Equipo de uso propio 600
Software 0
Total 5600
En consecuencia, se puede observar que para obtener el PRI (Periodo de Recuperación
de la Inversión) se tiene el ahorro anual aproximado usando variación
46 Integración de un sistema de comunicaciones internet y base de datos, para calcular el
consumo de energía mediante la dimerización de la iluminación en el hogar, variado y
consultado desde una aplicación
en cada foco comparado en el proyecto. Siendo el ahorro anual aproximado mostrado en
la tabla 4-2-3-4. Este cálculo se realiza sin tener en cuenta la mano de obra, en este caso,
ya que la mano de obra se hizo efectiva en la elaboración de esta aplicación; el posible
usuario partirá desde la variación de cada foco y el ahorro se hará efectivo con el uso
apropiado de las luminarias de su hogar.
Tabla 4-2-3-4: PRI del proyecto sin contar mano de obra [Fuente propia].
Inversión inicial Ahorro Anual Años Meses Días
60W Variados $ 600.000 $ 73.704 7 6 28
6,5W Variados $ 600.000 $ 296.339 2 0 6
Luego de esto, se calcula obteniendo el retorno en los tiempos definidos para cada
Tecnología que se use como se ilustra en la Figura 4-2-3.
Figura 4-2-3: Recuperación de la inversión, gasto anual para los diferentes focos [Fuente
propia].
47
5. Conclusiones
Los sistemas de comunicación internet del hogar son suficientemente capaces de
soportar un servicio de IIS, o cualquier otro servidor, sin embargo no es
recomendable para alto tráfico ya que el ancho de banda se saturaría rápidamente.
Se hace evidente que el uso de iluminación variable repercute en un ahorro
económico considerable si se usan tecnologías de iluminación variable.
Con el objeto de tener claro el concepto del ahorro de energía con la aplicación que
se está realizando, se realizan medidas con dos focos de características lumínicas
similares, pero uno con tecnología ahorradora y otro de vulva incandescente. En
las Figuras 5 y 5-1, se identifica que el comportamiento es similar en cuanto al
aumento de la potencia consumida relacionado directamente a la corriente
consumida.
Figura 5: Medición porcentaje de uso Potencia vs Corriente con tecnología
ahorradora [Fuente propia].
48 Integración de un sistema de comunicaciones internet y base de datos, para calcular el
consumo de energía mediante la dimerización de la iluminación en el hogar, variado y
consultado desde una aplicación
Figura 5-1: Medición porcentaje de uso Potencia vs Corriente tipo incandescente [Fuente
propia].
En conclusión, se vería el ahorro de energía necesario para validar la implementación de
la aplicación con su respectivo sistema de potencia, para hogares de bajos recursos que
no tiene la posibilidad de adquirir lámparas ahorradoras.
Con el uso consciente de la luz, se puede mejorar condiciones económicas del
hogar y contribuir un poco en disminuir el daño contra el medio ambiente.
Si cada hogar tiene acceso a esta herramienta, le será útil para la disminución del
consumo de energía y por ende disminución en los gastos fijos en dicho hogar, de
esta forma se habrá fomentado el cuidado del medio ambiente.
49
Bibliografía
[1] Capilla R., Urquiza J. “Fundamentos de Internet y programación de aplicaciones para
la web”. Perú. Consultado en Agosto de 2018. [Online]. Disponible en: http://daw-
fiec.pbworks.com/w/page/16963474/Protocolo%20HTTP.
[2] D. “Simioni, Tudo sobre Hosepdagem: Protocolos TCP, HTTP, FTP, Servidores Web”.
Brazil. [Online]. Consultado en Marzo de 2019 en:
https://www.diolinux.com.br/2015/09/tudo-sobre-hosepdagem-protocolos-tcp.html.
[3] J. Samper “Protocolos HTTP”. Univ. De Valencia. España 2010. [Online]. Disponible en:
http://informatica.uv.es/iiguia/IST/Tema2.pdf
[4] CS. Emilio, “Acceso remoto SSH Secure Shell con PuTTy”. España, 2005. [Online].
Disponible en: https://www.aemilius.net/ayuda/articulos/acceso-ssh-ssl-secure-shell-
telnet-putty.html.
[5] ZTE Corporation, “ZXHN H168N Broadband Access CPE”. China 2013. [Online].
Disponible en:
http://enterprise.zte.com.cn/en/products/network_lnfrastructure/cpe/broadband/201312/t2
0131209_414437.html
[6] E. Mican, A. Sanchez; “Prototipo de automatización domótica del sistema de iluminación
de una casa mediante comunicaciones vía internet”. Colombia, 2015. [Online]. Disponible
en: http://repository.udistrital.edu.co/handle/11349/5023
[7] Cisco “NAT Basics”. USA. Consuñyado en Abril de 2019. [Online]. Disponible en:
https://www.cisco.com/c/en/us/td/docs/security/asa/asa96/configuration/firewall/asa-96-
firewall-config/nat-basics.pdf
[8] L. Mouthón,” Uso de bombillos de luz amarilla”. Colombia 2019. [Online]. Disponible en:
https://www.elheraldo.co/economia/industriales-alertan-por-uso-de-bombillos-de-luz-
amarilla-618118
[9] Efecto LED, “Vida útil de una bombilla”. España 2017. [Online]. Disponible en:
https://www.efectoled.com/blog/vida-util-de-una-bombilla/