Waarom een op microcontroller gebaseerde Power Meter bouwen?

De energierekening van uw woning blijft stijgen en het begrijpen van de plaats waar elektriciteit wordt verbruikt is de eerste stap in de richting van het verminderen van afval. Commerciële energiemonitors kosten vaak honderden dollars en missen de flexibiliteit om te communiceren met aangepaste domoticasystemen. Een op microcontroller gebaseerde stroommeter biedt een goedkoop alternatief dat u kunt afstemmen op uw specifieke behoeften. Door het meten van spanning, stroom en het berekenen van echte stroom, bieden deze apparaten bruikbare inzichten die u helpen bij het verschuiven van lasten, het identificeren van defecte apparaten en het volgen van trends op lange termijn. Deze gids loopt door de hardware selectie, circuitontwerp, firmware ontwikkeling en kalibratie stappen die nodig zijn om een betrouwbare, nauwkeurige powermeter te bouwen met behulp van een Arduino, ESP32, of soortgelijk platform.

Kerncomponenten: Wat u nodig hebt en waarom

Elke powermeter hangt af van een paar kritische componenten. Het selecteren van kwaliteitsonderdelen heeft direct invloed op de nauwkeurigheid, veiligheid en gebruiksgemak. Hieronder breken we elk element af, bespreken we de gemeenschappelijke opties en leggen we uit hoe ze samenwerken.

Microcontroller (MCU)

De microcontroller neemt analoge signalen, voert berekeningen uit en verwerkt communicatie. Voor de monitoring van thuisenergie is de ESP32 een sterke keuze omdat het WiFi en Bluetooth integreert, op 3.3V draait en dual-core processing biedt. Als u liever eenvoud, werkt een Arduino Uno (5V logica) goed voor prototypering, maar vereist een extern WiFi-schild voor connectiviteit. Belangrijkste specificaties zijn onder meer ADC resolutie (10-bit is gebruikelijk, maar 12-bit of hoger verbetert precisie), sampling rate (ideaal >1 kHz voor nauwkeurige RMS berekeningen), en aantal analoge ingangen (ten minste twee: één voor spanning, één voor stroom).

Spanningssensor

Het meten van netspanning (meestal 110 .240 VAC) is de eerste uitdaging. Direct aansluiten van de ADC van de microcontroller zou gevaarlijk en illegaal zijn. De veiligste benadering maakt gebruik van een potentiële transformator of een praktische spanningsverdeler[] gevolgd door een isolatieversterker. Een gemeenschappelijke DIY-methode maakt gebruik van een 230V-naar-9V AC-stap-down transformator met de secundaire zijde gevoed in een weerstandsverdeler om de piekspanning te schalen tot ~1V, vervolgens gecompenseerd door de helft van de ADC-referentie (bijv., 1.65V voor een 3.3V-systeem). Voor split-fasesystemen (US 240V/120V), kunt u twee spanningssensoren nodig hebben. Zorg ervoor dat uw circuit goed fuseert en isolatie omvat om schokrisico's te voorkomen.

Huidige sensing

