Mesurant el nostre consum elèctric amb una Raspberry Pi

Seguint amb documents de coses curioses que podem fer amb una Raspberry Pi, una cosa molt senzilla d'aconseguir és per exemple mesurar el consum elèctric del que vulguem, en aquest document veurem com connectar a una Raspberry Pi uns sensors no invasius de corrent i mesurar la despesa de la nostra llar, ja que la connectarem al quadre elèctric de casa nostra! Exportarem les mètriques a una base de dades de MySQL i després amb Grafana crearem un panell on podrem veure d'una manera molt intuïtiva en què gastem i quant!

 

Bé, què necessitem per seguir monitoritzant o donant un toc de domètica a la nostra Llar? Personalment el més econòmic que trobo i que sigui interessant, és posar-li un petit HAT a la Raspberry, us recomano del fabricant LeChacal ja que té diferents HAT que compliran qualssevol siguin les nostres necessitats, ja que a ells podrem connectar-los des de 1 sensor no intrusiu fins 8, depèn el HAT que vulguem, clar cada més sensors és més car, però crec que el preu és més que assumible, vagi… I si volem posar més sensors no intrusius doncs muntem tantes HAT com necessitem una sobre l'altra! Així que:

 

Us recomano repassar aquesta llista de sensors perquè cada un agafi el que més li interessi: http://lechacal.com/wiki/index.php/Main_Page

El més barat, per a 3 sensors, unes 12 lliures: http://lechacal.com/wiki/index.php/RPICT7V1_v2.0. Recordar a l'hora de comprar-lo que el output sigui en format CSV, ja ho veureu a l'hora de comprar-lo, però tenir-ho en compte!

Després ja seria adquirir tants sensors no intrusius com necessitem: SCT-013-000. Els tenim a la mateixa web o a Amazon o eBay per uns 4€ cadascun.

 

Connectarem doncs el HAT a la Raspberry Pi i els sensors que tinguem; en les pinces dels sensors tindrem en compte de passar únicament un cable, eh! I res, amb això podrem saber el consum a Vatios (W) que fa cada 'cosa’ que tinguem pinçada. Podrem mesurar de qualque aparell elèctric, així com el que s' ha dit, posar això en el quadre elèctric de casa i mesurar els consums des d'ahi, si ho tenim ben etiquetat, no ens costarà mesurar el consum General o el de l'Enllumenat, consums dels endolls, de la nevera, forn, rentadora, aquari… jo que sé!

 

Amb aquest comandament podrem connectar-nos per sèrie al HAT i veure què escup. Veureu que depenent del HAT que heu adquirit podreu veure el corrent, el voltatge o la temperatura, que és el que us escopirà aquest comando separat en comes.

[sourcecode]stty -F /dev/ttyAMA0 raw speed 38400
cat /dev/ttyAMA0[/sourcecode]

 

Ara, el que farem serà tractar aquests outputs (en format CSV), en el meu exemple si us fixeu retorna els watt de 7 sensors no intrusius, cadascun d'ells el tinc connectat a un cable del meu quadre elèctric, en veure el codi veureu quins corrents mido (General, Endolls d' unes estufes, el Rentaplats i la Rentadora, l' Enllumenat, el Forn i la Vitroceràmica, i els endolls. Després exporto aquesta info a una taula que he creat prèviament a MySQL, així que necessitarem tenir MySQL instal·lat en alguna màquina (o l'instal·lem a la mateixa Pi) i crearem ací la BD i la Taula que vulguem, us passo el meu exemple que té una columna per cada sensor:

[sourcecode]CREATE TABLE 'corrent' (
'general' FLOAT NULL DEFAULT NULL,
'estufes' FLOAT NULL DEFAULT NULL,
'lavavajillas_lavadora' FLOAT NULL DEFAULT NULL,
'enllumenat' FLOAT NULL DEFAULT NULL,
'horno_vitro' FLOAT NULL DEFAULT NULL,
'endolls' FLOAT NULL DEFAULT NULL,
'fecha' TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)
COLLATE =' latin1_swedish_ci’
ENGINE = InnoDB
;[/sourcecode]

 

I res, ja només ens queda tenir aquest marrec script en python que ens va anar omplint la Taula 'corrent’ de la nostra Base de dades! Creem aquest script:

corriente.py

[sourcecode]#!/usr/bin/python
import serial
import urllib
import json
import MySQLdb

ser = serial. Serial('/dev/ttyAMA0', 38400)

response = ser.readline()
z = response.split(",")
if len(z)>= 7:
print "General: %s Watts" % z[0]
print "Estufes: %s Watts" % z[1]
print "Rentavaixelles i Rentadora: %s Watts" % z[2]
print "Enllumenat: %s Watts" % z[3]
print "Forn i vitro: %s Watts" % z[4]
print "Endolls: %s Watts" % z[5]

general_valor = z[0]
estufas_valor = z[1]
lavavajillas_lavadora_valor = z[2]
alumbrado_valor = z[3]
horno_vitro_valor = z[4]
enchufes_valor = z[5]

db = MySQLdb.connect("localhost","root","xxxxxx","NOMBRE_BASE_DATOS")
cursor = db.cursor()

cursor.execute("""INSERT INTO corrent (general,estufes,lavavajillas_lavadora,enllumenat,horno_vitro,endolls) VALUES (%s,%s,%s,%s,%s,%s) """, (general_valor,estufas_valor,lavavajillas_lavadora_valor,alumbrado_valor,horno_vitro_valor,enchufes_valor))
db.commit()[/sourcecode]

 

I llest! El que ens queda és programar que s'executi aquest script amb l'interval que ens interessi, executem ‘crontab -e‘ i hi afegim el següent perquè s'executi per exemple cada minut:

[sourcecode]* * * * * python /home/pi/corriente.py[/sourcecode]

 

Que seria la ginda per acabar? Doncs el de sempre, gràcies a Grafana, podrem d'una manera super senzilla i ràpida treballar qualsevol dada, com en aquest exemple una taula de MySQL. Si no tens Grafana muntat repassa aquest document, i després d'això, podràs crear un Dashboard on afegiràs el que vulguis. Et passo alguns exemples:

Gràfica on hi afegim la metrica i ens la pinti, en aquest cas el consum dels endolls:

[sourcecode]SELECT endolls as value, "Endolls" as metric, UNIX_TIMESTAMP(data) as time_sec FROM corrent WHERE $__timeFilter(data) order by time_sec asc[/sourcecode]

Gràfica on hi afegim la mètrica del consum de l' Enllumenat:

[sourcecode]SELECT enllumenat as value, "Enllumenat" as metric, UNIX_TIMESTAMP(data) as time_sec FROM corrent WHERE $__timeFilter(data) order by time_sec asc[/sourcecode]

Amb el plugin Singlestat podrem mostrar per exemple el despesa actual de la General:

[sourcecode]SELECT general FROM corrent order by data desc limit 1[/sourcecode]

 

Espero que us hagi estat d'utilitat, ser lliures de modificar i personalitzar-vos-ho com ho necessiteu! Com us vaig dient en altres Posts, aquestes xorrades les estic fent servir en un mirall d'aquests màgic o MagicMirror, on em trobo guapo als matins i tinc certa info, un dia us ho conte tot, però per ara, a poc a poc! Si has arribat fins aquí gràcies per llegir-me! i a tots els que comparteixes en xarxes socials!

 

Posts recomanats

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, no dubtis a contactar amb mi, us intentareu ajudar sempre que pugui, compartir és viure ;) . Gaudir dels documents!!!

Ús de Storage DRS en vSphere 6.5

18 de January de 2018