Bouw een Betrouwbare Arduino Energiemonitor & Datalogger – Stapsgewijze Handleiding
Onderdelen en Benodigdheden
| Arduino UNO | 1 |
| Dr. Wattson Energiemonitor-bord (MCP39F521) | 1 |
| Behuizing voor Dr. Wattson (acryl, met IEC-stopcontact) | 1 |
| Adafruit MicroSD-kaart breakout | 1 |
| LED (rood) + 220Ω weerstand | 1 |
| Tactiele drukknop | 1 |
Over dit Project
Deze energiemonitor meet stroom, spanning, vermogen (actief, reactief, schijnbaar), power factor en frequentie van aangesloten apparaten. Data wordt gelogd op een SD-kaart in CSV-formaat voor analyse in Excel. Een drukknop start/stopt het loggen; een LED toont de status. Log-rotatie creëert per sessie een nieuw bestand (DATA00.CSV tot DATA99.CSV).
De Dr. Wattson-breakout (gebaseerd op Microchip MCP39F521) meet geïsoleerd via stroom- en spanningswandelaars – veilig en geïsoleerd van het net. Kalibreerd voor 1mA tot 4A (4000:1 dynamisch bereik).
Opstelling
De Dr. Wattson zit in een acrylbehuizing met IEC-in/uitgang en spade-connectoren. Je stopt de tussenstop in het stopcontact en het apparaat in de tussenstop. De digitale uitgang (I2C) is volledig geïsoleerd van het net.
Schema: Dr. Wattson – Arduino UNO
- SCL → A5 (I2C)
- SDA → A4 (I2C)
- ZCD → Niet gebruikt
- Event → Niet gebruikt
- GND → GND
- VIN → 5V
- 3.3V → 3.3V
SD-kaart (SPI): CLK→13, MISO→12, MOSI→11, CS→10 (hardware CS).
Drukknop: Pin 4, interne pull-up, geïnverteerde logica (Button-bibliotheek van Jack Christensen).
LED: Pin 9 (via 220Ω naar GND).
Sketch Highlights
// Setup
pinMode(LED, OUTPUT);
pinMode(CHIP_SELECT, OUTPUT);
if (!SD.begin(CHIP_SELECT)) { /* error */ }
wattson.begin(); // I2C adres 0x74 standaard
// Nieuwe logbestand kiezen
char filename[] = "DATA00.CSV";
for (uint8_t i = 0; i < 100; i++) {
filename[4] = i/10 + '0';
filename[5] = i%10 + '0';
if (!SD.exists(filename)) break;
}
// Loop
myBtn.read();
if (myBtn.wasReleased()) {
readData = !readData;
digitalWrite(LED, readData);
}
if (readData) {
wattson.read(&data, NULL);
wattson.convertRawData(&data, &fData);
unsigned long currentMillis = millis();
// CSV schrijven: timestamp, currentRMS, activePower, reactivePower, apparentPower
File dataFile = SD.open(filename, FILE_WRITE);
if (dataFile) {
dataFile.print(currentMillis); dataFile.print(",");
dataFile.print(fData.currentRMS); dataFile.print(",");
dataFile.print(fData.activePower); dataFile.print(",");
dataFile.print(fData.reactivePower); dataFile.print(",");
dataFile.println(fData.apparentPower);
dataFile.close();
}
}
Actie & Data-analyse
- Upload sketch, open seriële monitor (of beter:
screen /dev/ttyUSB0 9600op Linux/Mac voor live updating scherm). - Druk knop → LED aan → logging start.
- Schakel toestel in (bijv. CFL-lamp). Meet opstartpiek en stabilisatie.
- Druk knop → LED uit → logging stopt.
- SD-kaart inlezen, CSV openen in Excel, kolomkoppen toevoegen:
timestamp, currentRMS, activePower, reactivePower, apparentPower. - Grafieken maken: stroom/vermogen over tijd.
Voorbeeldresultaat CFL-lamp (koude start): Stroom piekt op 0.21A, daalt naar 0.18A. Actief vermogen piekt op 17W, daalt naar 14.2W. Na afkoelen en herstart: direct stabiel.
Conclusie & Uitbreidingen
Dr. Wattson maakt kwalitatieve energiedata toegankelijk voor makers. De bibliotheek ondersteunt ook:
- Kalibratieroutines
- Nuldoorgangedetectie (ZCD)
- Event-notificaties (overstroom, oververmogen, spanningsdips/pieken)
- Aanpasbare meetbereiken (via shunt/CT en herkalibratie)
- Meerdere Dr. Wattson-borden op één I2C-bus (adres via solder-jumpers: 0x74-0x77)
Volledige sketch, bibliotheek en voorbeelden op GitHub: upbeatlabs/drwattson.
Productieproces
- Preventief onderhoud meesteren: Vaste en drijvende planningen bouwen en optimaliseren
- Arduino temperatuur- en vochtigheidslogger met DHT11 en Ethernet Shield
- Arduino Temperatuurbewaking & Realtime Klok met 3.2" TFT-display
- Temperatuur en Vochtigheid met DHT11 op Blynk - Stap-voor-Stap Arduino Tutorial
- Geavanceerd thuismonitoringssysteem met Arduino Mega en IoT-sensoren
- Bouw een Betrouwbare Slimme Energiemonitor met Arduino UNO – Stapsgewijze Handleiding
- Geavanceerde GPS Data Logger: Realtime Vlucht Tracking, Piekhoogte & Snelheidsmonitoring
- Een Arduino-gebaseerd ECG- en ademhalingsmonitoringssysteem bouwen
- Bouw een Real-time Digitale Kompas met Arduino & Processing
- Een Variational Autoencoder Bouwen met TensorFlow: Een Praktische Gids
- De Cloud Revolutie: Hoe Cloud Computing IT, Beveiliging en Carrières Transformeert