Construcción e implementación de un sistema domótico para el monitoreo del consumo eléctrico vía web mediante una aplicación Android y la tecnología Raspberry

CONSTRUCTION AND IMPLEMENTATION OF A DOMOTIC SYSTEM FOR THE WEB MONITORING OF ELECTRIC CONSUMPTION THROUGH AN ANDROID APPLICATION AND THE RASPBERRY TECHNOLOGY

Boris González1

José Herazo1

Euclides Samaniego González2*

1Licenciatura en Ingeniería de Sistemas y Computación
Facultad de Ingeniería de Sistemas Computacionales
Universidad Tecnológica de Panamá.

2Grupo de Investigación en Inteligencia Computacional GIICOM
Facultad de Ingeniería de Sistemas Computacionales
Universidad Tecnológica de Panamá

Resumen El presente proyecto consiste en la explicación del proceso de construcción de un sistema para medir el consumo eléctrico en un hogar a través de internet en tiempo real, y con la posibilidad de ver los resultados en el dispositivo móvil del usuario. Dicho sistema lee y procesa la información para enviarla hacia un servidor en la plataforma web que permite enviar la información hacia una aplicación en el dispositivo móvil del usuario. Se abarca el diseño e implementación del hardware y del software del sistema, además de las pruebas de funcionamiento evaluando los resultados del sistema versus mediciones a través de dispositivos más exactos.

Palabras claves Internet de las cosas, raspberry, android, consumo energético.

Abstract This research explains the construction process of a system which measure the electric consumption of a house throughout internet in real time with the possibility of seeing the results in the user’s mobile phone. The system reads and processes the information for sending it to a server in a web platform for later sending again the information processed to a mobile phone. We cover the design and implementation of the hardware and software, also the performance tests comparing the results of the system with measures throughout.

Keywords Internet of things, raspberry, android, energetic consumption.

* Corresponding author: [email protected]

1. Introducción

Se considera que el consumo energético es un problema que empieza a intensificarse. La mejor manera de solucionar un problema es prevenirlo, es por eso que en esta revisión producto de la tesina de grado plantea el desarrollo de un dispositivo que permita conocer el consumo eléctrico de nuestro hogar en tiempo real.

En esta revisión se presentan los antecedentes del proyecto, en este caso proyectos parecidos que fueron desarrollados anteriormente con similitudes al propuesto, además, se caracteriza el problema, justificación y limitaciones.

De igual modo, se describe detalladamente el sistema a desarrollar, y los componentes de hardware que se ven implicados en el funcionamiento del mismo. Se describe el funcionamiento de la interfaz de internet WiFi y el sensor de corriente CT.

Además se expone el funcionamiento de los programas utilizados para el desarrollo del proyecto, entre ellos, el sistema operativo a utilizar, la lectura de valores por medio del sensor CT, el desarrollo de la plataforma web que se implementa en el proyecto y la conexión de la misma, y por último se explica el desarrollo de la aplicación móvil, en este caso para Android.

Finalmente, se analizan los resultados obtenidos con el uso e implementación del sistema y se estudian los resultados para evaluar la confiabilidad de la data que se expone a través de nuestro sistema, y se verifica que los datos concuerden y sean confiables.

2. Aspectos generales

2.1 Antecedentes

Se han desarrollado algunos artefactos que ayudan al usuario a saber su consumo eléctrico, como es el caso del proyecto de grado de Jonathan Alberto Zaldaña, titulado “Medidor inalámbrico de consumo de energía eléctrica de bajo costo”, en la Universidad de El Salvador, El Salvador [1]. Este proyecto, parecido al propuesto, consiste en el diseño y construcción de un medidor inalámbrico de consumo de energía eléctrica, utilizando micro controladores y transductores de corriente.

También se pueden encontrar en el mercado productos que tienen como objetivo la medición del consumo eléctrico en el hogar, ya sea en puntos específicos del hogar o para toda la casa, tales como Efergy Elite, Owl Intuition-e y OD Energy.

Desde que se comenzó a desarrollar el concepto del Internet de las Cosas (IdC) se han creado una gran cantidad de proyectos alrededor del mundo, todos con el mismo objetivo, conectar los objetos de uso diario a la Internet.

