Revista 100% Verde

Monitorización de consumo energético con Raspberry pi

Por Soloelectronicos @soloelectronico

Con el fin de intentar optimizar el uso domestico que hacemos de la energía eléctrica , un seguimiento estadístico del consumo energético nos puede ayudar a conocer nuestro consumo y con ello intentar optimizarlo, ya que existe un máxima que afirma que no se puede optimizar algo que no se pueda medir . Para semejante objetivo se pueden utilizar contadores de energía para medir el consumo del cuadro de distribución de corriente alterna de une vivienda y enviar esta información en tiempo real a un logger de datos basados en una Raspebrry pi 3 por medio del protocolo RS485 ( sistema de bus diferencial multipunto, ideal para transmitir a altas velocidades sobre largas distancias y a través de canales ruidosos) permitiendo enviar la información gracias a este protocolo , no solo de un watimetro sino de muchos todos operando sobre la misma linea .

El medio físico de transmisión de la salida de dichos contadores es un par trenzado , el cual admite 32, 128 o 256 estaciones en 1 solo par, con una longitud máxima de 1200 metros operando entre 300 y 19 200 bit/s y la comunicación half-duplex (semiduplex) dependiendo del consumo de cada driver debido a que la transmisión diferencial permite alcanzar mayor distancia con una notable inmunidad al ruido, siempre que el bus de comunicación conserve las características de bus balanceado (dando incluso la posibilidad de una configuración multipunto).

Gracias al sistema de bus diferencial multipunto del protocolo RS485 , se puede transmitir únicamente con dos hilos a altas velocidades incluso sobre largas distancias (10 Mbit/s hasta 12 metros y 100 kbit/s en 1200 metros) a través de canales ruidosos (es decir compartiendo las canalizaciones eléctricas ) , ya que el par trenzado reduce los ruidos que se inducen en la línea de transmisión.

En cuanto al software necesario para procesar la información de los watimetros se pueden utilizar los siguiente componentes de código abierto:

    InfluxDB -Tiempo base de datos de la serie para almacenar datos
    Grafana -Herramienta de visualización de datos basada en web

Respecto al hardware se pueden usan los siguientes elementos:

Escudo RS485 SparkFun Linksprite RS485/GPIO Shield

Monitorización  de consumo energético con Raspberry pi

Este escudo ,como puede adivinar, es el elemento estrella de esta configuración pues precisamente permite soportar el protocolo RS485 en la Raspberry Pi, de modo que podrá tener un puerto de comunicación para su bus de campo directamente conectado a su RPi.

Aunque el RS485 a veces se considera un protocolo "arcaico", permitirá que hasta 32 dispositivos se comuniquen a través de la misma línea de datos a lo largo de una longitud de cable de hasta 1200 mt con una velocidad de datos máxima de 10Mbit / s. (lo cual no son malos números)

Este escudo viene premontado, así que todo lo que tiene que hacer es ajustarlo directamente a tu Raspberry Pi y obtener la programación. El RS485 Shield V3 es compatible con Raspberry Pi B, B + y Raspberry Pi 2.

Nota: El escudo tiene una huella despoblada para un conector DB9. Verifique a continuación si necesita agregar el conector. De lo contrario, puede usar los terminales de tornillo.

Se ha verificado que funciona con una Raspberry Pi 3 con un escudo Linksprite RS485 y valores de lectura de un SDM120 y SDM630. Al cambiar el archivo [model].yml y crear un archivo .yml [modelo] correspondiente, debería ser posible usar otros modelos habilitados para modbus (agregar el conector). De lo contrario, puede usar los terminales de tornillo.

Cableado

Conecte un cable de par trenzado al escudo Linksprite RS485 , teniendo en cuenta que debe diferenciar el significado de cada hilo ( por ejemplo diferenciando con dos colores) y teniendo en cuanta que cada color que deberían ir a la A y la B.

Conecte el otro extremo del cable al terminal de Modbus del metro de la energía. Asegúrese de que el mismo color va a la A como uno conectarse A en el escudo y lo mismo para B. Si más metros van a conectar, seguir conectando los medidores de la serie: A A, B a B. Un cable de encadenamiento puede ser útil.

Se recomienda utilizar resistencias de terminación al final de la cadena. Para asegurar una conexión buena puede ser una buena idea para soldar un cable de encadenamiento para conectar todo A terminales en serie y todos los terminales B en serie.

Consulte esta documentación para obtener más información: https://www.maximintegrated.com/en/App-Notes/index.MVP/ID/763

