Jú ’t

Contacting Juerd

Jabber
#####@juerd.nl
ICQ
7516019
MSN Messenger
_____-removethis@removethis-juerd.nl
E-mail
#####@juerd.nl

De kWh-meter-meter

[De kWh-meter-meter op mijn kWh-meter]

Deze pagina heb ik geschreven naar aanleiding van heel veel vragen over mijn stroommeet-projectje. Blijkbaar is er veel interesse in. Hopelijk worden nu alle vragen in één keer beantwoord! (Zo niet, mail me dan gerust.)

Ik ga al heel lang bewust om met mijn stroomverbruik. Dat is goed voor het milieu en houdt de rekening laag. En met de gebruikelijke besparingstechnieken kom ik heel ver: stekkerdozen met schakelaars, dingen die je niet gebruikt ook niet aan laten staan, energielabel A of beter voor de huishoudelijke apparatuur. Met ongeveer 2 tientjes aan variabele kosten per maand denk ik dat ik qua elektriciteitsgebruik niet veel meer kan besparen zonder aan comfort in te leveren of investeringen te doen die zich niet lonen.

[Stroommeter voor in het stopcontact]

Maar als je eenmaal zo bewust bezig bent met je stroomgebruik, word je ook nieuwsgierig en wil je precies weten hoeveel je apparaten gebruiken. Althans, ik zit wel zo in elkaar. Ik kocht een aantal stroommeters voor in het stopcontact, maar de informatie daarvan is niet leuk te verwerken. Natuurlijk is het leuk om te weten hoeveel de TV gebruikt, en wat een wasje in de wasmachine kost, maar het zegt niks over het geheel. Ik kan zo'n ding niet makkelijk inpluggen op de mechanische ventilatie, want dat gebruikt zo'n 5-polige perilex-stekker. Ik kan het niet gebruiken voor m'n koelkast, want achter m'n koelkast zou ik het display niet kunnen lezen. En bovenal: ik kan er geen leuke grafieken mee maken, want die stekkerdingen geven alleen het huidige gebruik en het totaal; ze hebben geen handige signaallijn voor een computer.

[Inductiestroommeetspoeltje]

Daarom wilde ik in eerste instantie mijn stoppenkast voorzien van van die klemmetjes die aan de hand van elektromagnetische inductie weten hoeveel stroom er door de draad vloeit. Maar mijn meterkast heeft geen hoofdschakelaar dus ik bleef het steeds uitstellen. Toen ik hoorde dat de goedkope spoeltjes niet zo nauwkeurig zijn bij laag stroomverbruik, heb ik het plan helemaal laten varen.

Ik bedacht dat het mogelijk moest zijn om de kWh-meter uit te lezen. Immers, zoals de meeste huizen is ook mijn huis voorzien van zo'n ding. Het telwerk houdt keurig het stroomgebruik bij, dus waarom zou ik iets nieuws moeten toevoegen om hetzelfde te doen? Het ding heeft een draaischijf met daarop één zwart stukje. Het exemplaar uit 1982 dat in mijn meterkast hangt, ooit nog door het gemeentelijk energiebedrijf geïnstalleerd, heeft een draaischijf die per kWh 375 rondjes draait. Dat gegeven is per meter weer anders, maar gelukkig staat het er gewoon op.

[Stroomgebruik bij RevSpace]

Feitelijk wilde ik dus iets maken dat het draaien van de kWh-meter meet, oftewel een kWh-meter-meter. Bij een chinese webshop bestelde ik reflectiesensortjes, en vervolgens lagen die bijna een jaar op de plank voordat ik ze ben gaan gebruiken. Ik begin namelijk niet zomaar aan een project als ik nog struikelpunten zie, en ik had nog geen idee hoe ik de grafieken wilde gaan maken. Ik kende rrdtool wel, maar zag dat als zwarte magie. Toen FooBar, een andere RevSpace-ganger, een vergelijkbaar systeem had gemaakt voor de moderne digitale kWh-meter van de hackerspace, kon ik mooi zijn rrdtool-configuratie kopiëren en ben ik eindelijk begonnen met dit project.

De reflectiesensor

[TCRT5000]

De sensor, een TCRT5000, is niet meer dan een stukje plastic met daarin een infrarood-LED en een infrarood-phototransistor. De werking is simpel maar geniaal: de LED brandt met een constante lichtsterkte, en de phototransistor meet hoeveel IR-licht er, na weerkaatsing, terugkomt.

[Aansluitschema]

Een zware weerstand fungeert als pull up, en zorgt ervoor dat als de transistor geen IR-licht ontvangt en dus niks doorlaat, het signaal hoog is. Wanneer er IR-licht op de phototransistor valt, gaat er stroom lopen en trekt ie de spanning naar de aarde.

