Arduino Energiemonitor & Datenlogger (Dr. Wattson, MCP39F521) – Schritt-für-Schritt
Komponenten
- 1× Arduino UNO
- 1× Dr. Wattson Energy Monitoring Board (MCP39F521, bis 12 A, kalibriert 1 mA–4 A)
- 1× Gehäuse für Dr. Wattson (Acryl, mit IEC-Buchse & Flachstecker)
- 1× Adafruit MicroSD-Breakout (SPI)
- 1× Taster (mit Pull-Up, entprellt)
- 1× LED + 220 Ω Vorwiderstand (Logging-Status)
- Netzteil / USB für Arduino
Projektziel
Ein sicherer, kalibrierter Energiemonitor, der Strom, Spannung, Wirk-/Blind-/Scheinleistung sowie Power Factor misst und per Tastendruck CSV-Logs auf SD-Karte schreibt (Log-Rotation: DATA00.CSV … DATA99.CSV). Die Daten lassen sich direkt in Excel/Calc importieren & plotten.
Aufbau & Sicherheit
Das Dr.-Wattson-Board misst über Strom- & Spannungswandler galvanisch getrennt vom Netz. Der digitale Ausgang (I²C) ist potentialfrei – gefahrlos für den Arduino. Das Board wird in einem Acrylgehäuse mit IEC-Ein/Ausgang verbaut (max. 12 A, kalibriert bis 4 A).
Verdrahtung
| Dr. Wattson | Arduino UNO |
|---|---|
| SCL | A5 (I²C Clock) |
| SDA | A4 (I²C Data) |
| VIN | 5 V |
| 3,3 V | 3,3 V |
| GND | GND |
| ZCD, Event | nicht verwendet (optional für Interrupts) |
| MicroSD Breakout (SPI) | Arduino UNO |
|---|---|
| CLK | 13 |
| MISO | 12 |
| MOSI | 11 |
| CS | 10 (Hardware-SS) |
- Taster: Pin 4 → GND (interner Pull-Up, invertierte Logik, Entprellung 20 ms via
Button-Lib) - LED: Pin 9 (Anode über 220 Ω, Kathode → GND)
Sketch-Highlights
Bibliotheken
Wire.h(I²C)UpbeatLabs_MCP39F521.h(Dr. Wattson Library, GitHub: upbeatlabs/drwattson)SD.hButton.h(Jack Christensen, GitHub)
Setup
// SD-Karte prüfen
if (!SD.begin(CHIP_SELECT)) { /* Fehler */ }
wattson.begin(); // I²C-Adresse 0x74 (Default)
// Neue Log-Datei finden (DATA00.CSV ... DATA99.CSV)
for (uint8_t i = 0; i < 100; i++) {
filename[4] = i/10 + '0';
filename[5] = i%10 + '0';
if (!SD.exists(filename)) break;
}
pinMode(LED, OUTPUT);
Loop (vereinfacht)
myBtn.read();
if (myBtn.wasReleased()) {
readData = !readData;
digitalWrite(LED, readData);
}
if (readData) {
UpbeatLabs_MCP39F521_Data data;
int ret = wattson.read(&data, NULL);
unsigned long now = millis();
if (ret == SUCCESS) {
wattson.convertRawData(&data, &fData);
// Serielle Ausgabe (für 'screen' Terminal mit Clear-Screen)
Serial.write("\x1B""c");
wattson.printMCP39F521Data(&fData);
// CSV auf SD schreiben
File f = SD.open(filename, FILE_WRITE);
if (f) {
f.print(now); f.print(',');
f.print(fData.currentRMS); f.print(',');
f.print(fData.activePower); f.print(',');
f.print(fData.reactivePower); f.print(',');
f.println(fData.apparentPower);
f.close();
}
}
}
Datenanalyse in Excel
CSV-Datei öffnen, Spaltenköpfe ergänzen (timestamp, currentRMS, activePower, reactivePower, apparentPower), Diagramm erstellen. Beispiel: Kaltstart einer 14 W-CFL-Lampe zeigt Stromspitze ~0,21 A / 17 W, dann Einpendeln auf 0,18 A / 14,2 W. Warmstart verläuft schneller.
Fazit & Weiterführendes
Dr. Wattson liefert qualitativ hochwertige Energiedaten für Maker-Projekte. Die Library bietet Kalibrierroutinen, Zero-Cross-Detection, Event-Notifications (Überstrom, Überspannung), einstellbare Messbereiche (durch Burden-Resistor-Änderung & Rekalibrierung) und Multi-Board-Betrieb (adressierbar über Lötjumper). Ideal für Smart-Home-Monitoring, Lastprofil-Analyse, Standby-Leistungsmessung u.v.m.
Herstellungsprozess
- Die Cloud-Revolution: Wie Cloud Computing IT, Sicherheit und Karrieren transformiert
- Vorbeugende Instandhaltung meistern: Feste & variable Zeitpläne erstellen und optimieren
- Variational Autoencoder mit TensorFlow bauen: Ein praktischer Leitfaden
- Arduino Temperatur- & Feuchtelogger mit DHT11 & Ethernet Shield
- Arduino Temperaturoverwachung & Echtzeituhr mit 3,2″ TFT-Display
- Temperatur & Luftfeuchte mit DHT11 auf Blynk auslesen – Arduino-Tutorial Schritt für Schritt
- Fortgeschrittenes Heimüberwachungssystem mit Arduino Mega und IoT-Sensoren
- Zuverlässigen Smart Energy Monitor mit Arduino UNO bauen – Schritt-für-Schritt-Anleitung
- Fortgeschrittener GPS-Datenlogger: Echtzeit-Flugverfolgung, Höchsthöhe & Geschwindigkeitsüberwachung
- Digitaler Kompass in Echtzeit mit Arduino & Processing bauen