>Lectura del consumo eléctrico

Introducción

La gestión del consumo energético está de moda.

Cada vez más empresas entran en el campo de la gestión inteligente del consumo energético. Un par de ejemplos cercanos:  Wattio está desarrollando nuevos sistemas para recoger los datos de consumo de nuestros aparatos eléctricos, Wintel trabaja en sistemas de análisis de consumo de calefacción y agua caliente. En ambos casos, en Iddei Proyectos hemos colaborado en alguna parte del desarrollo técnico de las soluciones que ofrecen.  Pero… ¿realmente es útil el conocer nuestro consumo energético?

Interesados en probar de primera mano qué nos puede aportar el conocer mejor nuestro consumo energético, hemos comprado un contador de energía eléctrica: el Elite de Efergy (modelo elite classic 1.0).

Hay que reconocer que es fácil de utilizar. Basta con instalar una pinza amperimétrica, conectar el transmisor y empezar a ver el consumo (ver info). Y el coste de unos 50€ (+) tampoco está mal…

Otras opciones podrían haber sido el montar un emonTx (aunque requiere más tiempo), o comprar otro equipo con conexión a PC, como el TED (The Energy Detective) con conexión USB (pero con un coste bastante superior), u otro equipo de Efergy: el e2 classic 2.0, pero no estaba disponible cuando lo quisimos comprar.

Y es que es una pena el no poder recoger los datos del Efergy que compramos en un PC para poder analizarlos como es debido. Pero… ¿seguro que no se puede?

Analicemos las opciones:

Obtener datos del display

Esta es la que parece la opción más directa. Al fin y al cabo, el display recoge los datos del transmisor, y el propio display ya calcula el consumo. En realidad, no somos los primeros en pensar algo así…

Abriendo la caja del display:

Placa del display (Origen)

La placa contiene como principales componentes, un receptor RF de 433MHz, un microcontrolador NEC D78F0511 (44 pines), el driver de la pantalla LCD: PCF 8562, y otro circuito no identificado (etiquetado como L16 6Q02W).

Parece ser que en este blog, han analizado las tramas que llegan por radio, y han deducido el protocolo, por lo que sería posible utilizar un receptor RF a 433MHz, recoger las tramas, y mediante otro microcontrolador, leerlas y luego enviarlas a un PC. De hecho, es lo que indican haber hecho varias personas en el foro del blog antes mencionado.

Pero, puestos a tener que hacer/programar una placa con un microcontrolador + chip RF… ¿no tiene más sentido ir directamente a por una placa como la emonTx?

Obtener datos del sensor

El sensor para medir la corriente, es un simple núcleo de ferrita que muestra una tensión de salida proporcional a la corriente medida. El sensor que viene con el Efenergy Elite no muestra ninguna descripción, pero un par de medidas muestran que es un sensor genérico para corriente AC (30A máx), equivalente al sensor THM104C4B de “www.seeedstudio.com”:


Más info aquí

Es decir, midiendo la tensión en su salida, sería posible estimar la corriente y así (conociendo que la tensión es 230VAC), calcular la energía total consumida.

… pero estamos en el mismo caso anterior… puestos a realizar el esfuerzo de leer ese dato, considerando además que la medida se debería realizar cerca de donde está el sensor…  ¿por qué no ir directamente a hacer una placa tipo emonTx?

 

“Leer” datos del display

Así las cosas, parece que utilizando el Efergy Elite la única opción para recoger los datos en un PC es hacer una placa a medida para ello, o pasar directamente del Efergy y usar otro dispositivo…

Pues no…

Existe una opción adicional, que en un principio, permitiría recoger los datos en un PC, aunque no podemos clasificarla más que de “hack” rápido: usar una webcam + un algoritmo de reconocimiento que “lea” la pantalla del Efergy.

No es que el sistema vaya a ganar ningún premio de fiabilidad, pero funciona…

¿Cómo lo hemos hecho?

Lo primero es recoger la foto de la webcam. El sistema de lectura funciona sobre un Mac. Para no liarnos, hemos empleado OpenCV, con “bindings” para Python.

La instalación de OpenCV es relativamente sencilla empleando MacPorts:

Teniendo MacPorts instalado (ver aquí), basta con hacer:

sudo port -v install opencv +python26

Una ventaja de utilizar OpenCV es que gestiona las webcams, ya que para obtener una imagen basta con hacer:

import cv2

vidcap = cv2.VideoCapture()

vidcap.open(0)

retval, image = vidcap.retrieve()

vidcap.release()

cv2.imwrite("/tmp/test.png", image)

Con esto, tendríamos la imagen ya guardada en “/tmp/test.png”. En nuestro caso:

Para ayudar un poco a nuestro algoritmo, filtramos los grises, para resaltar los números, e indicamos al algoritmos dónde debe buscar los números (al fin y al cabo, siempre estarán en la misma posición, lo que ayuda bastante…):

Como los números de la pantalla siempre serán iguales, si guardamos los 9 posibles números, y los vamos comparando uno a uno con los dígitos de la pantalla, el algoritmo calcula la similitud del “matching”, y nos devuelve el valor que ha leído, en este caso:

0.220, 2012-03-05 13:31:59.564868

Es decir, el valor de la lectura seguido de la fecha y hora actual.

Una vez conseguido esto, el resto es directo… envío de datos en formato JSON a un servidor, recoger los datos en MySQL, y gráficar según se quiera… (con mucho cuidado de que no cambien las condiciones de luz de la webcam, para que el sistema siga funcionando…)

Conclusiones

El sistema funciona, nos permite recoger y monitorizar los datos… pero el que sea necesario tener encendidos una lámpara + webcam + PC, hace que se desvirtúe bastante la idea de “ahorro energético”.

Es decir, en breve nos compraremos un equipo con conexión directa a PC…
¡Un saludo!

 

 

 

 


Comments are closed.