ESP8266 WiFi kontrollerade aircon remote (11 / 15 steg)
Steg 11: Programvaran för modulen ESP8266 - del 4 "master funktioner"
Som sagt, finns det 2 versioner av programvaran.
Den "master" versionen läser energiförbrukningen från solpanelen övervakningssystem och avgör när du vill slå på eller av en aircon.
Den "slav" versionen tar emot kommandon från "master"-versionen.
De ytterligare master funktionerna:
1) uppdatera makt konsumtion värde
Om du vill uppdatera drivaförbrukningen en timer används för att utlösa var 60 sekunder en anslutning till solpanel monitorn i setup():
getPowerTimer.attach (60, triggerGetPower);
Detta kräver var 60 sekunder avbrott rutinmässiga triggerGetPower(). Som avbrott rutiner måste vara kort och inte försena andra funktioner, går det inte att starta uppdateringen direkt från här. I stället har flaggan powerUpdateTriggered angetts till true som som berättar funktionen loop() att en uppdatering är nödvändigt. Som avbrott rutiner måste vara kort och inte försena andra funktioner, går det inte att starta uppdateringen direkt från här. I stället
I loop()
om (powerUpdateTriggered) {
kontrollerar denna flagga och kallar getPowerVal().
getPowerVal() ansluts via en TCP-anslutning till solpanel bildskärmen och får de senaste makt konsumtion värde i JSON objekt. Power värdet lagras i en matris med en kapacitet på 10 värden.
Om 10 värden finns tillgängliga sedan anropas funktionen checkPower() för att avgöra om det är nödvändigt att koppla på extra apparater att konsumera övermakt.
Om mer än 10 värden lagras, det äldsta värdet ignoreras och nyaste värdet lagras.
2) kontrollera makt konsumtion genomsnittet
I checkPower() skapas medelvärdet av de sista 10 power. Blåsigt och molntäckt dagarna, kan makt produktion av solpaneler hoppa snabbt från några få watt till flera 100 watt. Med hjälp av genomsnittet av de senaste 10 värdena undviker slå på och av aircon varje minut (vilket inte är bra för aircon).
Beroende på resultatet och den aktuella kontrollen vidtas loop status åtgärder:
om kontrollen loop status är 0 (aircon är avstängd)
om överdrivna makt är större än 100 Watt
slå på aircon i fan läge
Växla kontroll loop status till 1
om kontrollen loop status är 1 (aircon är i fan-läge)
om överdrivna makt är större än 400 Watt
byta aircon till cool läge (till förbrukar mer ström)
Växla kontroll loop status till 2
om de konsumeras makt är större än 200 Watt (förbrukningen är högre än produktionen)
Stäng av aircon
Växla kontroll loop status till 0
om kontrollen loop status är 2 (aircon är i cool läge)
om de konsumeras makt är större än 400 Watt (förbrukningen är högre än produktionen)
Växla aircon tillbaka till fan läge
byta kontroll loop status till 1
Detta kontrollerar kretsar använder endast en aircon för att konsumera övermakt. Du kan se en annan kontrollerar kretsar som använder 2 aircons för att konsumera övermakt i källkoden. Jag fortfarande testa denna loop och det är ännu inte fullt fungerande.