Uno de los proyectos que valen la pena recalcar es la tesis desarrollada por Edison Chuquimarca Sarango de la Universidad de Loja, Ecuador, con el nombre “Diseño e implementación del prototipo de un sistema domótico para la medición del consumo de agua potable a través de Internet y correo electrónico” [2].

2.2 Caracterización del problema

La globalización y el desarrollo de las nuevas tecnologías nos han llevado a un excesivo aumento en el consumo eléctrico. En Panamá, en 1980 se promediaban 750 kWh per cápita al año, mientras que en el 2011 este valor se multiplicó casi 2.5 veces llegando a unos 1830 kWh per cápita al año.

2.3 Justificación

El IdC ha demostrado tener un potencial de desarrollo a gran escala, principalmente dentro del hogar, conectando los dispositivos de uso diario al internet, para así dar soluciones más sencillas y eficientes.

Por lo tanto, se dispone tomar estos dos puntos de inflexión, el Internet de las Cosas como solución a situaciones dentro del hogar que necesiten de tecnología de avanzada y que sea de fácil implementación, y el incremento del consumo eléctrico dentro de los hogares como problemática que debe ser tratada lo más pronto posible. Los autores consideran que una forma para contribuir al ahorro de consumo eléctrico es saber el consumo eléctrico en tiempo real en nuestros teléfonos inteligentes.

2.4 Restricciones y limitaciones

El prototipo será capaz de medir solamente el consumo eléctrico total de un hogar o un grupo de dispositivos eléctricos y funcionará correctamente con una conexión a internet.

3. Diseño e implementación del hardware

3.1 Descripción del sistema

El sistema está compuesto por cuatro partes esenciales: los sensores, un adaptador Raspberry PI para sensores CT, una Raspberry PI y la interfaz inalámbrica.

Los sensores utilizados para el funcionamiento del dispositivo son los siguientes:

Sensores CT: con los cuales se calcula el consumo eléctrico a partir de la medición de corriente eléctrica y previa medida de voltaje.

Sensor de Temperatura Interno de la Raspberry PI: con la función de monitorear la temperatura interna del dispositivo Raspberry PI.

El componente principal del dispositivo es la Raspberry Pi, en ella está conectado el sensor de temperatura, se conectan los sensores CT a través del adaptador correspondiente, y se logra una conexión a internet inalámbrica mediante un adaptador WiFi.

En la figura 1 se muestra el diagrama de los componentes principales del dispositivo y su funcionamiento:

image

Figura 1. Diagrama de componentes del sistema.

3.2 Conexión de sensores de corriente

Para poder extraer los datos medidos por los sensores CT, estos deben estar conectados a un adaptador debido a que el puerto Jack 3.5 mm de la Raspberry PI es exclusivamente para salida de audio.

El adaptador para sensores CT es un sensor RPICT3 manufacturado por LeChacal.com (Adaptador Sensor – Raspberry PI en Fig. 1.) Este cuenta con tres conexiones Jack 3.5 mm para sensores CT. Estos puertos están conectados a un microcontrolador Arduino programable ATTINY 85.

3.3 Interfaz Wi-Fi

Se utilizó un adaptador de red WiFi tipo USB 2.0 (Adaptador WiFi en la figura 1), el mismo al ser conectado a la placa Raspberry Pi funciona como una tarjeta de red en un computador convencional.

4. Diseño e implementación del software

4.1 Sistema operativo

Se decide utilizar Raspbian con nuestra Raspberry Pi, ya que es una de los sistemas operativos más nuevos que funcionan con la placa, y nos brinda la posibilidad de utilizar un entorno gráfico amigable, es una de las versiones más extendidas y con mejor soporte.

4.2 Registro del dispositivo en la plataforma Xively

La plataforma Xively funciona como servidor para dispositivos.

Para el uso de la plataforma Xively como servidor de datos, es necesario el registro previo del dispositivo a conectarse.

En nuestro caso es necesario registrar la Raspberry Pi como dispositivo conectado a Xively. Luego de registrar el dispositivo en la plataforma, esta asigna algunos datos únicos y privados para el dispositivo.

4.3 Codificación del Programa Python para procesamiento de datos

Para lograr enviar los datos a la plataforma Xively, en la cual se van a almacenar la lectura de datos en tiempo real, se necesita la ayuda de un programa extra que realice la lectura de datos desde el puerto serial (al cual están conectados los sensores CT).

