Arduino energiemeter: Hardware en Setup; What does this button do?

Wie houdt er van slagroomtaart? Met zo’n geheel ongerelateerde vraag open ik hierbij deze blogpost, ’t is altijd lastig een goed begin te kiezen :P. In een eerdere blogpost heb ik al gezegd dat ik uitgebreider in zou gaan op de Arduino Yún die ik heb waarmee ik het stroom energieverbruik wil gaan meten. Dit is het eerste deel van een vierdelig en dus stuk uitgebreidere blogpost. Een overzicht van wat is en wat komen gaat:

  • Arduino energiemeter: Hardware en Setup; What does this button do?
  • Arduino energiemeter: Arduino software; Do you even I/O?
  • Arduino energiemeter: Python software; The snake that stores the data.
  • Arduino energiemeter: Visualisatie; Graphics and Charts baby!

Het verhaal is met opzet verdeeld in vier verschillende stukken. Als schrijver is het makkelijker, omdat ik nu niet in eens een heel groot stuk tekst hoef te gaan tikken. Als lezer is het fijner, omdat je nu niet in eens een heel groot stuk tekst hoeft te lezen.

Outline

In dit blog ga ik beschrijven wat ik tot nu toe gedaan heb om mijn Arduino aan te sluiten en te testen of mijn configuratie werkt om de hoeveelheid verbruikte energie (tot nu toe elektrisch) te meten. De manier waarop is door (licht)pulsen, afkomstig van de digitale stroommeter in de meterkast, op te vangen en op de Arduino kant het aantal pulsen te tellen. Op deze manier, met een klein beetje rekenwerk wat in een later artikel aan bod komt, kan je niet alleen je totaalverbruik bijhouden maar ook zien wat je op dat moment verbruikt (bij benadering).

Maar waarom zou je dit soort informatie nou bij willen houden? Wat heeft het voor nut? Ik heb er een simpel antwoord op: meten is weten. Ik wil weten wat ik verbruik én wanneer ik dat verbruik. Een totaalverbruik is leuk maar het zegt niks meer dan hoeveel je verbruikt hebt, obviously. En ja, er zijn slimme meters. En ja, er bestaan producten die dit soort zaken voor je doen. Maar als echte Tweaker en IT’er ga ik zelf aan de slag!

The Ingredients

Ik vind het altijd wel netjes om precies aan te geven welke resources je gebruikt voor een project. In mijn geval maak ik gebruik van:

  1. Een Arduino Yún.
  2. Een 32GB Micro-SD EVO van Samsung.
  3. Een 3 meter lange micro-usb kabel + 1A 5V adapter.
  4. Een gerichte lichtsensor zonder type en merk (chinese makelaardij, uiteraard).
  5. Wat DuPont kabels male-female om de boel aan te sluiten, gewoon op eBay intypen als je ze nodig hebt ;).
  6. Ducttape & vinyltape!
  7. Karton, waar papier allemaal niet goed voor is.
  8. De Arduino IDE BETA 1.5.8, non-beta ondersteund de Yún niet.
  9. Arduino.cc voor referentie materiaal.
  10. Een github repository waarop ik code plaats, met de disclaimer dat de geplaatste code niet af is en ik niet verantwoordelijk ben voor whatever je er mee doet.
  11. En niet te vergeten, een zaklamp – een LED zaklampje om precies te zijn – voor “professioneel” getest.

De Arduino Yún is een bord met daarop twee processoren: een Atmega32u4 die de Arduino code draait, en een Atheros AR9331 (MIPS) waarop een linux (OpenWRT) omgeving draait. Dit stelt je als programmeur in staat om I/O af te handelen op de  Arduino manier en complexere taken af te handelen aan de linux kant. De Atmega32u4 en de AR9331 communiceren met elkaar via een interne seriële bus. Arduino heeft hiervoor een library genaamd Bridge, maar daarover later meer.

De lichtsensor in de eerste afbeelding is hoe je hem ontvangt. Het is een langwerpig bordje met op het uiteinde een LED die direct licht meet. Op het bord zit ook nog een potentiometer om de gevoeligheid van de digitale output aan te geven. De gerichte lichtsensor maakt het leven voor mij een stuk makkelijker. Het is namelijk zo dat waar dit apparaatje hangt een soort van cv kast / stofzuiger kast is. De deur van de kast gaat dus soms – maar misschien niet vaak genoeg – open om de stofzuiger eruit te halen en weer terug te zetten. Had ik een normale lichtsensor genomen, dan had deze hoogstwaarschijnlijk aangegeven dat er voldaan is aan een pulse elke keer dat de deur open gaat. Leuk hoor, al die extra spookwattjes omdat iemand de deur open doet, maar die hou ik liever buiten de deur ^^.

Ook is het handiger om twee lichtsensoren te hebben in plaats van één. Een van de sensoren gebruik je dan om te testen, de ander blijft op de digitale meter geplakt zitten. Anders moet je elke keer in de weer met ducttape en dat geeft dan weer zo’n plakzooitje.

The Setup

Arduino-Yun-met-lichtsensor

Dit zou je de testopstelling kunnen noemen. De lichtsensor heeft vier pinnen, van links naar rechts: analoog out, digital out, ground, en Vcc. Omdat ik geen specificaties van de sensor heb, leek het me verstandig eerst de Vcc maar eens met 3.3V uitgang te verbinden, en niet gelijk met de 5V uitgang. Het feit dat je op bovenstaande afbeelding een rood lampje ziet branden geeft aan dat 3.3V genoeg is :).

De digitale output van de lichtsensor gebruik is aangesloten op de interrupt 0 van de Arduino. Elke keer als er een pulse  gemeten wordt, vuurt de sensor een interrupt af via pin 3 waardoor de pulse bij een totaal aantal opgeteld wordt.

Om het bord te beschermen heb ik een stuk karton uitgeknipt en met kabelbinders vastgemaakt aan de Arduino. Dit om te voorkomen dat pinnetjes aan de onderkant van het bord per abuis via metaal kortsluiting veroorzaken. Ook beschermt het karton op deze manier de micro-sd kaart.

Arduino-aangesloten-in-meterkast

De lichtsensor heb ik ook iets moeten aanpassen om ervoor te zorgen dat ik deze gemakkelijk vast kon plakken op de digitale meter. Ten eerste heb ik de LED zo gedraaid dat deze nu haaks op de printplaat staat. Zo heb ik meer houvast om de printplaat vast te kunnen tapen. Op de printplaat zelf heb ik met karton en vinyltape wat opvulling gemaakt zodat er geen ruimte zou zitten tussen digitale stroommeter en het bord. Op deze manier was het bevestigen van de lichtsensor in de meterkast een fluitje van een cent en een kwestie van wat ducttape bij de hand hebben.

Karton-bekleding-en-aangepaste-sensor-met-vergelijking

En dan ziet het geheel er in de meterkast, aangesloten en wel, zo uit.

Ophanging-van-lichtsensor-op-pulse-output

In mijn volgende post ga ik in op de software die de pulsen opvangt en ermee rekent om het huidige gebruik weer te geven. Je kan deze software nu al bekijken via mijn github repository, maar zoals ik al zei het is nog niet af en onderhevig aan constante veranderingen.

Tot dan, cheerio!

Kleine update en preview

WattHourUsage

Het stroomverbruik van afgelopen nacht