Category: SlimmeMeter

Wemos D1 mini v2

De inverter blijkt niet meer nodig. Nu is alleen een weerstand nodig voor spanning op de RX poort. Inverter functie zit in de Arduino software. Wat niet werkt is de Wemos aansturen met de spanning van pin 1 en pin 6 van de slimme meter. Theoretisch zou die voldoende vermogen moeten hebben, maar hij komt niet verder dan een knipperende blauwe led.

Wemos D1 mini

De nieuwe mini met alleen nog een kabel. Afgewerkt met een krimpkous, zodat het geheel geïsoleerd is.

Update

Tweede poging nieuwe kabel voor de Wemos D1 Mini.

Nieuwe kabel

Eerste poging voor het vervangen van de print door een kabel. Met de Wemos D1 Mini is dat een stuk compacter.

Vervanging wifi

Na een jaar ging de ESP8266 kapot. Begin 2019 heb ik de Arduino vervangen door een Wemos D1. Deze is gebaseerd op de ESP8266 chip en heeft daarom wifi geïntegreerd. De oude wifi module heb ik eraf gesoldeerd.

Programma code

De benodigde code bestaat uit drie delen:

  • Een MySQL database
  • De Arduino code
  • De PHP pagina

De Arduino code genereert een url voor het aanroepen van de php pagina met alle meetwaardes als variabelen. Deze url wordt met een GET commando verstuurt naar de webserver. Daar zorgt de PHP code ervoor dat de ingelezen meetwaardes in de SQL database geplaatst worden.
Daarnaast wordt elke maand een archiveringsscript gedraaid dat alle data ouder dan twee maanden uit de SlimmeMeter tabel verplaatst naar de SlimmeMeterWeek tabel. Hierin wordt per uur nog maar één waarde opgenomen. Alle data ouder dan een jaar wordt uit SlimmeMeterWeek verplaatst naar SlimmeMeterMaand. Hierin wordt per dag nog maar één waarde opgenomen.

De gebruikte scripts staan in deze post

Componenten voor het uitlezen

Ik gebruik voor het uitlezen een Arduino Uno. Let op: met een Arduino Nano werkt het niet, omdat de ESP8266 teveel vermogen vraagt van de 3.3V poort. De slimme meter levert een geinverteerd signaal (0 is hoog en 1 is laag). Om dit voor de Arduino begrijpelijk te maken hebben we een weerstand en een condensator nodig. Verder is de Rx poort (pin 4) “zwevend”. Om hier een juiste spanning te krijgen is het nodig om de RTS poort (pin 1) en de Rx poort met een weerstand te verbinden.

Slimme Meter uitlezen met Arduino

Ik heb een slimme meter van het merk Landis & Gyr, type E350. Deze meters bieden de mogelijkheid om zelf je energieverbruik te monitoren. Daarom ben ik op zoek gegaan naar de mogelijkheden om deze meter zelf uit te lezen en de resultaten op te slaan in een database. Ik gebruik hiervoor een Arduino Uno en een virtuele Debian linux server met Apache, PHP5 en MySQL.

Het is vrij eenvoudig om deze slimme energiemeters uit te lezen via de aanwezige P1 poort. Elke 10 seconden genereert de meter een telegram dat er als volgt uitziet:

Elke 15 seconden schrijft de slimme meter een rapport uit op de P1 poort. Met een seriele kabel is dit rapport uit te lezen. Beperking hierbij is dat het seriele signaal geinverteerd is.
Een voorbeeld telegram (met opmerkingen) vind je hier
De kunst is nu om dit telegram om te vormen naar iets wat je in een database op kunt slaan.