Este programa debe realizar la conexión a la plataforma Xively, y al mismo tiempo debe enviar los datos a la plataforma para su almacenamiento y posterior uso.

Con base en que el sistema descansa sobre el sistema operativo Raspbian Jessie, que es un sistema basado en Linux, se decidió codificar el programa para el procesamiento de datos utilizando el lenguaje de programación Python.

Instalación de la Librería Python de Xively.

Se necesitó de una librería llamada Xively para realizar la conexión desde Python a la plataforma. Esta librería la provee la plataforma Xively, es de código abierto y se encuentra en la plataforma GitHub.

Conexión con Plataforma Xively

Para realizar la conexión con la plataforma Xively desde Python se necesitó el API Key que provee la plataforma al momento de registrar el dispositivo, la conexión se realiza con la función xively.XivelyAPICliente([APIKey]) de la librería Xively instalada desde GitHub.

Lectura de Datos de los Sensores de Corriente

Para realizar la lectura de los datos debe conocerse el formato con el cual están siendo enviados al puerto serial antes de realizar la lectura en el programa Python.

Formato de Datos

El adaptador de sensores CT envía los datos al puerto serial con el siguiente formato:

ID 1A 1B 2A 2B 3A 3B

ID: representa el nodo asignado en el software del adaptador, es único y no cambia.

1A y 1B: representan el valor codificado de un sensor conectador en el puerto 1 del adaptador.

2A y 2B: representan el valor codificado de un sensor conectador en el puerto 2 del adaptador.

3A y 3B: representan el valor codificado de un sensor conectador en el puerto 3 del adaptador

Decodificación de los datos

Para decodificar los valores medidos por cada sensor se deben seguir la siguiente ecuación para cada uno de ellos. La ecuación (1) representa el cálculo del consumo en Watts para el sensor conectador en el puerto 1 del adaptador

ConsumoSensor1= 1B*256+1A (1)

4.4 Envío de datos a la plataforma Xively

El envío de datos a la plataforma Xively se realiza mediante la creación de distintos canales para el envío de datos a un feed del dispositivo. Los dispositivos conectados a la plataforma únicamente cuentan con un solo feed, y éste es identificado por un Feed ID que se utiliza para crear canales de transmisión desde otras APIs.

Creación u obtención de los canales de transmisión

Para nuestro caso era necesaria la creación de tres canales de transmisión, dos para los valores de dos sensores CT conectados y uno para la lectura de la temperatura de la Raspberry Pi.

Los canales de transmisión también pueden ser creados en la plataforma Xively desde la página web correspondiente al perfil de dispositivo vinculado. Por lo tanto en caso de que ya se haya creado un canal de transmisión, solo basta obtenerlo desde la plataforma para actualizarlo después.

A continuación se muestra un segmento de código que crea un canal de transmisión llamado “Power1”.

El código consta de una función para el canal de trasmisión (datastream) en la cual mediante una estructura try except, se crea o se obtiene un canal de transmisión (si el canal está creado se obtiene, si el canal no existe se crea).

4.5 Ejecución automática del programa en el sistema operativo

Para mantener la plataforma Xively actualizada en tiempo real con los valores leídos y procesados por el programa Python, se debe procurar que éste se ejecute iterativamente en el sistema operativo.

Antes de poder ejecutarlo mediante el sistema operativo de manera automática, el archivo a ejecutarse debe tener permisos de ejecución. Este permiso se le asigna mediante el comando:

Cron es un administrador regular de procesos. Este se encarga de ejecutar líneas de comandos o procesos iterativamente cada cierto intervalo de tiempo. Para esto se modificó el archivo >crontab en el sistema operativo.

En nuestro caso el programa en Python se ejecutaría cada minuto luego de insertar el siguiente comando al abrir el fichero crontab en el terminal mediante la instrucción crontab –e.

El 1 representa un minuto de intervalo de ejecución para el archivo ubicado mediante su dirección y nombre en el sistema operativo.

Cada minuto se ejecuta el programa Python y actualiza los datos en la plataforma Xively.

4.6 Desarrollo de la aplicación Android

A continuación presentamos los pasos llevados a cabo para la elaboración de la aplicación Android cuya función es acceder a los datos de la plataforma Xively y presentarlos en tiempo real en el dispositivo móvil.