Tussen de weerstand en de transistor is het voltage in vergelijking tot de aarde ergens tussen de 0 en Vcc: laag bij iets dat goed reflecteert, hoog bij duisternis.

Eerste poging

De eerste poging was meteen redelijk succesvol. Ik twijfelde of ik de weerstandwaarden wel goed uitrekende, dus ik heb ze overgenomen van een andere TCRT5000-gebruiker die ook een pagina over z'n projectje had gemaakt: 1 kΩ en 470 Ω. Overigens is dat project precies hetzelfde als mijn project: het uitlezen van de draaischijf van een ouderwetse kWh-meter. Tsjonge, bedenk je zelf eens iets, is het al honderd keer door andere mensen bedacht en uitgevoerd. Maar goed, dat gaf wel weer extra vertrouwen in dat het zou moeten gaan lukken.

Ik monteerde de sensor op een stukje soldeerbord samen met de twee weerstandjes en sloot de meetdraad aan op een analoge pin van een Arduino Nano v3. In principe zou het moeten werken met elke microcontroller, maar de Arduino is wel erg prettig omdat het een kant-en-klaar bordje is. Thuisgekomen van RevSpace plakte ik het ding op de kWh-meter, en zowaar, het gaf iets hogere waarden bij het zwarte stukje van de draaischijf, dan bij de rest van de omtrek!

Snel wat code geschreven om hoge waardes te zien als puls, die door te geven via USB-serieel aan mijn OpenWRT-router, en die grafieken laten maken van mijn stroomgebruik. Eureka!

Maar er zaten duidelijke meetfouten in. Na het einde van het stukje zwart zit er nog een vlekje zwart, en ik had al wat tijdgebaseerde debouncing tegoevoegd, maar er kwam toch steeds een fout signaal tussendoor.

Het verschil in gemeten reflectie tussen de grijze delen van de draaischijf en het zwarte stukje was maar zo'n 3%. De ruis tussendoor bleef meestal bij circa 1% maar schoot af en toe zelfs naar de 5% en dus ruim voorbij de drempelwaarde. Tja.

Tweede poging

[Versie twee]

Nadat op RevSpace hansg me had uitgelegd dat ik toch beter andere weerstanden kon gebruiken en ik 2 kΩ en 100 Ω had verwerkt, kreeg ik een veel duidelijker signaal terug, maar ook veel meer ruis. De software voor de Arduino paste ik aan om voortaan niet de rauwe waarde te gebruiken, maar om de som van 40 metingen te zien als één, en bovendien dat niet te vergelijken met handmatig ingevoerde waarden, maar met het gemiddelde van de afgelopen 250 metingen. Ik was het namelijk zat om bij elke poging opnieuw die waarden te moeten bepalen.

De tweede poging was op zich heel goed qua meting. De onterechte piekjes waren weg en qua code zat alles nu wel goed. Maar ik was nog niet tevreden. Het sensortje zat met z'n soldeerbordje (met hotglue eromheen) met elastiek en ducttape op de kWh-meter en ik wilde eigenlijk wel een schermpje erbij met het huidige verbruik.

Derde poging

[Versie drie]

Als schermpje zocht ik een mooi display dat minstens 4 cijfers zou kunnen weergeven. Liefst niet iets dat meteen heel veel draadjes naar de arduino nodig heeft, maar iets met ingebouwde intelligentie. Ik vond als goedkope oplossing een 8-cijferige displaymodule die me ook meteen 8 ledjes en 8 knopjes gaf, sku 81873 bij DX. Daar had ik in eerste instantie geen doel voor, maar al snel gebruikte ik de ledjes om de afwijking t.o.v. het achtergrondsignaal aan te geven en de knopjes voor configuratie, zodat ik helemaal niet meer afhankelijk zou zijn van handmatig ingeprogrammeerde waarden.

Nu heb ik het soldeerbordje wat headers gegeven om de Arduino Nano v3 in te kunnen prikken; dat scheelt weer een lelijk draadje en maakt er een mooi geheel van. Bovendien heb ik deze keer niet hotglue gebruikt om een quasi-regelmatig oppervlak te krijgen, maar een stukje plastic met daarin een gat, om een echt regelmatig oppervlak te krijgen. Daardoor kan ik het met dubbelzijdig montagetape vastzetten zodat de lelijke elastieken en ducttape ook niet meer nodig zijn.

De ene kWh-meter is de andere niet

[Meter bij broer]

