Misurare il nostro consumo di elettricità con un Raspberry Pi

Continuando con documenti di cose curiose che possiamo fare con un Raspberry Pi, Qualcosa di molto semplice da realizzare è, ad esempio, misurare il consumo di elettricità di qualsiasi cosa vogliamo, In questo documento vedremo come collegare sensori di corrente non invasivi ad un Raspberry Pi e misurare il costo della nostra casa, poiché lo collegheremo al quadro elettrico della nostra casa! Esporteremo le metriche in un database MySQL e poi con Grafana creeremo una dashboard dove potremo vedere in modo molto intuitivo per cosa spendiamo e quanto!

 

Non male, Di cosa abbiamo bisogno per continuare a monitorare o dare un tocco di domotica alla nostra Casa? Personalmente, la cosa più economica che ho trovato e che è interessante, è quello di mettere un po 'di cappello sul Raspberry, Ti consiglio dal produttore Sciacallo poiché ha diversi HAT che soddisferanno qualunque siano le nostre esigenze, poiché possiamo collegarli da 1 Sensore non intrusivo fino a 8, dipende dal CAPPELLO che vogliamo, Naturalmente, più sensori si accettano, più sono costosi, ma credo che il prezzo sia più che abbordabile, andare… E se vogliamo mettere più sensori non intrusivi, allora montiamo tutti gli HAT di cui abbiamo bisogno, uno sopra l'altro! Così:

 

Ti consiglio di rivedere questo elenco di sensori in modo che ognuno possa prendere quello che gli interessa di più: http://lechacal.com/wiki/index.php/Main_Page

Il più economico, per 3 sensori, alcuni 12 Libbre: http://lechacal.com/wiki/index.php/RPICT7V1_v2.0. Ricordate al momento dell'acquisto che il l'output sarà in formato CSV, Vedrai quando lo acquisterai, ma tienilo a mente!

Quindi sarebbe necessario acquisire tutti i sensori non intrusivi di cui abbiamo bisogno: SCT-013-000. Li abbiamo sullo stesso sito web o su Amazon o eBay per circa 4€ ciascuno.

 

Collegheremo quindi l'HAT al Raspberry Pi e i sensori che abbiamo; Nelle pinze dei sensori terremo in considerazione di far passare un solo cavo, ehi! E niente, con ciò saremo in grado di conoscere il consumo in Watt (W) Cosa fa ogni cosa?’ che abbiamo pizzicato. Possiamo misurare da qualsiasi elettrodomestico, così come quanto è stato detto, Metti questo sul quadro elettrico della casa e misura i consumi da lì, se lo abbiamo ben etichettato, non ci sarà difficile misurare il consumo generale o quello dell'illuminazione, Consumo delle spine, del frigorifero, forno, lavatrice, Acquario… Che ne so!

 

Con questo comando saremo in grado di collegare in serie all'HAT E guarda cosa sputa fuori. Vedrai che a seconda del HAT che hai acquistato sarai in grado di vedere l'attuale, tensione o temperatura, che è ciò che questo comando ti sputerà fuori separati in virgole.

[Codice sorgente]stty -F /dev/ttyAMA0 velocità grezza 38400
gatto /dev/ttyAMA0[/Codice sorgente]

 

Ora, Quello che faremo è Trattare questi output (in formato CSV), Nel mio esempio, se guardi restituisce i watt di 7 Sensori non intrusivi, Ognuno di essi l'ho collegato ad un cavo nel mio quadro elettrico, Quando vedrai il codice vedrai quali correnti misuro (Generale, Tappi per stufe, Lavastoviglie e lavatrice, Illuminazione, il Forno e il Piano Cottura in Vetroceramica, e spine. Quindi esporto queste informazioni in una tabella che ho precedentemente creato in MySQL, Così avremo bisogno di avere MySQL installato su alcune macchine (o installarlo sul Pi stesso) e creeremo il DB e la tabella che vogliamo lì, Ti faccio il mio esempio che ha una colonna per ogni sensore:

[Codice sorgente]CREA TABELLA 'Run-of-the-Mill' (
'generale' FLOAT NULL PREDEFINITO NULL,
'stufe' FLOAT NULL DEFAULT NULL,
'lavavajillas_lavadora' FLOAT NULL PREDEFINITO NULL,
'illuminazione' FLOAT NULL PREDEFINITO NULL,
'horno_vitro' FLOAT NULL DEFAULT NULL,
'plugs' FLOAT NULL DEFAULT NULL,
'date' TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)
COLLATE='latin1_swedish_ci’
ENGINE=InnoDB
;[/Codice sorgente]

 

E niente, Ora non ci resta che avere questo meraviglioso script in python che riempirà la Tabella 'Flusso’ del nostro Database! Abbiamo creato uno script del genere:

corriente.py

[Codice sorgente]#!/usr/bin/python
Importa seriale
Importa urllib
Importare JSON
importare MySQLdb

ser = seriale. Seriale('/dev/ttyAMA0', 38400)

risposta = ser.readline()
z = risposta.split(",")
Se Len(z)>=7:
print "Generale: %s Watt" % z[0]
print "Stufe: %s Watt" % z[1]
print "Lavastoviglie & Lavatrice: %s Watt" % z[2]
stampa "Illuminazione: %s Watt" % z[3]
stampare "Forno & Vitro: %s Watt" % z[4]
print "Spine: %s Watt" % 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("ospite locale","radice","xxxxxx","NOMBRE_BASE_DATOS")
cursore = db.cursore()

cursore.execute("""INSERT INTO stream (Generale,Stufe,lavavajillas_lavadora,illuminazione,horno_vitro,Spine) VALORI (%s,%s,%s,%s,%s,%s) """, (general_valor,estufas_valor,lavavajillas_lavadora_valor,alumbrado_valor,horno_vitro_valor,enchufes_valor))
db.commit()[/Codice sorgente]

 

E questo è tutto! Non resta che programmare l'esecuzione di questo script con l'intervallo che ci interessa, Correre ‘crontab -e‘ e aggiungiamo quanto segue in modo che venga eseguito, ad esempio, ogni minuto:

[Codice sorgente]* * * * * python /home/pi/corriente.py[/Codice sorgente]

 

Quale sarebbe Le Ginda per finire? Beh, il solito, grazie a Grafana, Saremo in grado di lavorare su qualsiasi dato in modo super semplice e veloce, come in questo esempio una tabella MySQL. Se non hai montato Grafana, rivedi Questo documento, e dopo, puoi creare una Dashboard in cui aggiungerai tutto ciò che vuoi. Ecco alcuni esempi:

Grafico in cui aggiungiamo la metrica e l'ho dipinta per noi, in questo caso il Consumo delle spine:

[Codice sorgente]SELECT enchufes come valore, "Spine" come metrico, UNIX_TIMESTAMP(dattero) DA time_sec DA DOVE $ __timeFilter(dattero) Ordina per time_sec ASC[/Codice sorgente]

Grafico in cui aggiungiamo la metrica del Consumo di illuminazione:

[Codice sorgente]SELECT alumbrado come valore, "Illuminazione" come metrico, UNIX_TIMESTAMP(dattero) DA time_sec DA DOVE $ __timeFilter(dattero) Ordina per time_sec ASC[/Codice sorgente]

Con il plugin Singlestat possiamo mostrare ad esempio il spese correnti del Consiglio generalel:

[Codice sorgente]SELECT generale FROM ordine corrente per data desc limite 1[/Codice sorgente]

 

Spero che tu l'abbia trovato utile, sii libero di modificarlo e personalizzarlo secondo le tue esigenze! Come ti sto raccontando in altri post, Sto usando queste sciocchezze in uno di quegli specchi magici o MagicMirror, dove divento bello la mattina e ho qualche informazione, Un giorno ti racconterò tutto, Ma per ora, A poco a poco! Se sei arrivato fin qui, grazie per avermi letto! e tutti quelli che condividi sui social media!

 

Post consigliati

Autore

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, Non esitate a contattarmi, Cercherò di aiutarti ogni volta che potrò, Condividere è vivere ;) . Goditi i documenti!!!