smarthome-tricks.de

ESP8266 Max7219 MQTT Matrixdisplay für ioBroker

In diesem Artikel zeige ich Dir, wie Du dir ein LED-Matrix Display für Dein Smart-Home bauen kannst. 

Inhaltsverzeichnis

  1. Einführung
  2. Verwendete Materialen
  3. Aufbau der Schaltung
  4. Programmierung
  5. Integration in ioBroker

1. Einführung

In diesem Artikel wollen wir ein ESP8266 LED Matrixdisplay aufbauen und programmieren, welches wir über ioBroker steuern können. Als Display verwende ich mehrere Max7219 Displays mit 8×8 Punkten. Um eine Zeichenkette übersichtlich und damit gut lesbar darzustellen, sollen mindestens 12 Display-Module hintereinander geschalten werden. Am Display soll der Text, die Helligkeit und die Geschwindigkeit des Lauftextes per MQTT-Nachricht gesteuert werden können. Im nächsten Kapitel liste ich zunächst die verwendeten Materialen auf.

2. Verwendete Materialen

Für die Entwicklung des Displays habe ich folgende Materialen verwendet:

3. Aufbau der Schaltung

Der Aufbau der Schaltung ist relativ einfach. Für die Stromversorgung werden die 5V des ESP8266 an das Display angeschlossen.

Die restlichen Pins werden wie folgt angeschlossen:

Matrix ESP8266
VCC 5V (VIN)
GND GND
DIN D7
CS D3
CLK D5

Den Grundaufbau habe ich auf einem Breadboard aufgebaut. In einem späteren Schritt (im Artikel nicht enthalten), wird für das Display noch ein passendes Gehäuse gebaut. Die einzelnen Displays lassen sich relativ einfach in Reihe schalten. Wichtig ist dabei drauf zu achten dass immer Out -> in geschalten wird.



4. Programmierung

Für die Programmierung des Matrix-Displays müssen wir im ersten Schritt die benötigten Bibliotheken für GFX, das Max7219-Display sowie für die MQTT-Anbindung installieren.

Bibliotheken im Bibliotheksverwalter:

Hinweise zur Installation von Bibliotheken
Installation von Bibliotheken über den Bibliotheksverwalter

Bibliotheken über Github

Hinweise zur Installation von Bibliotheken
Manuelle Installation von Bibliotheken ohne den Bibliothekenverwalter

Im nächsten Schritt erstellen wir uns in Arduino einen neuen Sketch und kopieren den folgenden Code in den Sketch:

See the gist on github.

Im folgenden Diagramm wird der Ablauf grob erklärt:

Das Script beginnt mit den Include-Anweisungen für die eingesetzten Bibliotheken. Nach den Include-Anweisungen folgt der Konfigurationsblock, mit dem die Pin- und Displaykonfiguration gesetzt wird. In meinem Beispiel werden 12 Module nebeneinander (horizontal) eingesetzt. Zudem werden hier die WiFi-Einstellungen sowie die IP-Adresse des MQTT-Brokers (IP von ioBroker) definiert. Abschließend werden noch Standardwerte für die Geschwindigkeit, Helligkeit und Schriftgröße des Displays gesetzt.

Mit der Methode „setup_wifi“ wird eine WiFi-Verbindung aufgebaut. Der Fortschritt des Verbindungsaufbaus wird über die serielle Schnittstelle ausgegeben. Bei einem erfolgreichen Verbindungsaufbau wird zudem die IP-Adresse des Displays über die serielle Schnittstelle ausgegeben.

Die Methode „setup“ initialisiert das Display mit den Standardwerten und richtet die Displays entsprechend aus. Dazu die Methode setRotation des matrix-Objekts aufgerufen. Nach der Initialisiertung des Displays wird die WiFi-Verbindung hergestellt und die Verbindung zum MQTT-Broker aufgebaut. Zudem wird die Callback-Methode gesetzt.

Mit der Methode „MQTTCallback“ wird auf eine Veränderung der abonnierten MQTT-Datenpunkte reagiert. Dazu wird der Topic sowie der Inhalt der Nachricht analysiert und entsprechend die Konfiguration des Displays verändert. Folgende Datenpunkte werden vom Broker abonniert:

Die Methode „printMatrix“ erstellt die Laufschrift mit der hinterlegten Konfiguration.

Mit der „reconnect“ Methode wird in der loop-Methode überprüft ob eine WiFi-Verbindung vorhanden ist. Zudem wird die Verbindung zum MQTT-Broker hergestellt.

5. Integration in ioBroker

Die Integration in ioBroker ist wie immer extrem einfach. Im Bereich Objekte unter dem Ordner mqtt.0 habe ich einen weiteren Ordner „MatrixDisplay2“ angelegt, in dem nun die einzelnen Datenpunkte zur Steuerung des Displays gespeichert werden. Ich habe die Datenpunkte mit dem Tool „MQTTBox“ vorab publiziert und angelegt.

Nun lässt sich die Matrix über die oben gezeigten Datenpunkte steuern und konfigurieren.

Ich hoffe Dir gefällt der Artikel ? Ich freue mich über Deinen Kommentar!

Die mobile Version verlassen