Toen ik zo'n dingetje ook voor m'n broer had gemaakt en we het op zijn meter monteerden, bleek de ene meter de andere nog niet te zijn. Zijn kWh-meter, uit 1992, heeft een spiegelgladde draaischijf, terwijl die van mij een kartelrand heeft. Het resultaat is dat het ding zo goed reflecteert dat elk onregelmatigheidje al opgemerkt wordt, en de gestanste schijf heeft nogal wat kleine beschadiginkjes rondom. Mijn kWh-meter-meter reageert bij 5% afwijking ten opzichte van de standaardweerspiegeling, en komt in de praktijk tot ongeveer 8 à 10, maar bij m'n broer is het glimmende zo glimmend dat het zwarte een bijna twee keer zo hoge meetwaarde oplevert als de rest van de schijf. Enfin, uiteindelijk staat bij hem de threshold niet op 5% maar op 80%. Bovendien draait zijn schijf 480 keer per kWh, in plaats van de 375 bij mij. Dit was meteen een goeie test voor de configureerbaarheid: deze wijzigingen zijn gemaakt met de knopjes op de displaymodule; er was geen computer bij nodig!

[Meter bij Evert-Jelle] RevSpace-deelnemer Evert-Jelle heeft ook een kWh-meter-meter gemaakt, gebaseerd op dezelfde hard- en software. Zijn meter (bouwjaar 1971!) heeft een draaischijf met gekartelde rand; 6% bleek de ideale drempelinstelling te zijn. De resolutie is wat hoger, met wel 600 omwentelingen per kWh. Dat betekent dat ie zelfs bij laag verbruik nog regelmatig het zwarte vlakje voorbij krijgt. Handig, want zo krijg je meer detail in je grafiek. Overigens heeft deze meter ook een geel vlakje; dat bleek geen probleem.

Software

[Stukje arduino-code]

Mijn software voor de Arduino staat, net als mijn scriptjes voor rrdtool, op GitHub, en is vrij te gebruiken. Als je vragen hebt of naar aanleiding van deze pagina ook zo'n project begint, laat het me dan even weten per e-mail.

https://github.com/Juerd/kWh/

En wat levert dat nou op?

Grafiekjes, zoals deze:

[Grafiekje]

Het terugkerende patroon wordt veroorzaakt door m'n koelkast, en de rode pieken zijn van respectievelijk de friteuse, nogmaals de friteuse, en de vaatwasser. Het plateau links, tijdens de eerste friteuse-run, werd veroorzaakt door de TV. De blauwe achtergrond betekent dat dit in het weekend gemaakt is; tijdens daltarief is de achtergrond blauw, bij piektarief grijs.

Dit is een grafiek van 6 uur, maar ik maak ook grafieken van 1 dag, 7 dagen, 30 dagen en een heel jaar. Zo kan ik mooi in de gaten houden of ik wel zuinig blijf.

Dit is geen slimme meter!

Hoewel ik het natuurlijk best leuk vind als iemand mijn metertje slim noemt, wil ik toch even aangeven dat het iets anders is dan de "slimme meter". Dat is een kWh-meter die door het energiebedrijf wordt geinstalleerd en die automatisch de meterstanden en het verbruik doorgeeft aan de stroomleverancier. Je kunt vervolgens bij de gratie van de leverancier via hun website kijken wat je gebruik was. Er is een groot praktisch verschil, namelijk de nauwkeurigheid van de informatie. Details zoals ik op mijn grafieken zie, zul je in het algemeen bij een "slimme meter" niet terugzien, alleen de trend.

SLIMME METERS - MIJN BROERTJE GAAT LANGER DOUCHEN IN DE HOOP DAT DE CONTROLEURS DENKEN DAT HIJ EEN VRIENDINNETJE HEEFT - Loesje

Maar het belangrijkste verschil is dat je met de slimme meter ineens een deel van je privacy opgeeft. Wie toegang heeft tot je stroomverbruik-informatie kan na wat analyse precies zien wanneer je thuis bent, hoe je dagelijkse routine eruit ziet, of je gasten hebt, etcetera. Ik bepaal met mijn kWh-meter-meter en de bijbehorende grafieken zélf of ik die informatie bekend wil maken aan anderen, maar met een "slimme meter" gebeurt het gewoon. En dan moet je maar hopen dat de informatie door het energiebedrijf goed beschermd is tegen ongeoorloofd gebruik.

Dan heb ik toch echt liever mijn systeempje waarbij ik alle gegevens zelf beheer en dus zelf kan bepalen hoeveel detail er in mijn overzichten zit, en wie 't allemaal mag zien.

Zelf maken

De onderdelen:

Het gereedschap:

Zo, en de rest mag je zelf uitvinden. De Arduino-pinnen en zo staan in de software genoemd.

Uiteraard kun je op allerlei fronten afwijken. Zo werkt het uiteraard ook prima met andere Arduino's of heel andere microcontroller-bordjes, kun je een ander soort sensor of display gebruiken (of helemaal geen display), etc. etc. Heb je na het lezen van deze pagina nog helemaal geen idee wat je moet doen, dan mis je blijkbaar de basiskennis die je hiervoor nodig hebt, en kun je er maar beter niet aan beginnen... :)

Succes!