Prof. J. Walter - Informationstechnik, Mikrocomputertechnik, Digitale Medien Softwaredoku
Hochschule Karlsruhe Logo Energy Efficient Microcontroller
8x8-MQTT
Wintersemester 2020
Davin Farrell Lukito (75420)
Muhammad Abiyyu Mufti Hanif (67050)

Software Dokumentation


ESP32 Programm für 8x8 LED

Das gesamten Code kann man in dieser github link finden: https://github.com/AbiyyuMufti/8x8_LED_ESP32

In dieser Abschnitt wird der Programablauf des 8x8 LED in ESP32 Mikrocontroller erklärt:
Program First Layer
Gesamte Programm:
Wie bei einem normalen ESP32 in der Arduino IDE besteht das ganze Programm aus 2 Hauptfunktionen:
 -> Setup(), die nur einmal aufgerufen wird, und
 -> Loop(), die kontinuierlich in einer Endlosschleife aufgerufen wird.

setup function Setup() Funktion:
-> In dieser Funktion werden die benötigten ESP32 GPIO-Pins eingerichtet.
-> Außerdem wird das Objekt für den MQTT-Client eingerichtet. Hier wird der MQTT-Time-Out in 60 Sekunden eingestellt.
-> Danach wird die LED-Matrix mit der Bibliothek FastLED_NeoMatrix eingerichtet.
-> Abschließend wird die Initial Condition für die 8x8 LED Matrix eingerichtet. In diesem Fall wird als erste Bedingung "TextGenerator" verwendet, wobei die Nummer der ESP-Position angezeigt wird.

  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

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.

  Mit Unterstützung von Prof. J. Walter Wintersemester 2020