https://www.youtube.com/watch?v=5G5Kvf2i_dM8x8 LEDs
Endergebnis - Gruppe 8x8-MQTT (hamu1013 luda1013)
Einrichtung und Konfiguration des MQTT-Brokers am PC
Bei dieser Projekt wird die
Mosquitto v. 1.6.12a verwendet und auf den Rechner 15 im
Raum Li-041 installiert. Nach der Installation muss die
config-datei noch eingestellt werden, weil bei dieser Projekt es
sich auch um die Datenübertragung durch Internet oder Website
handelt. Das heißt, ein zusätzliches Kommunikationsprotokoll zur
Webseite/ Internet nämlich Websocket muss in Config-Datei der
Mosquitto hinzugefügt werden.
Die Config-Datei befindet sich
unter dem Ordner "Program Files" oder unter einem beliebigen
Ordner, wo das Programm installiert wurde.
Mithilfe Notepad++
lässt sich die Config-Datei leicht einstellen. Wie oben schon
erwähnt wird, dass wegen der Website-Anwendung eine die
Websocket zu Config-datei hinzugefügt werden. Websocket
ermöglicht die Übertragung zwischen MQTT und Webbrowser oder
Webseite. Websocket seblst ist ein
(Netzwerk-)Kommunikationsprotokoll basierend auf TCP
(Transmission Control Protocoll).
Quelle:
http://www.steves-internet-guide.com/mqtt-websockets/
Die Abbildung oben stellt den Grund dar warum Websocket
benötigt wird. Websocket ist wie den Briefumschlag oder die
Verpackung. Und ohne Zusatzkonfiguration der mqtt-config-Datei
kann der Umschlag nicht geöffnet und die Inhalt nicht gelesen
werden. Das heißt, die MQTT-Nachricht oder Befehle wird nicht
durchgeführt.
Zu der Config-Datei sind drei Zusatzkomponente
hinzugefügt; sie sind Port, Protocol und Listener. Laut
Mosquito-Webseite ist 8080 der Port für MQTT durch
Websockets (unverschlüsselt). Zusatzprotokoll ist das Websockets
und 1883 als Listener. 1883 ist der Port für MQTT
(unverschlüsselt). Der Port 1883 sind zuständig für die ESPs.
Nach der Einstellung wird die Dienste auf Rechner aus und wieder
angeschaltet, damit die neue Konfiguration bei Asuführung der
Mosquitto als lokaler MQTT-Broker wirkt.
Bei der Probe wurde aufgefallen dass nach einiger Tage die IPv4
Adresse vom Rechner sich geändert hat. Deswegen wird zum Test
die IPv4-Adresse eigener Rechner und des Rechner 15 im Raum
Li-041 festgestellt. Ansonsten bei der Veränderung der
IPv4-Adresse muss die neue Adresse in jedes Skript des ESP
angepasst werden.
Einrichtung MQTT-Verbindung am ES32 Microcontroller
Für die Behandlung von WIFI- und MQTT-Vebindungen wird die
EspMQTTClient Bibliothek verwendet. Dieser Bibliothek
verwendet WIFI von ESP32 und
PubSubClient
Bibliothek und macht eine Einkapselung dafür. Man muss nur die
WIFI und MQTT Informationen
(SSID, Passworter, MQTT-Host und
Port) angeben und dieser Bibliothek wird automatisch
folgende Sachen verwalten:
|
-
Verbinden mit einem WiFi-Netzwerk. - Verbinden
mit einem MQTT-Broker.. - Automatisches Erkennen
von Verbindungsverlusten, entweder vom WiFi-Client
oder vom MQTT-Broker, und es wird automatisch eine
neue Verbindung versuchen.. -
Subscribe/Unsubscribe von MQTT-Topics durch ein
freundliches Rückrufsystem. (Callback)) -
Unterstützt ein einmaliges Vorkommen eines '+' oder
'#' Wildcards in Abonnementss - Bereitstellung
einer Callback-Behandlung, um mitzuteilen, wenn
alles verbunden ist (Wifi und MQTT).. -
Bereitstellung einer Funktion, die das Drucken
nützlicher Debug-Informationen in Bezug auf MQTT-
und Wifi-Verbindungen ermöglicht.. -
Bereitstellung einiger anderer nützlicher
Hilfsprogramme für die MQTT- und Wifi-Verwaltung.. - Bereitstellung einer Funktion zum Aktivieren eines
HTTP-Update-Servers, der durch ein Kennwort
gesichert ist, um Remote-Updates zu ermöglichen.. |
|
Da jedes ESP einen eigenen und unterschiedlichen
Client-Namen haben muss, wird der Name anhand des Standorts des
ESP erstellt.
In den Bildern unten ist ein Beispiel für die
Informationsangabe für WIFI- und MQTT-Verbindungen sowie für die
Erstellung des Client-Namens.
MQTT Topics und MQTT-Message in JSON-Format
In der unten stehenden Tabelle stehen der verwendeten MQTT-Topic
List und die Beispiele von den dazu gehörigen MQTT-Nachrichten
in JSON Format.
Diese MQTT-Topics werden von ESP32
abonniert (subscribe) und von Web-Applikation veröffentlicht
(publish)
Dieses MQTT-Topic werden von ESP32 veröffentlicht (publish)
und von Web-Applikation abonniert (subscribe)
Ansteuerung 8x8LED durch ESP32 Microcontroller
Um die Beleuchtung der 8x8 LEDs zu steuern, wird die Bibliothek
FastLED_NeoMatrix verwendet. Diese Bibliothek basiert auf
der
FastLED-Bibliothek,
erbt aber die
GFX-Bibliothek
von Adafruit. Somit ist diese Bibliothek in der Lage, sowohl die
FastLED-Fähigkeiten als auch die Adafruit Primitves Graphics zu
implementieren.
Dieser
Mikrocontroller arbeitet vor allem wie ein Zustandsautomat. Er
verarbeitet 4 Hauptzustände:
Start, Setup, LED Routine und
Deep Sleep.
LED Routine Zustand ist der
Aktivzustand, der die 8x8 LED Beleuchtung direkt ansteuert.
Dieser Zustand besteht aus 4 Subzustände
, die in einer
Endloseschleife ablaufen: Light Off, Text Generator, Tap To
Light und Lightshow.
Abbildung: Vereinfachte Zustanddiagramm der 8x8LEDs im ESP32
Microcontroller