Stap 11: De software voor de ESP8266 module - deel 4 "master functies"
Zoals eerder gezegd, zijn er 2 versies van de software.
De "originele" versie leest het stroomverbruik van het zonnepaneel monitoringsysteem en beslist wanneer overschakelen in- of uitschakelen een airco.
De "slave"-versie krijgt opdrachten van de "originele" versie.
De aanvullende basispagina functies:
1) macht consumptie waarde bijwerken
Voor het bijwerken van het stroomverbruik een timer wordt gebruikt om te activeren om de 60 seconden een verbinding met de monitor van de zonnepaneel in Setup:
getPowerTimer.attach(60, triggerGetPower);
Dit vraagt om de 60 seconden de interrupt routine triggerGetPower(). Zoals interrupt routines zijn moeten korte en andere functies niet te vertragen, is het niet mogelijk om de update direct starten vanuit hier. In plaats daarvan is de vlag powerUpdateTriggered ingesteld op true, die dat de loop functie vertelt dat een update nodig is. Zoals interrupt routines zijn moeten korte en andere functies niet te vertragen, is het niet mogelijk om de update direct starten vanuit hier. In plaats daarvan
In de loop
if (powerUpdateTriggered) {
Deze vlag wordt gecontroleerd en roept de getPowerVal().
getPowerVal() verbonden via een TCP-verbinding met het solar panelbeeldscherm en ontvangt de nieuwste macht consumptie waarde in een JSON-object. De waarde van de macht wordt opgeslagen in een matrix met een capaciteit van 10 waarden.
Als 10 waarden beschikbaar zijn dan is de functie checkPower() wordt aangeroepen om te beslissen of het nodig is om te schakelen van extra toestellen om te consumeren van buitensporige macht is.
Als meer dan 10 waarden zijn opgeslagen, de oudste waarde verwijderd en wordt de nieuwste waarde opgeslagen.
2) controleren stroom verbruik gemiddeld
In checkPower() wordt het gemiddelde van de laatste 10 vermogenswaarden gemaakt. Tijdens winderige en bewolkte dagen, kan de elektriciteitsproductie van de zonnepanelen snel springen van enkele Watts tot verschillende 100 watt. Met behulp van het gemiddelde van de laatste 10 waarden vermijdt over te schakelen op en af de airco elke minuut (die is niet goed voor de airco).
Afhankelijk van het resultaat en het huidige besturingselement worden lus status maatregelen genomen:
if control loop status is 0 (aircon is off) if excessive power is greater than 100 Watt switch on aircon in fan mode switch control loop status to 1 if control loop status is 1 (aircon is in fan mode) if excessive power is greater than 400 Watt switch aircon to cool mode (to consume more power) switch control loop status to 2 if consumed power is greater than 200 Watt (the consumption is higher than the production) switch off the aircon switch control loop status back to 0 if control loop status is 2 (aircon is in cool mode) if consumed power is greater than 400 Watt (the consumption is higher than the production) switch the aircon back to fan mode switch the control loop status back to 1
Deze controle-lus gebruikt slechts één airco om buitensporige macht verbruiken. In de broncode kunt u een ander besturingselement lus die gebruikmaakt van 2 aircons tot buitensporige macht verbruiken. Ik ben nog steeds het testen van deze lus en het is nog niet volledig functioneel.