Voor stroommeting zijn split-core stroomtransformatoren (CT's) ideaal omdat ze rond een levende draad zonder onderbrekingsservice vastklemmen. De SCT‐013-familie is populair: de 30A/1V-uitgangen van de AC 0.0.1V-stroom evenredig met de stroom, die een ADC kan lezen na DC-vooringenomenheid. Hall-effectsensoren zoals de ACS712 of ACS758 bieden DC/AC-meting in een compact IC-pakket, maar vereisen het afsnijden van het circuit en het invoegen van de sensor. CT's zijn niet-invasief en geven de voorkeur aan permanente installaties. Kies een CT met een stroomwaarde die iets boven de maximale verwachte belasting ligt (bijv. 100A voor een huismonitor).

Analoge-to-Digitale conversie (ADC)

De ingebouwde ADC van de microcontroller is geschikt voor basismeters, maar de beperkte resolutie (10 bits op Arduino, 12 bits op ESP32) en de geluidsvloer kunnen fouten veroorzaken. Voor een hogere nauwkeurigheid, rekening houden met een externe ADC zoals de MCP3208 (12-bit, SPI) of ADS1115 (16-bit, I2C). De ADS1115 is bijzonder populair omdat het programmeerbare gain (tot ±256 mV) en laag lawaai biedt, waardoor nauwkeurige meting van kleine signalen mogelijk is. Gebruik differentiële ingangen voor de huidige sensor om gemeenschappelijke modusgeluid te weigeren.

Weergave en connectiviteit

Een lokaal display (OLED 128×64, TFT of teken LCD) toont realtime vermogen in watt, kilowatt-uren en kosten. Voor toegang op afstand, WiFi (ESP32 ingebouwd) of een externe ESP-01 module kunt u gegevens naar MQTT, ThingsBoard of een eenvoudige webserver duwen. Bluetooth BLE is een optie voor mobiele apps voor korte afstand. Zorg ervoor dat uw connectiviteit het energieverbruik niet verhoogt tot het punt waar het energiebesparing negeert.

Ontwerp en veiligheid van circuits

Voor het monteren van iets, ontwerp het circuit op papier. De spanning en stroom meetpaden moeten volledig worden geïsoleerd van elkaar en van de lage spanning MCU kant. Gebruik een 5V of 3.3V gereguleerde voeding afgeleid van een kleine wandadapter, niet van het net. Alle aansluitingen op het net moeten worden ingesloten in een geïsoleerde doos en beoordeeld voor de verwachte spanning en stroom. Nooit werken op live circuits tenzij u gekwalificeerd bent. Plaats een zekering aan de primaire kant van een transformator en houd PCB sporen kort om geluidkoppeling te verminderen.

Een typische circuit voor een enkele fasemeter:

  • Spanningskanaal: Stap-down transformator (bv. 9V AC uitgang) → spanningsverdeler om te verminderen tot 1V piek → DC offset (Vcc/2) → RC filter (100Ω/10μF) → ADC ingang.
  • Huidige kanaal: CT (bv. SCT‐013 met ingebouwde lastweerstand) → gelijkspanningscompensatie (Vcc/2) → RC filter → ADC ingang.
  • Power supply: 5V of 3.3V geregeld vanaf een USB-voedingsbank of speciale adapter. Trek geen stroom uit het meetcircuit.

Voeg een 10kΩ trimpot toe om de DC offset precies aan te passen aan de helft van de ADC referentie. Dit zorgt ervoor dat de AC golfvorm gecentreerd wordt en de microcontroller zowel positieve als negatieve helften kan lezen.

Firmware: Sampling, RMS Berekening, en Power Computation

De firmware moet beide kanalen synchronisch nemen, de werkelijke RMS-waarden berekenen (voor niet-sinusoïdale belastingen zoals schakelvoeding), en het actieve vermogen, het zichtbare vermogen en de powerfactor afleiden. Hieronder is een uitgebreide uitleg van het algoritme.

Steekproefstrategie

Voor een 50/60 Hz net, monster ten minste 64 punten per cyclus (bijv. 3840 monsters/seconde voor 60 Hz) om harmonischen tot de 15e vast te leggen. Een hogere samplesnelheid (2

Berekenen van spanning en huidige RMS

Gebruik de volgende formule voor elk kanaal:

sum_squared = 0;
for (int i = 0; i < N; i++) {
 read = analogRead(pin);
 // Remove DC offset
 sample = read - DC_OFFSET;
 sum_squared += sample * sample;
}
rms = sqrt(sum_squared / N) * (ADC_VREF / ADC_RESOLUTION) * SCALE_FACTOR;

De zet de ADC-waarde (raw digital value) terug naar volt of amps. Bepaal het experimenteel: voer een bekende referentie (bijv. 10V AC) en pas de factor aan totdat de RMS-lezing overeenkomt met een echte RMS multimeter.

Vermogensberekening

Schijnbaar vermogen (S = V rms × I rms) is eenvoudig, maar actieve vermogen (P) vereist onmiddellijke vermenigvuldiging en gemiddelden:

sum_active = 0;
for (int i = 0; i < N; i++) {
 v = (analogRead(V_PIN) - V_OFFSET) * V_SCALE;
 i = (analogRead(I_PIN) - I_OFFSET) * I_SCALE;
 sum_active += v * i;
}
active_power = sum_active / N;

Vermogensfactor = active power / schijnbare power. Voor zuiver weerbestendige belastingen, PF ≈ 1.0; voor inductieve belastingen (motoren), PF daalt onder 1.0, en echte meting van het actieve vermogen is essentieel voor nauwkeurige facturering.

Energieaccumulatie (kWh)

Om het energieverbruik te volgen, moet de actieve stroom in de loop van de tijd worden geïntegreerd:

uint32_t lastMillis = 0;
float energy_Wh = 0;
void loop() {
 if (millis() - lastMillis >= 1000) { // every second
 float power_watts = compute_active_power();
 energy_Wh += power_watts * (1.0 / 3600.0);
 lastMillis = millis();
 }
}

Bewaar de verzamelde waarde in EEPROM of RTC geheugen zodat het stroomverlies overleeft. Voor een hele huis meter, verwachten waarden in het bereik van 500

Kalibratie: Het geheim van betrouwbare gegevens

Zonder kalibratie, kunnen uw metingen zijn uitgeschakeld met 10 . 20% of meer. Het proces omvat drie stappen:

  • Zerokalibratie: Lees zonder belasting de DC offset voor elk kanaal en pas de firmware constanten aan totdat de RMS zo dicht mogelijk bij nul staat (meestal <0,1 W).
  • Gainkalibratie voor spanning: Breng een bekende stabiele spanning (bijvoorbeeld een 12V AC-adapter gemeten met een multimeter) aan en stel de spanningsschaalfactor in totdat de meter overeenkomt.
  • Gainkalibratie voor stroom: Verbind een bekende weerstandslast (bijvoorbeeld een 100W-gloeilamp) en stel de stroomschaalfactor in. Een gekalibreerde true-RMS-klemmeter is hier van onschatbare waarde.

Neem de eindkalibratieconstanten in de broncode op of bewaar ze in een niet-vluchtig geheugen zodat u de firmware kunt fijnafstellen zonder opnieuw te knippen.

Gegevensloggen en visualisatie

Rauwe nummers op een seriële monitor zijn niet gebruiksvriendelijk. Voeg een lokaal display toe om real-time stroom, dagelijkse energie en geschatte kosten te tonen. Voor externe monitoring, stuur gegevens via WiFi naar platforms zoals EmonCMS, ThingsBoard of een aangepaste Node-RED dashboard. De ESP32 maakt dit oneven ..verbind je gewoon met je thuisnetwerk en publiceert JSON via MQTT. Als je een zelfgehoste oplossing verkiest, schrijf dan een eenvoudige webserver op de MCU die een lichtgewicht HTML-pagina met grafieken van Chart.js bedient.

Voor langdurige logging schrijft een SD-kaartmodule CSV-bestanden. Dit is handig wanneer WiFi onbetrouwbaar is of voor offline analyse. Zorg ervoor dat de kaart goed is geformatteerd en de SD-bibliotheek veilig wordt geïnitialiseerd om corruptie van bestanden te voorkomen.

Meer dan één fase: driefase- en meerfasensystemen

Huizen met drie-fase vermogen (gemeenschappelijk in Europa en grotere Amerikaanse huizen) vereisen drie voltage en drie stroomkanalen. U kunt een MCU gebruiken met voldoende analoge ingangen (bijvoorbeeld ESP32 heeft twee ADC's gemultiplexed tot 16 pins, maar analoge ruis neemt toe bij het gebruik van meerdere kanalen). Een betere aanpak is om twee of meer MCU's te gebruiken die communiceren via I2C of seriële, of een externe multiplexer zoals de CD74HC4067. Kalibreer elke fase onafhankelijk en som de actieve krachten op.

Synchronisatie van de tijd

Voor een nauwkeurig actief vermogen per fase, neem alle spanning en stroomparen in één enkele burst (binnen microseconden) om faserelaties te behouden. Als je achtereenvolgens kanalen neemt (zoals bij een multiplexer), zal de tijdschroef een fasefout introduceren die toeneemt met hogere frequenties. Dedicated ADC's met gelijktijdige monster-en-greep (zoals de AD7606) lossen dit op, maar voegen kosten toe. Een praktische oplossing is om te nemen bij het nul-kruisen van de spanningsgolfvorm voor elke fase.

Geavanceerde functies om uw meter uit te breiden

Zodra de basisvermogensmeter werkt, overwegen toevoegen van deze verbeteringen:

  • Waarschuwingen voor vermogenscorrecties: Als PF onder de 0,8 daalt, markeer je de gebruiker om mogelijke reactieve belastingen te onderzoeken.
  • Identificatie van de toepassing: Door harmonische handtekeningen te analyseren (met behulp van de UMTS), kunt u onderscheid maken tussen een koelkast, magnetron en wasmachine. Dit is een actief onderzoeksgebied maar te doen met een ESP32 en voldoende RAM.
  • Solar generation monitoring: Voeg een tweede stroomtransformator toe aan de zonne-feed-in-lijn (bidirectionele CT) om de netto-export/import te meten.
  • Auto-kalibratie: Gebruik een relais om in een bekende referentieweerstand te schakelen voor zelfkalibratie tijdens stationaire perioden.
  • Over-power shutdown: Verbind een solid-state relais met het loskoppelen van ladingen wanneer het verbruik een drempel overschrijdt (bv. om te voorkomen dat de breker struikelt).

Vergelijking met commerciële energiemonitors

Commerciële producten zoals de Sense, Emporia Vue of Shelly EM bieden gepolijste apps, cloudintegratie en veiligheid op de UL-lijst. Echter, ze sluiten je op in een eigen ecosysteem en vereisen vaak een maandelijks abonnement voor historische gegevens. Een DIY meter geeft je volledige eigendom van gegevens, geen terugkerende kosten, en de mogelijkheid om te communiceren met een slimme thuisstandaard (Home Assistant, OpenHAB). De trade-off is tijdinvesteringen en de noodzaak om te voldoen aan lokale elektrische codes. Voor een permanente installatie, overwegen het raadplegen van een elektricien met een licentie.

Middelen en verdere lezing

Voor een beter begrip, raadpleeg de volgende middelen:

Alles samenbrengen: een praktische checklist

Om u te helpen aan de slag te gaan, is hier een stapsgewijze checklist voor een enkele fase, ESP32-gebaseerde meter:

  1. Onderdelen kiezen en bestellen: ESP32 DevKitC, SCT‐013‐000 (100A/50mA), 230V‐tot‐9V wisseltransformator, 1kΩ en 10kΩ weerstanden, 10μF/25V condensatoren, perfboard, behuizing.
  2. Stel eerst de spannings- en stroomverdelercircuits samen op een breadboard. Test met een multimeter om de DC offset te verifiëren is precies Vcc/2.
  3. Schrijf een eenvoudige schets die ruwe ADC-waarden afdrukt. Breng een bekende AC spanning (door de transformator) aan en controleer de golfvorm op een seriele plotter.
  4. Implementeer RMS berekening met gemiddeld meer dan 50 cycli. Vergelijk het lezen met een multimeter.
  5. Voeg stroomsensor toe en herhaal kalibratie. Test met een 100W lamp (lees ~0.43A op 230V).
  6. Combineer spanning en stroombemonstering in één lus. Bereken actief vermogen. Controleer met een weerstandskracht (actief vermogen ≈ schijnbare vermogen).
  7. WiFi-verbinding en MQTT publiceren toevoegen. Gebruik een tool als MQTT Explorer om de gegevensstroom te verifiëren.
  8. Ontwerp en 3D-print een behuizing die zorgt voor luchtstroom en voorkomt dat er per ongeluk contact met de netbedrading komt. Installeer de laatste versie in het breekpaneel (met hoofdonderbreker uit).
  9. Voer de meter 24 uur uit en vergelijk het totale dagelijkse energieverbruik met uw nutsrekening om de nauwkeurigheid binnen 2⁄5% te bevestigen.

Een op microcontroller gebaseerde energiemeter bouwen is een lonend project dat onmiddellijke praktische voordelen biedt. Met een zorgvuldig ontwerp en kalibratie levert uw zelfgemaakte monitor jarenlang betrouwbare energiegegevens, helpt u afval te verminderen en geld te besparen.