Conexión con la plataforma Xively

La plataforma Xively utiliza el protocolo HTTP para comunicarse con otros dispositivos vía internet. Mediante este protocolo se manipulan los datos del dispositivo de manera remota.

Para lograr la comunicación se instala la librería >org.apache.http.legacy que es utilizada para manipular las peticiones HTTP que se realicen desde el dispositivo. Sin esta librería el dispositivo no estaría habilitado para comunicarse con la plataforma Xively vía internet.

Como la única función de la aplicación Android es leer datos de la plataforma Xively, en la clase para manipular datos de la misma se necesita una función capaz de acceder a los datos utilizando como parámetros la url permanente del dispositivo suministrada por Xively y su APIKey.

Para obtener los datos debe realizarse una petición HTTP a la url del dispositivo enviando en el encabezado su >APIKey.

Lectura de Datos

Para acceder a los datos desde la clase principal de la aplicación Android para posteriormente visualizar en pantalla los datos elegidos a mostrar, se debe efectuar una llamada a la función anterior y procesar la respuesta.

La plataforma Xively utiliza JSON (JavasScript Object Notation) como formato de intercambio de datos. Por lo que es conveniente utilizar la librería org.jason para el manejo de los datos.

Exposición de los Datos

Se utilizó el siguiente diseño para la visualización de los datos en el prototipo.

image

Figura 2. Interfaz gráfica del sistema.

En la figura 2 se ilustra el diseño del prototipo funcionando en el emulador del entorno de Android Studio.

5. Pruebas y resultados

5.1 Verificación de las lecturas de mediciones

Para la verificación de las mediciones se hicieron pruebas comparando el consumo medido por el dispositivo versus el consumo calculado a partir de una medición utilizando un amperímetro convencional.

El proceso consistió en medir la corriente de un hogar pequeño utilizando el dispositivo y revisando el consumo con el amperímetro periódicamente.

A partir de la medición de corriente del amperímetro calculamos el consumo neto utilizando un voltaje de 120 V. A partir de este cálculo comparamos estos valores con los valores visualizados en la aplicación Android.

5.1.1 Recolección de datos

Se recopilaron 36 mediciones para realizar el estudio del error absoluto y relativo del dispositivo.

Con los datos de la tabla 1, se puede calcular el error relativo en las mediciones realizadas por el dispositivo. En la tabla 2 se muestran los valores calculados.

De la tabla 2 se puede concluir que el error relativo del dispositivo en comparación con el valor que debe medir puede ser muy grande, lo que lo hace ineficaz en algunos casos.

Tabla 1. Valores de pruebas realizadas

Medición

Amperaje

Consumo

Consumo

1

4.46

535.20

596.50

2

4.54

544.80

596.50

3

4.41

529.20

596.50

4

3.96

475.20

596.50

5

3.96

475.20

596.50

6

3.07

368.40

428.50

7

3.07

368.40

428.50

8

3.04

364.80

427.50

9

3.04

364.80

427.50

10

3.04

364.80

427.50

11

3.02

362.40

427.50

12

3.00

360.00

427.50

13

3.00

360.00

427.50

14

2.98

357.60

427.50

15

2.99

358.80

427.50

16

3.00

360.00

427.50

17

3.10

372.00

427.50

18

11.00

1320.00

1271.00

19

10.30

1236.00

1203.00

20

11.60

1392.00

1276.00

21

12.58

1509.60

1548.00

22

3.83

459.60

533.00

23

3.83

459.60

506.00

24

3.60

432.00

360.00

25

3.60

432.00

377.00

26

12.30

1476.00

1249.00

27

3.84

460.80

503.00

28

12.69

1522.80

1557.00

29

3.75

450.00

500.00

30

12.80

1536.00

1560.50

31

3.08

369.60

427.00

32

5.34

640.80

707.50

33

5.30

636.00

707.50

34

5.26

631.20

697.00

35

5.28

633.60

697.50

36

5.13

615.60

697.50

Tabla 2. Errores relativos porcentuales en cada medición

Consumo Economu (W)s Error relativo porcentual

image

596.50

11.45

596.50

9.49

596.50

12.72

596.50

25.53

596.50

25.53

428.50

16.31

428.50

16.31

427.50

