Electriciteitsmeter uitlezen

Deze keer wat meer over de details hoe ik zelf mijn energiemeter digitaal heb gemaakt. In ons huis zit nog een ouderwetse draaischijf- of ferraris-meter. Helaas geen modernere meter met een een knipperende led waardoor het wat moeilijker is om de meter digitaal uit te lezen. Hier beschrijf ik hoe dat toch kan met behulp van een zgn. ‘reflective optical sensor’ zoals de QRD1114 of de CNY70. Dit soort sensoren meet de reflectie van het onderliggende oppervlak doormiddel van het meten van lichtweerkaatsing van een infrarood ledlampje. Omdat draaischijven doorgaans zijn voorzien van een zwart of rood streepje kan de sensor deze detecteren door een wijziging in de reflectie. De sensor wordt daarvoor op het glas van de draaischijfmeter geplakt, precies tegenover de draaischijf zodat deze altijd in zicht is. Zie bijvoorbeeld in het plaatje hieronder. Daar zit een CNY70 in een behuizing die met een stukje zelfklevend plakband op het ruitje van een draaischijfmeter is geplakt.

Een leuk aspect van de draaischijfmeter is dat deze terug draait als er bijvoorbeeld zonnepanelen aan hangen en er stroom wordt geleverd aan het net. Dit is met een enkele reflective optical sensor niet detecteerbaar want die detecteert af en toe het streepje, maar ziet niet de draairichting van de schijf. Dit wordt opgelost door twee in plaats van een sensor te gebruiken. De volgorde waarin het streepje op de draaischijf wordt gedetecteerd bepaald nu de draairichting. Normaal (rechtsdraaiend) detecteert de linkersensor als eerste het streepje, en wordt stroom afgenomen. Als de rechtersensor als eerste het streepje detecteert draait de schijf naar links en wordt stroom teruggeleverd aan het electriciteitsnet.

Hieronder het schema dat ik heb gebruikt om de sensoren aan te sluiten. De beide CNY70 sensoren zijn ieder aangesloten aan een eigen poort van een JeeNode: een op de Arduino gebaseerde microcontroller. De weerstanden heb ik gekozen op basis van wat testen en varieren totdat er een mooi signaal uit leek te komen.

Na het in elkaar zetten heb ik eerst maar eens een grafiekje van het signaal gemaakt. Daarvoor heb ik een klein programmaatje gemaakt dat regelmatig (om de 250ms) de linker- en rechter-sensor uitleest. Na plotten in een grafiekje ziet het signaal er uit als is weergegeven in onderstaande figuur. De detectie van het lijntje is goed te zien, en ook dat de linker sensor eerst een piek geeft, en dan pas de rechter. Voor de rest varieert het signaal meer dan ik had verwacht, dat is minder. Hier gaat vast iets niet goed, maar wat? De output van beide sensoren is ook nog van een verschillend niveau. Dat komt waarschijnlijk door de plek waar ze op de meter zijn geplakt.

In de code die ik gebruik volg ik per sensor het minimum en maximum zodat ik dit niet hoef in te stellen. De piekdetectie vindt plaats op het moment dat het signaal binnen een kleine marge van het maximum komt. Daarbij heb ik een soort softwarematige Schmitt-Trigger toegevoegd om te voorkomen dat dezelfde piek meerdere keren wordt gedetecteerd: na iedere piek moet eerst een dal komen voordat een nieuwe piek wordt gedetecteerd. Afhankelijk van de volgorde pieken links/rechts wordt de rotatie bepaald, en dus het eventuele (-) teken voor het berekende wattage. Wattage wordt berekend door de afstand tussen twee opeenvolgende pieken te berekenen. In dit geval ruim 23 seconden wat overeenstemt met 250watt. Een voorbeeld van de door mij gebruikte code is hier beschikbaar.

