Unseren Stromverbrauch messen mit einem Raspberry Pi
Weiter geht es mit Dokumenten über kuriose Dinge, die wir mit einem Raspberry Pi machen können, Etwas, das sehr einfach zu erreichen ist, ist zum Beispiel, den Stromverbrauch von allem zu messen, was wir wollen, In diesem Dokument erfahren Sie, wie Sie nicht-invasive Stromsensoren an einen Raspberry Pi anschließen und die Kosten für unser Zuhause messen können, da wir es an die Schalttafel unseres Hauses anschließen werden! Wir exportieren die Metriken in eine MySQL-Datenbank und erstellen dann mit Grafana ein Dashboard, in dem wir auf sehr intuitive Weise sehen können, wofür wir ausgeben und wie viel!
Nicht schlecht, Was brauchen wir, um unser Zuhause weiterhin zu überwachen oder ihm einen Hauch von Heimautomatisierung zu verleihen?? Persönlich das billigste, was ich gefunden habe und das ist interessant, ist es, einen kleinen HUT auf die Himbeere zu setzen, Ich empfehle Ihnen vom Hersteller Schakal da es verschiedene HATs gibt, die alle unsere Bedürfnisse erfüllen, da wir sie von 1 Berührungsloser Sensor bis zu 8, es hängt davon ab, welchen HAT wir wollen, Je mehr Sensoren Sie akzeptieren, desto teurer ist natürlich, aber ich denke, der Preis ist mehr als erschwinglich, los… Und wenn wir mehr nicht-intrusive Sensoren einbauen wollen, dann montieren wir so viele HATs, wie wir brauchen, übereinander! Also:
Ich empfehle Ihnen, diese Liste von Sensoren zu überprüfen, damit jeder denjenigen nehmen kann, der ihn am meisten interessiert: http://lechacal.com/wiki/index.php/Main_Page
Die billigste, für 3 Sensoren, einige 12 Pfund: http://lechacal.com/wiki/index.php/RPICT7V1_v2.0. Denken Sie beim Kauf daran, dass die Ausgabe im CSV-Format, Sie werden es sehen, wenn Sie es kaufen, Aber behalten Sie es im Hinterkopf!
Dann wäre es notwendig, so viele nicht-intrusive Sensoren zu beschaffen, wie wir benötigen: SCT-013-000. Wir haben sie auf der gleichen Website oder bei Amazon oder eBay für jeweils ca. 4 €.
Wir werden dann den HAT mit dem Raspberry Pi verbinden und die Sensoren, die wir haben; Bei den Klemmen der Sensoren wird berücksichtigt, dass nur ein Kabel geführt wird, Hallöchen! Und nichts, Damit werden wir in der Lage sein, den Verbrauch in Watt zu ermitteln (W) Was bewirkt jedes Ding?’ die wir eingeklemmt haben. Wir können von jedem Elektrogerät aus messen, sowie das Gesagte, Hängen Sie diese an die Schalttafel des Hauses und messen Sie von dort aus den Verbrauch, wenn wir es gut beschriftet haben, Es wird uns nicht schwer fallen, den allgemeinen Verbrauch oder den der Beleuchtung zu messen., Verbrauch der Stecker, des Kühlschranks, Ofen, Waschmaschine, Wassermann… Was weiß ich!
Mit diesem Befehl werden wir in der Lage sein Anschluss in Reihe an den HAT Und sieh, was er ausspuckt. Sie werden sehen, dass Sie je nach dem von Ihnen gekauften HAT die aktuelle, Spannung oder Temperatur, Das ist es, was dieser Befehl in Kommas getrennt an Sie ausspuckt.
[Quellcode]stty -F /dev/ttyAMA0 Rohgeschwindigkeit 38400
cat /dev/ttyAMA0[/Quellcode]
Jetzt, Was wir tun werden, ist Behandeln dieser Ausgaben (im CSV-Format), In meinem Beispiel, wenn Sie es sich ansehen, gibt es die Watt von 7 Nicht-intrusive Sensoren, Jedes von ihnen habe ich an ein Kabel in meiner Schalttafel angeschlossen, Wenn Sie den Code sehen, sehen Sie, welche Ströme ich messe (Allgemein, Ofen-Stecker, Geschirrspüler und Waschmaschine, Beleuchtung, den Backofen und das Cerankochfeld, und Stecker. Dann exportiere ich diese Informationen in eine Tabelle, die ich zuvor in MySQL erstellt habe, Also wir werden MySQL brauchen auf einigen Rechnern installiert (oder installieren Sie es auf dem Pi selbst) und wir erstellen dort die DB und die Tabelle, die wir haben möchten, Ich gebe Ihnen mein Beispiel, das für jeden Sensor eine Spalte hat:
[Quellcode]TABELLE ERSTELLEN 'Gewöhnlich' (
'allgemein' FLOAT NULL DEFAULT NULL,
'stoves' FLOAT NULL DEFAULT NULL,
'lavavajillas_lavadora' FLOAT NULL DEFAULT NULL,
'lighting' FLOAT NULL DEFAULT NULL,
'horno_vitro' FLOAT NULL DEFAULT NULL,
'plugs' FLOAT NULL DEFAULT NULL,
'date' TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP BEI UPDATE CURRENT_TIMESTAMP
)
COLLATE='latin1_swedish_ci’
ENGINE=InnoDB
;[/Quellcode]
Und nichts, Jetzt müssen wir nur noch dieses wunderbare Skript in Python, das die Tabelle füllt "Bach’ unserer Datenbank! Wir haben ein solches Skript erstellt:
corriente.py
[Quellcode]#!/usr/bin/python
Serien importieren
urllib importieren
JSON importieren
MySQLdb importieren
ser = Seriennummer. Seriell('/dev/ttyAMA0', 38400)
Antwort = ser.readline()
z = Antwort.split(",")
if len(z)>=7:
print "Allgemeines": %s Watt" % z[0]
drucken "Öfen: %s Watt" % z[1]
print "Geschirrspüler & Waschmaschine: %s Watt" % z[2]
print "Beleuchtung": %s Watt" % z[3]
drucken "Ofen & Vitro": %s Watt" % z[4]
print "Stecker: %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("localhost","Wurzel","xxxxxx","NOMBRE_BASE_DATOS")
cursor = db.cursor()
cursor.execute("""IN STREAM EINFÜGEN (Allgemein,Herde,lavavajillas_lavadora,Beleuchtung,horno_vitro,Stecker) WERTE (%s,%s,%s,%s,%s,%s) """, (general_valor,estufas_valor,lavavajillas_lavadora_valor,alumbrado_valor,horno_vitro_valor,enchufes_valor))
db.commit()[/Quellcode]
Und das ist es! Was bleibt, ist, dieses Skript so zu planen, dass es in dem Intervall ausgeführt wird, an dem wir interessiert sind, Laufen ‘crontab -e‘ Und wir fügen folgendes hinzu, damit es zum Beispiel jede Minute läuft:
[Quellcode]* * * * * python /home/pi/corriente.py[/Quellcode]
Was wäre das das Ginda zum Schluss? Nun, das Übliche, dank Grafana, Wir werden in der Lage sein, auf super einfache und schnelle Weise mit allen Daten zu arbeiten, wie in diesem Beispiel eine MySQL-Tabelle. Wenn Sie Grafana nicht gemountet haben, überprüfen Sie Dieses Dokument, und danach, Sie können ein Dashboard erstellen, in dem Sie hinzufügen können, was Sie möchten. Hier sind einige Beispiele:
Diagramm, in dem wir die Metrik hinzufügen, und ich habe es für uns gemalt, In diesem Fall wird die Verbrauch der Stecker:
[Quellcode]SELECT enchufes als Wert, "Stecker" als Metrik, UNIX_TIMESTAMP(Datum) als time_sec VON corriente WO $__timeFilter(Datum) Sortieren nach time_sec ASC[/Quellcode]
Diagramm, in dem wir die Metrik der Verbrauch der Beleuchtung:
[Quellcode]SELECT alumbrado als Wert, "Beleuchtung" als Metrik, UNIX_TIMESTAMP(Datum) als time_sec VON corriente WO $__timeFilter(Datum) Sortieren nach time_sec ASC[/Quellcode]
Mit dem Singlestat-Plugin können wir z.B. die laufenden Ausgaben des Ausschussesl:
[Quellcode]SELECT allgemein AUS aktueller Reihenfolge nach Datum desc Limit 1[/Quellcode]
Ich hoffe, Sie fanden es nützlich, Seien Sie frei, es nach Bedarf zu modifizieren und anzupassen! Wie ich Ihnen in anderen Beiträgen erzähle, Ich benutze diesen Unsinn in einem dieser magischen Spiegel oder MagicMirror, wo ich morgens gut aussehe und ein paar Infos habe, Eines Tages werde ich euch alles darüber erzählen, Aber für den Moment, Peu a peu! Wenn Sie so weit gekommen sind, danke, dass Sie mich gelesen haben! und alle, die Sie in den sozialen Medien teilen!