|
Loop() Funktion:
In dieser Funktion wird 2 Hauptroutine aufgerufen
-> client.loop() :
verwalten die WIFI und MQTT connection. für
dieser Projekt wird das Library
EspMQTTClient verwendet ->
ledRoutine() : verwalten die State
Maschine Routine der 8x8 LED Matrix
Darüber
hinaus wird 2 Check funktionen aufgerufen ->
checkSequence(): Check
Lightshow Sequences ->
checkActivity(): Check MQTT und WIFI
Verbindung und Inaktivität Counter |
Verwaltung der
MQTT-Kommunikation
|
bei der client.loop()
wird folgende Prozesse durchgeführt:
1. Verwaltung der WIFI-Verbindung:
Damit wird der ESP32 mit der
WIFI-Verbindung verbunden. Wenn die
Verbindung fehlschlägt, sollte der ESP32
automatisch versuchen, sich erneut zu
verbinden. 2. Verwaltung der
MQTT-Verbindung: Nach dem
Aufbau der WIFI-Verbindung baut der ESP eine
MQTT-Verbindung zum angegebenen Broker auf
und abonniert die angegebenen Topics. Die
Verbindung wird immer innerhalb der Laufzeit
aufrechterhalten. Im Falle eines
Verbindungsabbruchs versucht der ESP, den
Broker automatisch bis zum Timeout neu zu
verbinden. 3. Verwaltung der
MQTT-Routine: In diesem Prozess
werden die callback-Funktionen verwaltet.
Diese callback-Funktionen werden aufgerufen,
wenn eine MQTT-Nachricht empfangen wird.
In der folgenden Tabelle ist die
Kurzbeschreibung der Callback-Funktionen
aufgelistet:
|
|
Verwaltung der LED
Routine
bei der
ledRoutine() Funktion
wird Folgende Prozesse durchgeführt:
1.
Helligkeit Regelung:
Die Helligkeit der 8x8
LEDs kann manuell über Web-Applikation gesteuert oder
automatisch mithilfe PID und LDR Sensor geregelt werden.
2. State Maschine Routine: Die ESP
überprüft in jedes Loop, welche Aktion in welchem Zustand
durchgeführt werden sollte.
3. Senden des
ESP32-Status: SOC der Batterie, Lichtintensität
durch LDR und auch die ESP Position wird alle 1 Sekunde
gesendet, so dass die Web-Applikation in der Lage sein soll,
den ESP Zustand zu überwachen.