ESP32-gebaseerde energiemeter, project-update #3: integratie en test met Home Assistant
op
In de vorige aflevering richtten we ons op het elektronische ontwerp en de print van de ESP32 Energy Meter, met verbeteringen in modulariteit en veiligheidsfuncties. Voordat we naar de volgende project-update gaan, eerst een kort overzicht.
In de meest recente incarnatie van het ESP32 Energy Meter-project hebben we een upgrade uitgevoerd naar de ESP32-S3 microcontroller, met meer rekenkracht en een grotere functionaliteit. In het nieuwe ontwerp is de print afgeslankt en is een transformatorgebaseerd voedingssysteem opgenomen, dat gebruik maakt van een 230V/12V-transformator voor het bemonsteren van de spanning en de werking van het systeem. Dit verbetert de veiligheid aanzienlijk terwijl de flexibiliteit voor zowel één- als driefase-installaties behouden blijft.
![Assembled ESP32 Energy Meter with its OLED display](https://cdn.xingosoftware.com/elektor/images/fetch/dpr_1,w_720/https%3A%2F%2Fwww.elektormagazine.nl%2Fassets%2Fupload%2Fimages%2F17%2F240244-012-94-original-img-0521jpg.png)
Andere verbeteringen waren de integratie van een efficiëntere AP63203WU-7 buck-converter, de modulaire print, kalibratie van de stroomtrafo-samplingschakeling en nog veel meer. Dit optimaliseert niet alleen de prestaties en functionaliteit van de energiemeter, maar vermindert ook de kosten en de omvang.
In dit artikel bespreken we de stappen die zijn genomen om deze energiemeter aan de praat te krijgen en het traject van de labtafel naar de meterkast. Verder zullen we ook bespreken hoe hij wordt ingesteld en gekalibreerd, en ten slotte hoe hij wordt geïntegreerd met Home Assistant en ESP Home om de verzamelde gegevens van de energiemeter te tonen en te controleren. In figuur 1 ziet u het ESP32 Energy Meter-project in actie, ondergebracht in een 3D-geprinte behuizing met een OLED-display. De afbeelding toont live-statusindicatoren die continu het realtime-stroomverbruik bijhouden en weergeven.
Bouw
De nieuwe print was compacter en eenvoudiger te solderen en de layout bood voldoende ruimte voor elke component om de montage te vergemakkelijken. Om de nabouw van het project en eventuele aanpassingen door zowel enthousiastelingen als professionals te vergemakkelijken, zijn de volledige onderdelenlijst (BOM) in Mouser-formaat en de productiebestanden beschikbaar op de GitHub-repository van Elektor Lab.
Voor de aansluitingen voor de spannings- en stroombemonstering werden printkroonstenen van CUI Devices gebruikt. De kwaliteit van deze kroonstenen is veel beter dan van de goedkope blauwe exemplaren die je op de meeste sensormodules ziet. Omdat we te maken hebben met wisselspanningen en energiemeting, is het van vitaal belang om veilige en betrouwbare aansluitingen te hebben.
![PCB of the fully assembled Meter](https://cdn.xingosoftware.com/elektor/images/fetch/dpr_1,w_629,h_400,c_fit/https%3A%2F%2Fwww.elektormagazine.nl%2Fassets%2Fupload%2Fimages%2F42%2F20240711204419_esp-meter-up3-fig2.png)
Ruisonderdrukking is een kritisch aspect van het printontwerp, dat wordt aangepakt door zowel elektrolytische als keramische condensatoren te integreren rond de ATM90E32S-energiemeetchip. Deze opstelling helpt bij het uitfilteren van zowel laag- als hoogfrequente ruis, wat zorgt voor een nauwkeurigere en stabielere energiemeting. De print is afgebeeld in figuur 2.
Zoals eerder opgemerkt, hebben we besloten om een stepdown-transformator te gebruiken voor de spanningsbemonstering en als hoofdbron voor de voeding van het hele systeem. Zo’n transformator is goedkoop en gemakkelijk te vinden, maar de meeste van deze transformatoren nemen veel ruimte in beslag wanneer ze gebruikt worden in een op maat gemaakte behuizing, zoals te zien in figuur 3. Het is daarom het beste om hier DIN-rail beltransformatoren te gebruiken om de opstelling netter en veiliger te maken; dergelijke transformatoren zijn gemakkelijk online te vinden. Bovendien hangt de nauwkeurigheid van spanningsmetingen af van de karakteristieken van de transformatoren, waaronder de nauwkeurigheid van de spanningsverhouding, de faseverschuiving en lineariteit.
![Step-down transformer setup](https://cdn.xingosoftware.com/elektor/images/fetch/dpr_1,w_594,h_726,c_fit/https%3A%2F%2Fwww.elektormagazine.nl%2Fassets%2Fupload%2Fimages%2F42%2F20240711204544_esp-meter-up3-fig3.png)
Het is u misschien opgevallen dat er in de foto’s maar één transformator aan de energiemeter is bevestigd. De energiemeter is geconfigureerd voor gebruik in éénfase-modus door jumper JP8 op de achterkant van de print te overbruggen (kort te sluiten), zoals te zien in figuur 4. Om de energiemeter in driefase-modus te gebruiken of om de spanning van elke fase in een driefasensysteem te bemonsteren met behulp van drie stepdown-transformatoren, moet u de primaire wikkelingen van de drie transformatoren verbinden met de respectieve fasen (L1, L2, L3). Aan de secundaire zijde sluit u een uiteinde van de wikkeling van elke transformator aan op een gemeenschappelijk neutraal punt, waardoor u een sterschakeling (Y) vormt. De vrije uiteinden van de secundaire wikkelingen (V1, V2, V3) leveren dan de spanningsuitgangen (UA, UB en UC) op de print voor elke fase. Belangrijke overwegingen zijn dat de transformatoren de juiste nominale waarde hebben voor de spanning en stroom van het systeem, dat de primaire en secundaire zijden om veiligheidsredenen strikt geïsoleerd blijven en dat er een stabiele en goed gebalanceerde nulverbinding is om meetonnauwkeurigheden te voorkomen.
![Single-phase jumper configuration on the PCB](https://cdn.xingosoftware.com/elektor/images/fetch/dpr_1,w_580,h_452,c_fit/https%3A%2F%2Fwww.elektormagazine.nl%2Fassets%2Fupload%2Fimages%2F42%2F20240711204817_esp-meter-up3-fig4.png)
Installeren met ESPHome en Home Assistant
Als onderdeel van het ontwikkelingsconcept wordt een specifieke firmware geschreven om de mogelijkheden van de energiemeetchip en de geavanceerde AI-functies van de ESP32-S3 te benutten. Hoewel de ontwikkeling van dergelijke op maat gemaakte firmware veel tijd vergt en nog steeds aan de gang is, beperkt dit de bruikbaarheid van de energiemeter niet. Het apparaat is volledig functioneel met bestaande platforms zoals Home Assistant, wat een directe oplossing biedt voor energiemonitoring. Daarom ligt in dit artikel de focus op de integratie van de ESP32-energiemeter met Home Assistant en ESPHome. In deze paragrafen leiden we u door het installeren van de energiemeter in de Home Assistant-omgeving waarbij de volledige functionaliteit beschikbaar komt.
Om de ESP32 Energy Meter te installeren met de ESPHome-firmware en te integreren in Home Assistant, moet u eerst Home Assistant installeren. (Een uitgebreide handleiding is te vinden in een artikel van mijn collega Clemens Valens.) Integreer daarna ESPHome vanuit de Add-on Store; maak vervolgens een nieuw project aan in ESPHome voor uw ESP32-apparaat. Dit genereert automatisch een basis-YAML-configuratiebestand (zo’n YAML-bestand specificeert een apart ESPHome-project met alle gebruikte sensoren en vele andere opties). U moet dit standaardbestand downloaden voordat u de volgende stappen uitvoert.
Sluit de ESP32 aan op uw computer en selecteer de juiste COM-poort voor de ESP32-S3. Klik in het ESPHome-dashboard op Install en kies het .bin bestand om de firmware te flashen. Zodra de firmware succesvol is geladeb en uw ESP32 Energy Meter wordt herkend door Home Assistant, kunt u de initiële YAML-configuratie bewerken. Open hiervoor het ESPHome-dashboard in Home Assistant, zoek het apparaat en klik op de Edit-optie op de kaart van de energiemeter. Vervang de bestaande configuratie door de YAML-inhoud in de GitHub-repository [2]. Zorg ervoor dat u uw API-, OTA- en WiFi-referenties correct configureert in deze nieuwe YAML-setup.
Installeer de nieuwe configuratie draadloos op uw ESP32 Energy Meter. Daarna is het apparaat actief en verbonden. Om de gegevens van de energiemeter weer te geven op het dashboard van uw Home Assistant, moet u het ESPHome-apparaat toewijzen aan een specifiek gebied in Home Assistant. Dit helpt bij het organiseren van het dashboard door apparaten te groeperen op basis van hun fysieke of logische locatie in huis. Om een idee te krijgen van wat mogelijk is, verwijzen we naar figuur 5, waar de gegevens van de energiemeter op het Home Assistant-dashboard zijn weergegeven.
![Home Assistant dashboard displaying real-time energy data from the ESP32 Energy Meter](https://cdn.xingosoftware.com/elektor/images/fetch/dpr_1,w_378,h_748,c_fit/https%3A%2F%2Fwww.elektormagazine.nl%2Fassets%2Fupload%2Fimages%2F42%2F20240711204941_esp-meter-up3-fig5.png)
De integratie van de ESP32 energiemeter met Home Assistant vereenvoudigt niet alleen het monitoren van energieverbruik, maar ontsluit ook een reeks krachtige functies van het platform. Home Assistant biedt een intuïtieve interface voor realtime-datavisualisatie, automatische besturing en naadloze integratie met andere slimme apparaten in uw huis. Deze integratie maakt het mogelijk om gedetailleerde historische grafieken en analyses te maken binnen Home Assistant, waardoor u een goed inzicht krijgt in energieverbruikpatronen in de loop van de tijd; figuur 6 toont een voorbeeld. Aan de hand daarvan kunnen gebruikers weloverwogen beslissingen nemen over hun energieverbruik, potentiële besparingen identificeren en de energie-efficiëntie van het huis optimaliseren.
![Detailed history graphs of energy consumption in Home Assistant.](https://cdn.xingosoftware.com/elektor/images/fetch/dpr_1,w_600,h_294,c_fit/https%3A%2F%2Fwww.elektormagazine.nl%2Fassets%2Fupload%2Fimages%2F42%2F20240711205113_esp-meter-up3-fig6.png)
Door het hierboven beschreven installatieproces te volgen, kunnen gebruikers ten volle profiteren van deze mogelijkheden, waardoor de ESP32 Energy Meter een centraal onderdeel wordt van hun smart home-ecosysteem. Deze integratie verbetert niet alleen de functionaliteit van de energiemeter, maar verrijkt ook de algehele smart home-ervaring met uitgebreide energiemonitoring en beheermogelijkheden.
YAML-configuratie
De meegeleverde YAML-configuratie stelt de ESP32 Energy Meter in met ESPHome, waardoor essentiële elektrische parameters zoals spanning, stroom en vermogen voor alle drie fasen kunnen worden bewaakt. Het maakt gebruik van de mogelijkheden van de ATM90E32-sensor, met gedetailleerde definities voor SPI-communicatie en individuele sensoren voor elke fase. Deze opstelling meet niet alleen het totale verbruik, maar berekent dit ook, met een dagteller voor kWh en een OLED-display voor realtime-visualisatie van de gegevens. Deze configuraties zijn gemaakt volgens de instructies op de ESPHome-pagina voor de ATM90E32-sensor.
Om de nauwkeurigheid van de gegevens die de ESP32 Energy Meter rapporteert te garanderen, is kalibratie een cruciale stap. De details om de versterkingsinstellingen voor stroomtransformatoren en spanningsingangen aan te passen wordt in de volgende paragrafen beschreven.
Testen en kalibreren
De testopstelling gebruikte een haardroger met verschillende snelheden en warmtestanden als belasting binnen een bereik van 0,7 A tot 8 A. Het netsnoer van een stekkerdoos werd gestript om de transformatoren met deelbare kern op de stroomvoerende of neutrale draad te kunnen plaatsen, zodat directe controle onder verschillende omstandigheden mogelijk was (figuur 7).
![Setup for testing and calibrating the ESP32 Energy Meter using a variable load.](https://cdn.xingosoftware.com/elektor/images/fetch/dpr_1,w_556,h_406,c_fit/https%3A%2F%2Fwww.elektormagazine.nl%2Fassets%2Fupload%2Fimages%2F42%2F20240711205511_esp-meter-up3-fig7.png)
Ik heb de stroom- en spanningskalibratie van de ESP32 Energy Meter uitgevoerd met mijn UT201+ multimeter. Deze biedt een resolutie van 0,001 A terwijl de nauwkeurigheid is gespecificeerd als ±4% +10 digits voor stroom en een resolutie van 0,001 V met een nauwkeurigheid van ±1% +5 digits voor spanning. Dit is nauwkeurig genoeg voor de meeste projecten, maar is iets minder nauwkeurig dan professionele meters.
![Clamp meter setup for calibration.](https://cdn.xingosoftware.com/elektor/images/fetch/dpr_1,w_472,h_749,c_fit/https%3A%2F%2Fwww.elektormagazine.nl%2Fassets%2Fupload%2Fimages%2F42%2F20240711205321_esp-meter-up3-fig8.png)
Tijdens de kalibratie zijn de stroomaflezingen vergeleken: de aflezing van de stroomtang was 1,692 A (zie figuur 8), terwijl de aflezingen berekend door de energiemeter na kalibratie 1,70...1,73 A aangaven, zoals te zien in figuur 9. Gezien de specificaties van de UT201+ en de SCT-013-000, een klasse 1 split core-transformator die een nauwkeurigheid binnen 1% van de werkelijke waarde garandeert, valt deze kleine afwijking binnen de verwachte foutmarge. Voor een nog grotere nauwkeurigheid kan echter een betere stroomtang worden gebruikt.
![Final calibration results](https://cdn.xingosoftware.com/elektor/images/fetch/dpr_1,w_450,h_959,c_fit/https%3A%2F%2Fwww.elektormagazine.nl%2Fassets%2Fupload%2Fimages%2F42%2F20240711205728_esp-meter-up3-fig9.png)
Om de nauwkeurigheid van de ESP32-energiemeter verder te verfijnen, werden aanpassingen gedaan aan de versterkingsinstellingen voor zowel spannings- als stroommetingen. Voor spanning werd de sensor gekalibreerd met de formule:
new gain_voltage = (your voltage reading / ESPHome voltage reading) * existing gain_voltage value
Hetzelfde geldt voor de stroom:
new gain_ct = (your current reading / ESPHome current reading) * existing gain_ct value
Deze nieuwe versterkingswaarden werden vervolgens bijgewerkt in het ESPHome YAML-configuratiebestand, gevolgd door het opnieuw compileren en laden van de firmware. Dit proces kan indien nodig worden herhaald voor een optimale nauwkeurigheid. Deze gekalibreerde waarden helpen bij het verfijnen van de metingen en zijn cruciaal voor nauwkeurige rapportage en analyse in elke energiemonitoringopstelling.
WAARSCHUWING: werkzaamheden in de meterkast brengen risico’s met zich mee, waaronder het gevaar van elektrische schokken of brand. Het is van vitaal belang dat u de stroom volledig uitschakelt voordat u met de installatie begint. In de meeste landen mag dit werk alleen worden uitgevoerd door een gekwalificeerde elektricien!
Installatie van de ESP32-meter in de meterkast
Het installeren van de ESP32-energiemeter in mijn meterkast bleek goed te doen, maar om zowel de veiligheid als de functionaliteit te garanderen moet daarbij op de kleinste details gelet worden. Ik begon met het selecteren van een groep met de kleinste stroombegrenzing. Deze keuze was belangrijk, omdat het een veiligheidsbuffer bood; de zekering zal dan bijtijds afschakelen in het geval van onverwachte pieken of transformatorstoringen en zo het systeem beschermen.
Het gebruik van stroomtransformatoren met een deelbare kern kwam vooral van pas vanwege hun eenvoudige installatie. Deze transformatoren kunnen snel op elke belasting worden geklemd, maar het was cruciaal om de stroomrichting correct te kiezen om nauwkeurige metingen te garanderen. Het is belangrijk op te merken dat als stroomrichting en stroomtransformator niet correct zijn uitgelijnd, er negatieve vermogenswaarden zullen verschijnen; dat duidt dan op een onjuiste installatie.
In figuur 10 ziet u de ESP32-energiemeter in actie, ingebouwd in de meterkast. Deze afbeelding toont de energiemeter met realtime stroom- en spanningsmetingen en de bijbehorende belasting in kilowatt, ter illustratie van de functionaliteit in een ‘echte’ situatie.
![Meter installed in a circuit breaker panel, monitoring real-time power consumption.](https://cdn.xingosoftware.com/elektor/images/fetch/dpr_1,w_675,h_339,c_fit/https%3A%2F%2Fwww.elektormagazine.nl%2Fassets%2Fupload%2Fimages%2F42%2F20240711205920_ESP-meter-up3-fig10.png)
De ontwikkeling gaat door
Hoewel de actuele softwareconfiguratie draait op ESPHome, zijn er ontwikkelingen gaande om de mogelijkheden van de ESP32-energiemeter uit te breiden. In de nabije toekomst willen we het project integreren met nieuwe firmware die speciaal is ontworpen om het volledige potentieel van de ESP32-S3 chip te benutten. Deze toekomstige firmware zal naar verwachting geavanceerde functies bevatten, zoals gedetailleerde energieanalyses en mogelijk baanbrekende AI/ML-functionaliteiten die energieverbruik-patronen kunnen voorspellen en verbruikers kunnen identificeren op basis van hun belastings-footprint.
Hoewel de kern van het ontwerp en de operationele aspecten van het project zijn voltooid, is de ontwikkeling van deze geavanceerde functies een complexe en tijdrovende onderneming. Ik ben enthousiast over de mogelijkheden en toegewijd aan het verleggen van de grenzen van wat deze energiemeter kan bereiken.
Het ESP32 Energy Meter-project is continu in ontwikkeling en voegt bij elke update meer functionaliteit toe. Leden van de community die geïnteresseerd zijn in de aankomende AI- en ML-functionaliteiten of die willen bijdragen aan de ontwikkeling, worden aangemoedigd om mee te doen. Samenwerking zal de voortgang versnellen en resulteren in een robuustere oplossing voor energiemonitoring met meer functies. Houd de vinger aan de pols voor verdere ontwikkelingen, want het project is erop gericht om deze veelzijdige tool voor energiebeheer te verfijnen en naar nieuwe hoogten te tillen.
Dit artikel verscheen oorspronkelijk in Elektor juli/augustus 2024 (240244). Bekijk de ESP32-gebaseerde energiemeterserie.
Discussie (0 opmerking(en))