17.19

427.50

17.19

427.50

17.19

427.50

17.96

427.50

18.75

427.50

18.75

427.50

19.55

427.50

19.15

427.50

18.75

427.50

14.92

1271.00

3.71

1203.00

2.67

1276.00

8.33

1548.00

2.54

533.00

15.97

506.00

10.1

360.00

16.67

377.00

12.73

1249.00

15.38

503.00

9.16

1557.00

2.25

500.00

11.11

1560.50

1.60

427.00

15.53

707.50

10.41

707.50

11.24

697.00

10.42

697.50

10.09

697.50

13.30

5.1.2 Comparación del error relativo versus el consumo

Luego de realizar un pequeño análisis a la tabla 2, logramos detectar que puede existir una correlación negativa entre el error relativo y el valor medido por el dispositivo.

Para comprobar esto realizamos la prueba de correlación lineal de Pearson con los datos de la tabla anterior, dando como resultado un coeficiente de -0.74, lo que corresponde a una relación negativa moderada entre las variables. La gráfica de la figura 3, muestra la relación entre ambas variables.

image

Figura 3. Error relativo porcentual vs consumo medido del prototipo.

6. Conclusiones

El sistema de medición implementado permite monitorear de manera local y remota el consumo eléctrico del hogar utilizando una plataforma web orientadas al Internet de las Cosas y a través de un dispositivo móvil.

Se determinó que el sensor CT cumple con los requerimientos para un sistema de medición y monitorización de consumo eléctrico, ya que utiliza la teoría electromagnética y las señales de voltaje del cable al que es conectado y así mide con cierta precisión la corriente y la potencia que pasan por el mismo.

El sistema embebido Raspberry Pi puede ser utilizado para interactuar con cualquier sensor electrónico aplicando la ingeniería de hardware y software correspondiente.

Además, al usar una distribución especial de Linux como sistema operativo, tenemos todos los beneficios del software libre y no requerir ninguna licencia comercial, así abaratando costos.

El monitoreo de consumo eléctrico residencial permite al usuario contar con información segura, asequible y en tiempo real, en comparación con los sistemas tradicionales. El tener registros de consumo cada 2-3 minutos puede permitir construir gráficas estadísticas para poder apreciar mejor el consumo eléctrico en el día a día dentro del hogar y así tener bases en la toma de decisiones futuras, y le da al usuario la información necesaria para ahorrar dinero.

El Internet de las Cosas como nueva tendencia tecnológica, es la gran oportunidad para monitorear y controlar remotamente dispositivos de toda clase, lo que abre un gran campo de nuevas oportunidades. En un par de años la mayoría de los dispositivos tradicionales que tenemos en nuestros hogares estarán conectados al internet.

La investigación, desarrollo e implementa- ción en nuevas tecnologías de sistemas embebidos resulta ser fundamental para el desarrollo de nuevos métodos de medición, monitoreo y / o control de parámetros en dispositivos, no solo a nivel residencial, sino a futuro verse aplicado dentro del campo industrial.

Los antiguos medidores mecánicos residenciales pueden ser fácilmente reemplazados por el sistema domótico de medición y monitoreo ya que utilizan la misma infraestructura existente.

No se cuenta con una infraestructura de comunicación propia entre las partes del sistema, tampoco con servidores propios que almacenen la información y la pongan a disposición. Debido a que se utiliza una plataforma web privada, en este caso Xively, no se tiene el acceso y control completo del sistema en sí, pues no permite al administrador un control total y ni permite la solución de errores si ocurre algún fallo de comunicación o el servidor no está disponible.

Es totalmente viable desarrollar una aplicación para dispositivos móviles Android para monitorear, visualizar y controlar los datos y la información captada por los sensores electrónicos. La aplicación nos permite ver en tiempo real los datos sin importar el lugar ni el momento, siempre y cuando tengamos una conexión a internet. También es posible desarrollar la misma aplicación para dispositivos iPhone y iPad.

Referencias

[1] Sarango, E. C. (s.f.). Diseño e implementación del prototipo de un sistema domótico para la medición del consumo de agua potable a través de Internet y Correo Electrónico. Ecuador.

[2] Zaldaña, J. A. (s.f.). Medidor inalámbrico de consumo de energía eléctrica de bajo costo. San Salvador.