Requisitos previos

Descargar tramo de Raspbian Lite y Flash en tarjeta SD, por ejemplo mediante el uso de grabador. Monte el protector de RS485 de cabecera de GPIO de la Raspberry Pi. Poder Rasberry Pi y contraseña de configuración (passwd) y SSH, localización, etc. utilizando la red:

Con la configuración abierta de raspi-confi, ir a: Opciones de la interfaz 5 -> Serie P6 y Deshabilitar el shell de login serial y Habilitar hardware de puerto serie (es decir NO y luego sí)

Para poder utilizar el UART es necesario deshabilitar el Bluetooth incorporado ya que comparte el UART. Para ello, agregue las siguientes líneas a /boot/config.txt

Para deshabilitar la consola serie, necesita editar la /boot/cmdline.txt archivo para parecerse a la siguiente línea:

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait 

Instalar Python Package Manager PIP si no ya instalado (no instalado en Raspbian Lite):

$ sudo apt-get install python-pip 

Instalar Git si no ya instalado (no instalado en Raspbian Lite):

$ sudo apt-get install git 

Instrucciones de instalación

Puede seguir las instrucciones de GitHub para instalar código fuente InfluxDB, Grafana y medidor registrador de energía, resumidamente son las siguintes:

Instalar InfluxDB *

Instrucciones paso a paso

Instalar Grafana *

Instrucciones paso a paso
  • Añadir repositorio APT
       sudo tee -a /etc/apt/sources.list.d/grafana.list
  • Añadir clave de Bintray
      $ curl https://bintray.com/user/downloadSubjectPublicKey ?   nombre de usuario = bintray |   sudo apt-key add -
  • Ahora instala
      $ sudo apt-get update & sudo apt-get install grafana
  • Habilite el servicio systemd para que Grafana comience al arrancar.
      $ sudo systemctl enable grafana-server.service
  • Vaya a http: // localhost: 3000 e inicie sesión usando admin / admin (recuerde cambiar la contraseña) * source

Instalar Energy Meter Logger:

Configuración del medidor de energía

En este proyecto energía Modbus activado se utilizan wtimetros de la marca Eastron. El autor ha usado dos modelos :uno normales de una sola fase y otro de tres fases . Para capturar los datos muchos de los registros y los registros de interés se especifiquen en dos archivos de configuración: SDM120.yml y SDM630.yml. Los parámetros de estos registros se almacenan como 32 bits flotante (tamaño de 2 registros) y deben ser leídos por código función 04, fuente :

De la documentación Eastron obtenemos el siguiente mapa de registro para configurar nuestros archivos de configuración.

Si se utiliza un medidor de energía diferentes, simplemente deberá configurar su propio archivo de configuración y añadir a meters.yml donde también se define la configuración modbus para cada metro.

meters: - name : Meter Group 1 type : SDM120.yml id : 1 # this is the slave address number baudrate : 9600 # Baud bytesize : 8 parity : even # none | odd | even stopbits : 1 timeout : 0.5 # seconds 

Grafana

Grafana abierto (e.g. http://raspberrypi.local:3000) y entrar con admin / admin.

Empezar por crear un origen de datos:

    Nombre: Dar un nombre de su elección
    Tipo: Seleccione InfluxDB

Añadir un panel de control y haga clic en gráfico. Haga clic en "Panel de título" y edición. Haciendo clic en "seleccionar medición", "+", "valor de campo" etcetera puede seleccionar los parámetros que interesa analizar.

Una cosa vale la pena destacar es en "Opciones" donde debe ingresar el "intervalo de tiempo mínimo" que debe ser el mismo que el tiempo entre mediciones.

En la pestaña de "Ejes" puede la unidad para la medición.

NOTAS:

En caso de que no se registren las lecturas en la Raspberry Pi ,lo mejor es empezar por investigar el archivo de registro. El nivel de registro puede establecerse como parámetro cuando se ejecuta el script:

Al registro de configuración para depuración usted obtiene más información. Si usted ha de escribir el registro en un archivo puede buscar en el registro de error usando este comando:--logfile

Asimismo asegúrese de que todos sus medidores conectados en el mismo están configurados con la misma velocidad en baudios. También es muy importante definir un tiempo de espera corto, aproximadamente 10 ms,(con entre parámetro así definido se puede hacer que se tolere si se produce errores de CRC al azar).

Mas información en https://www.hackster.io/samuelphy/energy-meter-logger-6a3468


Volver a la Portada de Logo Paperblog