11 gedachten over “Electriciteitsmeter uitlezen”

  1. Pieter,
    Een heel interressant artikel voor mij. Heb een bijna identieke ferrarismeter voor mijn zonnepanelen en een arduino mp met ethernetshield. Alleen het programmeren is mij totaal onbekend; oefen met de voorbeelden op de arduino website en dit gaat wel. Met hulp van het wijhebbenzon.nl forum zal ik een goed eind opweg komen. Voor het uitlezen wordt daar gebruik gemaakt van een digitale cq analoge Finder KWh meter met pulsuitgang, een railmontage meter. Ik heb echter een oude installatie en het zit keurig en veilig nu met mijn aparte ferraris KWh meter.Het door u gepubliceerde programma gaat uit van twee richtigen, maar dit is voor mij niet van toepassing. Zou ik het ook voor de alleen maar rechtomdraaiende meter kunnen gebruiken?
    Mvg D. Schaap

  2. Leuk projectje, maar toch te ingewikkeld voor mij.
    Waarom niet een éénfase kwh meter gekocht voor 30 euro, en in de kabel naar de zonnepanelen geplaatst? Meeste zijn din uitvoering, heb je geen din rail, dan een loskastje naast de “echte” kwh meter hangen en klaar.

    1. De electriciteitsmeter op het eerste plaatje is gereviseerde electriciteitsmeter die net als je beschrijft in de kabel naar de zonnepanelen zit. Het gaat mij niet zozeer om de meter, maar om het automatisch uitlezen daarvan. Met een din-rail meter voorzien van een S0-uitgang op de groep van de zonnepanelen is dat natuurlijk ook te doen. Probleem blijft dan nog steeds dat het belangrijk is om op de hoofdmeter de ‘richting’ van het vermogen te kunnen bepalen. Een voorbeeldje

      Op een zeker moment leveren de zonnepanelen een vermogen van 1000 Watt. De meter van de groep van de zonnepanelen geeft dan aan: 1000 Watt. Omdat de zonnepanelen de enige ‘verbruiker’ op de groep zijn weet je dat dit aan het net wordt geleverd.

      Op hetzelfde moment geeft de hoofdmeter een vermogen aan van 1000 Watt. Als niet bekend is of er energie gevraagd of geleverd wordt, dan kan dit twee dingen betekenen:

      1. Er wordt 2000 Watt verbruikt in huis, minus de 1000 Watt van de zonnepanelen is: 1000 Watt verbruik

      2. Er wordt 0 Watt verbruikt in huis, minus de 1000 Watt van de zonnepalen is: -1000 Watt verbruik (oftwel 1000 Watt levering).

      Om deze reden is het voor mij essentieel om te weten of er vermogen gebruikt of geleverd wordt. Ik wil dus het teken weten, niet alleen de omvang. Bij de hoofdmeter (ferrarismeter) kan dit door de draairichting van het wiel te bepalen. Een din-rail meter met een enkele S0 uitgang is daarvoor dus onvoldoende.

  3. Hallo, ik wil graag een CNY70 gaan gebruiken voor mijn ouderwetse elektriciteitsmeter en kwam via google op dit artikel.
    Ik ben zeer benieuwd wat voor behuizing u gebruikt heeft voor de sensor, deze zou ik graag zelf ook willen gebruiken.

  4. Leuke pagina! Ik heb toevallig ook zo iets gemaakt, maar dan op basis van een Raspberry Pi die ik al gebruikte om mijn SMA omvormer uit te lezen.

    Ik maak ook gebruik van 2 CNY70, maar lees die uit dmv een “losse” ADC die op mijn Raspberry is aangesloten.

    De code is (momenteel) in Python geschreven, en heeft ook een soort van software-Schmitt trigger. Wat ik wel gedaan heb, is de marge ten opzichte van de min waarde en de max waarde verschillend gemaakt.
    Uit een test bleek dat de ribbeltjes op de schijf van mijn meter voor een brede band met waardes zorgt, door (in mijn geval) 30 boven de minimum waarde te zitten, kan ik veel beter mijn dal detecteren.

    Voor de liefhebbers zal ik ook even mijn schema delen:
    https://www.circuitlab.com/circuit/eae95u/raspberry-pi-kwh-meter/

    1. Patrick, ik ben aan het kijken om ook mijn meter uit te gaan lezen en zou dan iets willen bouwen volgens jou schema, zou je ook wat (Python) code met ons willen delen?
      Ik heb nu de nuon emanager maar die kan niet de richting bepalen van de schijf, zou leuk zijn dat wel voorelkaar te krijgen.

  5. Ha Patrick,

    Met veel belangstelling lees ik je verhaaltje. Ik heb ook het schema gevonden op Circuitlab. Wat ik me afvraag is waar de groene en rode led voor dienen? En, wellicht kan je van je oplossing (raspberry pi en analoge meter) een fototje maken?!
    En, hoe is het inmiddels met de code? En, waar sla je de data op?

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *