ESP32-gebaseerde Energiemeter: Een Uitgebreide Gids
Ontwikkeling, Integratie en Monitoring van een Slim Energie Meetsysteem
Introductie en Projectdoelen
Dit document beschrijft de ontwikkeling van een energiemeter gebaseerd op de Espressif ESP32 microcontroller, met als doel het observeren van energieverbruik in real-time, met nadruk op veiligheid, betaalbaarheid en gebruiksgemak. Het project evolueerde door verschillende updates, beginnend met een prototype en eindigend met een geïntegreerd systeem dat communiceert via MQTT en beheerd wordt door Home Assistant.
De initiële doelstellingen omvatten het creëren van een betrouwbaar systeem voor nauwkeurige energiemeting in huis of werkplaats, het volgen van stroomverbruik in real-time voor efficiënter energiegebruik, en het realiseren van een compact ontwerp (uiteindelijk 79.5x79.5 mm) dat in een groepenkast past.
Hardware Ontwikkeling en Componentkeuze
Microcontroller Keuze
De keuze viel op de Espressif ESP32-microcontroller vanwege zijn flexibiliteit, kosteneffectiviteit, brede sensorcompatibiliteit en sterke community-ondersteuning. Latere iteraties van het project maakten gebruik van de ESP32-S3, die verbeterde verwerkingskracht, geheugen en beveiligingsfuncties biedt.
Energiemeting IC
De Microchip ATM90E32AS, een meerfasig energiemonitoring-IC, vormt het hart van de energiemeting. Dit IC meet de enkelfasige of driefasige spanning van het lichtnet en gebruikt stroomtransformatoren (CT's) om de stroom veilig te meten.
Stroommeting
Voor stroommeting worden YHDC SCT013 split-core stroomtransformatoren gebruikt, aangesloten via audio jack-connectoren of printkroonstenen. Deze zijn voordelig, gebruiksvriendelijk en vereisen geen onderbreking van de stroomkabels.
Voeding en Isolatie
Veiligheid is een cruciaal aspect. Aanvankelijk werden Hi-Link HLK-5M05 modules gebruikt voor de voeding. Latere versies schakelden over op een 220V/12V step-down transformator voor de spanningsbemonstering en voeding, wat zorgt voor galvanische scheiding. De ESP32-microcontroller wordt geïsoleerd van de netspanning met behulp van componenten zoals de ADuM3151 SPIsolator voor veilige communicatie.
De voeding wordt gestabiliseerd door AMS1117-3.3 spanningsregelaars of efficiëntere buck-converters zoals de AP63203WU-7. Zekeringen (F1) en metaaloxide-varistoren (MOV's) bieden bescherming tegen overstroom en spanningspieken.
PCB Ontwerp en Optimalisatie
Het PCB-ontwerp evolueerde van een prototype van 100x100 mm naar een geoptimaliseerde versie van 79.5x79.5 mm. Belangrijke overwegingen waren:
- Naleving van elektrische veiligheidsnormen (IPC-2221), inclusief voldoende kruip- en onderlinge afstanden.
- Zorgvuldige berekening van spoorbreedtes voor AC-spanningslijnen.
- Gebruik van een degelijk aardvlak voor integriteit.
- Optimalisatie van differentiële paren voor signaalintegriteit en minimalisatie van elektromagnetische interferentie.
- Plaatsing van componenten zoals USB-C en de ESP32-S3 module uit de buurt van AC-spanningvoerende delen.
- Integratie van ontkoppelings- en stabilisatiecondensatoren.
De productie van de printplaten werd uitbesteed aan JLC PCB vanwege de balans tussen kosten en betrouwbaarheid.
Elektrische Veiligheid en Kalibratie
Het werken met netspanning vereist de hoogste prioriteit voor veiligheid. Het project benadrukt dat werkzaamheden in de meterkast alleen mogen worden uitgevoerd door gekwalificeerde elektriciens, en dat de stroom altijd volledig moet worden uitgeschakeld voor installatie. De transformator-gebaseerde voeding en isolatiecomponenten zijn cruciaal voor deze veiligheid.
Nauwkeurige metingen vereisen kalibratie. Dit omvat het aanpassen van de versterkingsinstellingen voor zowel spannings- als stroommetingen. De formule voor het aanpassen van de gain is: new gain = (your reading / ESPHome reading) * existing gain
. Kalibratie wordt uitgevoerd door de metingen van de energiemeter te vergelijken met een betrouwbare multimeter (bv. UT201+).
Integratie met ESPHome en Home Assistant
Het project integreert naadloos met Home Assistant via ESPHome. Na het installeren van de ESPHome add-on in Home Assistant, wordt een nieuw project aangemaakt. De YAML-configuratie voor de ESP32-S3 wordt aangepast om de energiemeter te definiëren, inclusief sensoren voor spanning, stroom, en vermogen. Deze configuratie wordt draadloos geflasht naar de ESP32-S3.
De energiemetergegevens worden vervolgens zichtbaar in het Home Assistant-dashboard, waar ze kunnen worden georganiseerd, gevisualiseerd met grafieken, en gebruikt voor automatisering.
MQTT Communicatie voor Real-time Monitoring
Een belangrijke stap in de ontwikkeling is het gebruik van MQTT voor real-time energiemonitoring. Aangepaste firmware, geschreven in de Arduino IDE, maakt gebruik van de ATM90E32-bibliotheek en de MQTTPubSubClient-bibliotheek om energiegegevens te publiceren naar een MQTT-broker. Deze broker, vaak geïnstalleerd als een add-on in Home Assistant (bv. Mosquitto), fungeert als een centrale hub voor berichtuitwisseling.
De firmware verzamelt gegevens zoals lijnspanning, stroom, vermogen, en stuurt deze via specifieke MQTT-topics (bv. esp32energymeter/lineCurrentA
) naar Home Assistant. Dit maakt gedetailleerde monitoring en analyse mogelijk, en opent de weg voor toekomstige AI/ML-functionaliteiten om energieverbruikspatronen te voorspellen en apparaten te identificeren.
Om de gegevens te visualiseren in Home Assistant, worden MQTT-sensoren gedefinieerd in het configuration.yaml
-bestand, waarbij de state_topic
overeenkomt met de gepubliceerde MQTT-topics.
Toekomstplannen
Toekomstige ontwikkelingen omvatten de integratie van geavanceerde AI/ML-functionaliteiten voor het voorspellen van energieverbruikspatronen en het identificeren van apparaten op basis van hun belastingsprofiel. Verdere optimalisatie van de firmware en integratie met andere slimme apparaten en platforms staan ook op de planning.