Power Monitor – Stromverbrauch messen mit Arduino

Da die Stromkosten beim Serverhosting inzwischen der teuerste Posten sind , soll  die Leistungsaufnahme an jeder Steckdose im Rack erfasst werden.

Habe dazu 19″ Einschübe gefunden die normalerweise für Bühnen/Licht Anwendungen verwendet werden. Jede Steckdose ist einzeln mit einer Feinsicherung abgesichert.

Als Stromwandler werden Current Transformers von Talema verwendet (Datenblatt).

Erfasst wird das ganze mit einem  Arduino Mega kompatiblem Board (Roboduino Mega 16 AD Eingänge) und per USB Schnittstelle zum Monitoring Server geschickt dort in eine RRD Datenbank geschrieben und ausgewertet

Die Arduino Software habe ich haupsächlich hier abgekupfert:

http://openenergymonitor.blogspot.com/

hier mal ein paar Bilder meiner PDU’s:

Hier sind die Stromwandler bereits eingebaut und verdratet...

Das  Schaltbild : powermonitor.pdf

habe jetzt mein „powermonitoring-shield“  fertig….

Beim Test auf einem DFRduino Mega hatte ich das Problem dass die Analogports >7 nicht funktionierten. folgende Änderung (evtl Update auf 0018?) behebt das Problem:

siehe http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1250970792

Sorry guys, this will be fixed in Arduino 0018.  In the meantime, you can edit hardware/cores/arduino/wiring_analog.c and change:

ADMUX = (analog_reference << 6) | (pin & 0x0f);

to:

ADMUX = (analog_reference << 6) | (pin & 0x07);

(The change should take effect automatically next time you compile or upload a sketch.)

Es scheint soweit alles zu klappen – aber wenn von allen 12 Analogports lese  passen die Werte nicht mehr genau :-(

wenn ich nur 5 lese passt z.b. powerfactor bei einer Glühlampe  (~1) bei  12 ports geht der Wert auf 0,85…

mal sehen ob sich das beschleunigen lässt….

Ok – Das Problem scheint daher zu rühren dass durch die Verzögerung (analogread braucht 100mikrosekunden) die gemessenenen Werte ( Strom und Spannung) nicht mehr in Phase sind – deswegen auch die Abweichungen im Powerfactor!

Hier die aktuellen Arduino Sketches – Die Daten können nun von einem Script gepollt werden.

Measurments

SAmeasurement

Serial

Das ist mein Perl Script das Daten vom Arduino abholt und in eine Round-Robin-Datenbank schreibt .

rrd.pl

Graphisch dargestellt wird das ganze dann per rrd.cgi auf dem Webserver  (rrd.cfg)

Fast fertig – jetzt muss nur noch geeicht werden dann kann die ganze Sache ins Gehäuse gebaut werden.

Das  Schaltbild : powermonitor.pdf

fast fertig

Dieser Beitrag wurde unter Arduino veröffentlicht. Setze ein Lesezeichen auf den Permalink.

8 Antworten auf Power Monitor – Stromverbrauch messen mit Arduino

  1. Manuel T. sagt:

    Das Schaltbild ist nicht erreichbar

  2. admin sagt:

    Danke – habs korrigiert!

  3. Dirk Alt sagt:

    Sehr schön und leicht verständlich formuliert. Deppenfreundlich

  4. Thomas fragstein sagt:

    wie würdest du so etwas Eichen?

  5. admin sagt:

    Habe mit einem hochwertigen Messgerat Spannung und Strom gemessen an einer rein ohmischen Last (Lampe, Heizgerät etc)

  6. Arne sagt:

    Hi!

    Ich kann auf dem Schaltbild leider nicht genau sehen, welcher Chip auf dem Mess-Shield zum Einsatz kommt, ist das ein 761S von Maxim bzw. wo und wie kann ich den bekommen?

    Bin schon gespannt, das Teil nachzubauen… Prima Anleitung!

    Gruß,
    Arne

  7. Danke für Die Anleitung :) Hast Du gemessen, wie präzise Du mit dem Arduino letztlich die Leistung des Verbrauchers erfassen kannst?

  8. Piet sagt:

    Sehr schoen gemacht! – Ehrlich.
    Eins verstehe ich aber nicht, laut Schaltplan:
    Die einzelnen Leistungsabgaenge sind an Stromwandler/Trafos gekoppelt. – Richtig?
    Der Schaltplan zeigt indes nur einen, aber dafuer 10 Messausgaenge. – Wie ist das gemeint?

Schreibe einen Kommentar