ESP8266ESP8266 - SmartHome ProjekteioBroker

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:

  • Adafruit_GFX
  • PubSubClient

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:

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:

  • MatrixDisplay2/text
  • MatrixDisplay2/intensity
  • MatrixDisplay2/scrollwait

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!

Matthias Korte

Hauptberuflich Software-Entwickler und seit einigen Jahren Smart-Home Fan. Angefangen hat alles mit einem RaspberryMatic und einer schaltbaren Steckdose. Mittlerweile habe ich einige Steckdosen, Sensoren, und Thermostate sowie ioBroker zur Visualisierung im Einsatz.

71 Gedanken zu „ESP8266 Max7219 MQTT Matrixdisplay für ioBroker

  • Claus Schulmeyer

    Hallo Matthias,

    für mein MQTT auf dem IoBroker habe ich Username und Password vergeben. Von daher bekomme ich immer im IoBroker eine Fehlermeldung im Log.

    Wie kann ich im Source Code Username und Password integrieren?

    Danke und Grüße,
    Claus

    Antwort
    • Matthias Korte

      Moin Claus,

      für die Verwendung von Username und Passwort musst Du in Zeile 88 die Angaben an die connect() Methode übergeben:


      if (client.connect(clientId.c_str(),"MyUsername","MyPassword")) {

      Antwort
  • Hallo,

    ein tolles Projekt. Ich möchte das gerne nachbauen und überlege gerade, wie ich am besten die Displays miteinander verbinde.

    Hast du dafür die eigentlichen LED Panels vom Controller gelöst, u- förmige Haken eingesetzt und dann von der Rückseite gelötet?

    Hast du davon vielleicht noch ein Foto.

    Schönen Gruß

    Paul

    Antwort
    • Matthias Korte

      Hallo Paul,

      ich kann Dir folgendes Display empfehlen:

      Damit kannst Du die Displays durch „Umbiegen“ der Pins wunderbar verbinden.

      Viele Grüße,
      Matthias

      Antwort
      • Steven

        Diese haben aber einen ganz gewaltigen Nachteil… die pcbs passen meist nicht zum 32mm Raster der LED-Matrix (sind mal hier, mal da 0.2 mm größer), was zu unschönen Lücken führt, und sind zudem meist noch krumm und schief gelötet…
        Die einzelnen LED haben ein 4mm Raster, macht bei 8 Stück 28mm… bei einer Modulgröße von 32mm bleiben noch 4mm übrig. Also quasi keine Luft zwischen den Modulen.

        ich kleb die Module vorher (flach auf dem Tisch an einem Lineal, damit es auch gerade wird) mit einem Tropfen Sekundenkleber zusammen und löte die einzelnen PCBs hinterher. Vorher halt ein wenig abfeilen.

        Die Verbindungsstellen sind halt Fleißarbeit, Stiftleisten und Jumper funktioniert übrigens nicht, da passt der Abstand nicht.

        https://de.aliexpress.com/item/32849877252.html da wird man auch bei größeren Mengen nicht arm…

        Antwort
  • Martin Tietz

    Hi! Klasse Anleitung, danke dafür. Mein Lauftext ist sehr verschwommen.
    Was muss ich im Script ändern um einen statischen Text abzubilden?

    Danke.

    Gruß
    Martin

    Antwort
    • Matthias Korte

      Hallo Martin,

      der Code ist speziell für die Laufschrift ausgelegt. Schau Dir mal die Schleife an, hier müßtest Du nun statisch eingreifen und den Text an die entsprechende X-Position zeichnen.

      Viele Grüße,
      Matthias

      Antwort
    • Dixondsc

      Super Projekt. Hab alles hinbekommen mit jumperkabel und einem wemos d1 Mini. Dann nachdem alles lief habe ich alles gelötet und mir ein Gehäuse gedruckt und es läuft nicht mehr. Habe bereits einen neuen wemos probiert aber selbst das geht nicht. Kann das sein, dass ich beim löten die Paneele beschädigt habe?

      Antwort
      • Matthias Korte

        Moin,
        hast Du mal die einzelnen Verbindungen geprüft, evtl. eine kalte Lötstelle und damit ein Kontaktproblem?
        LG Matthias

        Antwort
        • Dixondsc

          Ich werd es die Tage nochmal zerlegen und neu löten. Berichte dann

          Antwort
  • Hallo, wie funktioniert die Schaltung, wenn man 2x 12 Module schalten möchten. Das Heißt 12 Module horizontal und 2 Module Vertikal. Habe schon probiert die untere Reihe einfach hinter die obere zu hängen, dabei werden jedoch nur die oberen Module bespielt?

    Antwort
    • Matthias Korte

      Hallo Fabian,
      die Module müssen hintereinander und dann die Variable „numberOfVerticalDisplays “ auf 2 gesetzt werden. So würde ich es mal probieren.
      Viele Grüße,
      Matthias

      Antwort
  • Hallo Matthias,

    ich habe das Display jetzt endlich fertig gebaut und in ioBroker integriert.
    Habe bei Thingiverse ein schönes Case drucken lassen.

    Ich habe zusätzlich noch das MQTT Topic Modus eingebaut.

    Modus 0 ist der normale Scrolltext wie bei dir und Modus 1 ist statisch.

    So lasse ich normalerweise im Modus 1 die Uhrzeit anzeigen und alle 3 Minuten kommt der Scrolltext mit den aktuellen Raumtemperaturen oder Benachrichtigungen.

    Ich werde mal gucken das als Fork bei GitHub hochzuladen. Vielleicht ist sowas ja auch für andere Interessant.

    Jedenfalls vielen Dank für diese tolle Anleitung.

    Antwort
    • für mich wäre es interessant und ich würde mich darüber freuen 🙂

      Antwort
      • Hi, ich würd mich auch für die Variante mit statischem Modus interessieren – gibt es da schon einen Fork?

        Antwort
    • Alex

      mich würde auch die Variante mit statischem Modus interessieren – gibt es da schon einen Fork?

      Antwort
    • Alex

      mich würde auch die Variante mit statischem Modus interessieren – ist es schon auf GitHub hochgeladen?

      Antwort
    • matze

      Hallo Paul,

      wie hast Du denn den MQTT Topic Modus eingebaut und wie kann ich im Sketch verschiedene Modi implementieren. Ich würde mich freuen, wenn Du mich hierbei unterstützen kannst.

      Vielen Dank schon einmal,
      matze

      Antwort
  • Was ist mit dem Port für MQTT ?
    Kann der ignoriert werden im Sketch ?

    Antwort
    • Stefan Both

      Der steht im Sketch drinne. Unter void setup()
      „client.setServer(mqtt_server, 1883);“

      BeidE

      Antwort
  • Ganz ganz herzlichen Dank für diese tolle Anleitung !!!

    Ich werde sie als „Jumbo – LED-Uhr“ einsetzen.

    Hierfür habe ich auch zwei Zeilen Module benötigt.
    Hierbei ist mir dann aufgefallen, dass die zweite Zeile nur „Müll“ anzeigt.
    Der „Fehler“ (der keiner ist) war schnell gefunden.

    Zeile 109 müsste noch folgender Maßen geändert werden:

    IST: for (int matrixIndex=0 ; matrixIndex < numberOfHorizontalDisplays ; matrixIndex++ )
    MÜSSTE: for (int matrixIndex=0 ; matrixIndex < ((numberOfHorizontalDisplays)*(numberOfVerticalDisplays)) ; matrixIndex++ )

    Damit auch die LED Matrix der zweiten (dritten…) Zeile gedreht wird.

    Liebe Grüße

    Antwort
  • Stefan Both

    Kann man dem Display (dem ESP-Chip) auch eine statische IP Adresse zuweisen?
    (bzw. in welcher „.H Datei“ muss ich es eintragen?)

    Grüße

    BeidE

    Antwort
    • GrayTheZebra

      Du kannst den Quelltext wie folgt anpassen:

      WiFi.begin(ssid, password); < dahinter das folgende Eintragen:
      IPAddress ip(192,168,0,161);
      IPAddress gateway(192,168,0,1);
      IPAddress subnet(255,255,255,0);
      WiFi.config(ip, gateway, subnet);

      Antwort
  • Daniel

    Hallo Matthias,
    habe die Matrix nachgebaut. MQTT funktioniert und die Daten werden im seriellen Monitor auch angezeigt aber die Matrix zeigt nichts an. Gibts einen Befehl zum ein/ausschalten der Matrix? Verkabelung ist hab ich 3x kontrolliert, die ist richtig…

    Was könnte das Problem sein?

    MfG

    Antwort
  • Ulf

    Moin Mathias,
    ich kämpfe als Newbie gerade mit deinen Programmzeilen.
    Ich war in der Lage die Bibliotheken einzubinden, das Programm zu kompelieren und in den Wemos D1 mini zu übertragen.
    Nach der Nennung von SSID und PW taucht der Wemos auch eine IP-Adresse in meinem Netzwerk zugewiesen.
    Allerdings war es das dann auch fast schon. Es liefen Punkte durch, doch sah es doch ein wenig seltsam aus. Daraufhin habe ich deinen Quellcode wie folgt abgeändert:
    Zeile 32 geändert von String MatrixText = „…“; nach String MatrixText = „Hallo“;
    Es sieht so aus als wenn der Text in jedem LED-Matrix-Baustein startet und durchläuft, immer mehrere gleichzeitig und dann durchläuft. Schwierig zu erklären, sieht auf jeden Fall nicht richtig aus.
    Die Hardware habe ich inzwischen getauscht bzw. verprobt. Den Wemos als auch den 8er Matrixstreifen getauscht bzw. mit einer anderen Software laufen lassen.
    Zur Zeit habe ich keine Ahnung wo ich mit der Fehlersuche starten soll / muss und bitte um Unterstützung.
    Mit freundlichen Grüßen
    Ulf

    Antwort
  • Matthias

    Hallo,

    ist es auch möglich das Programm auf einem Raspberry Pi zu betreiben also nicht auf einem Wemos?

    MFG

    Antwort
  • Icke

    Leider gehen mit dem Sketch auch keine Umlaute 🙁

    Antwort
  • Ulf

    Ich antworte mir einfach mal selber….
    Nach unendlichen Versuchen habe ich die Stelle gefunden die bei mir für „Verdrehung“ gesorgt hat.
    Folgende Befehlszeile
    matrix.setRotation(matrixIndex, 1); //Erste DOT Matrix Drehen

    habe ich durch
    matrix.setRotation(0, 3); //Erste DOT Matrix Drehen
    matrix.setRotation(1, 3); //Zweite DOT Matrix Drehen
    matrix.setRotation(2, 3); //Dritte DOT Matrix Drehen
    matrix.setRotation(3, 3); //Vierte DOT Matrix Drehen
    matrix.setRotation(4, 3); //Fünfte DOT Matrix Drehen
    matrix.setRotation(5, 3); //Sechste DOT Matrix Drehen
    matrix.setRotation(6, 3); //Siebte DOT Matrix Drehen
    matrix.setRotation(7, 3); //Achte DOT Matrix Drehen

    ersetzt. (Bei mir sind es acht DOT Matrix in einer Zeile).
    Vielleicht hilft es ggf. noch dem einen oder anderen.
    Gruß Ulf

    Antwort
    • Dr-Seltsam

      Hallo Ulf,

      danke für den Hinweis, hatte das gleiche Problem. Etwas kürzer und die praktische Schleife mit der Anzahl der Matrizen kann bleiben:
      matrix.setRotation(matrixIndex, 3);

      Grüße

      Antwort
  • Anthony Hopkins

    Hello Matthias,
    Great project, sketch working perfectly, I managed to make it to correctly login with user/pass on my MQTT Home assistant broker.
    Current status:
    -on the Arduino serial monitor it shows me „subscribe objects“
    -on the matrix display three dots scrolls in a loop.
    -on the MQTT broker log it shows „New client connected from x.x.x.x as Matrix-xxxx“

    Now, is there any way to used it with homeassistant? any suggestion about how to write status messages on it and/or what to add in the configuration.yaml ?

    Thank you very much for your help!

    Antwort
    • Matthias Korte

      Hi Anthony,

      thank you for your comment. The matrix use mqtt broker to get the data. So you can use homeassistant, too. Make sure your mqtt broker works / is configurated in homeassistant.
      Please give me more information when it works, so other user can benefit.

      Best regards,
      Matthias

      Antwort
      • Anthony Hopkins

        Dear Matthias,
        The MQTT broker on home assistant works flawlessy, it already receive messages from several NodeMCU+DHT22 acting as temperature probes around the house, and other NodeMCU with Tasmota firmware acting as multiple remote relays.

        The MQTT broker is configured inside the configuration.yaml file.

        What I’m trying to do is to make an entry inside configuration.yaml to make HA recognise the entity „display“ (or whatever name, so that it could be possible to send messages to the nodemcu+max7219 thru a new automation).
        Any suggestion of the code portion to insert ?

        Thank you anyway for your very fast answer.
        Anthony

        Antwort
  • Matthias

    Hat auf Anhieb funktioniert, obwohl ich vorher mich damit noch nicht beschäftigt habe. Vorallem Arduino ide kannte ich gar nicht.
    Top Anleitung
    Ein wirklich sehr schönes Projekt.
    Mit einen ganz kleinen Shript im Iobroker hab ich zb mir die Temp von meinen HM Thermostaten anzeigen gelassen.

    Danke für deine Mühe

    Antwort
    • Matthias Korte

      Danke für das Lob 🙂

      Antwort
  • Gibt es eine Chance auch Umlaute darzustellen ?
    Die Anzeige funktioniert soweit gut und geänderte Zustande werden schön über MQTT gepusht.
    Mir fehlt eigentlich nur zur Temperatur und Feuchtigkeit die Sonderzeichen.

    Danke für die Anleitung hier.

    Antwort
  • Thomas

    Hi,

    erstmal danke für die Beschreibung.
    Klappt bis zu einem Punkt alles super.
    Es startet alles und er subscribed auch zu meinen Broker auf dem Home Assistant.
    Nur wen ich dann eine Nachricht schicke, passiert rein gar nichts, also ich kann sehen das MatrixDisplay2/text payload „test“ im Broker ankommt, weil wenn ich da reinschaue sehe ich den payload test.
    Aber im Display passiert nicht, eine Idee was es sein könnten ?

    Antwort
  • matze

    Hallo Matthias Korte,

    Danke für die Beschreibung. Gern möchte ich verschiedene Scroll-Effekte aus der MD_Parola Bibliothek in das Skript einbinden. Ich stelle mir vor, über einen Datenpunkt im ioBroker den Scoll-Modus festzulegen (Nummer) und dann ebenfalls per mqtt zu übertragen.

    Mir fehlt derzeit jedoch der Ansatz, wie ich die verschiedenen Scroll Effekte aus der MD_Parola in Dein Skript einbinden kann.

    Für einen Denkanstoß / ein Beispiel bin ich Dankbar.

    Viele Grüße,
    matze

    Antwort
    • Robin

      Bist du weiter gekommen? Ich würde das auch gerne machen. Andere Projekte, die das können, bauen leider darauf, dass die Daten über die API abgefragt werden, was ich nicht so elegant wie MQTT finde und sind schon wieder so komplex, dass ich da nicht wirklich durchblicke.

      Antwort
  • Hallo und Danke erstmal für die Tolle Arbeit!
    Die Laufschrift läuft bei mir soweit auf einem Einzeiligem Display mit 8 Modulen.

    Nun wollte ich gleich mal mehrzeilige Displays probieren und habe auf 2 x Vertikal und 8 x Horizontal upgegradet.

    Die Schrift läuft auch so weit schön Zentriert nur halt mit der gleiche Schriftgröße.
    Nu habe ich den Wert Schriftgröße mal geändert, aber das einzige was sich ändert ist der Abstand der einzelnen Buchstaben.
    Wie schaffe ich es das die Schrift wirklich größer wird ?
    Habe mich auch schon mit dem Wert bei matrix.height gespielt aber da verschiebe ich nur die Vertikale position.

    Hätte jemand eine Tipp für mich?
    Vielen Dank

    Antwort
  • Hallo und erstmal danke für das tolle Projekt!
    Habs auch gleich mal umgesetzt und funktioniert soweit.

    Wollte jetzt mal etwas probieren und habe mal 2×8 Displays zusammengeschlossen.
    Das läuft soweit auch ganz gut.
    Das einzige was ich nicht schaffe das ich eine Größere Schrift bekomme.
    Wenn ich die im Sketch ändere wird nur immer der Abstand zwischen den einzelnen Buchstaben größer aber nicht der Buchstabe selbst. Der ist immer 7 Pixel groß.
    Wie könnte ich die Schrift selbst größer machen?

    Vielen Dank
    Roli

    Antwort
    • Ralf

      Hi
      ein paar Post früher hat das schon jemand (nicht ich) rausgefunden.

      Zeile 109 müsste noch folgender Maßen geändert werden:

      IST: for (int matrixIndex=0 ; matrixIndex < numberOfHorizontalDisplays ; matrixIndex++ )
      MÜSSTE: for (int matrixIndex=0 ; matrixIndex < ((numberOfHorizontalDisplays)*(numberOfVerticalDisplays)) ; matrixIndex++ )

      Antwort
  • Christian

    Vielen Dank für die Anleitung.
    Wäre auch sehr daran interessiert wie man zwischenzeitlich eine statische Anzeige realisieren kann, also zB die Uhrzeit für ein paar Minuten. Bin noch recht neu auf dem Gebiet.

    Beste Grüße
    Christian

    Antwort
  • Sprite01

    Ist es richtig das die Anzahl der dargestellten Zeichen begrenzt ist ?
    Wenn ein längerer Newsfeed erscheint dann wird die Anzeige nicht mehr aktualisiert.
    Scheint so, daß bei einer bestimmten Zeichenanzahl Schluss ist.

    Antwort
  • Andreas

    Hallo tolles Projekt hab es auch zum laufen.

    Leider habe ich den hier immer wieder genannten ,Fehler das die Daten (vom Iobroker gesendet) nicht im Display erscheinen.

    Im Seriellen Monitor des Arduino program bekomm ich die Meldung.:

    New message arrived
    MatrixDisplay2/text/set
    Hallo

    Im Display tut sich aber rein gar nichts.

    Antwort
  • Karsten

    Hallo zusammen ! Cooles Projekt, schon länger danach gesucht. Leider bekomme ich beim Kompilieren immer „exit status 1 Fehler beim Kompilieren für das Board NodeMCU…“

    Inzwischen konnte ich es eingrenzen auf die Max72xx-Bibliothek. Die benötigte Adafruit_GFX ist installiert. Vielleicht nur ein Problem der Versionen ? Als IDE benutze ich die 1.8.12 Arduino.
    Hat vielleicht jemand noch eine Idee ??? Danke schonmal !!!

    Antwort
    • Ralf

      Hi falls du es noch brauchst.
      Aktualisiere deinen Board im Boardverwalter.

      Antwort
  • Andreas

    Hat sich erledigt ,Fehler nicht wirklich eingrenzbar. Meine Vermutung ist Kontaktsache mit Pins auf ESP (Steckkontakt). Jetzt läuft es.

    Antwort
  • Karsten G.

    Hallo Matthias ! Sehr sehr cooles Projekt, vielen Dank. Nun habe ich noch ein relativ kleines Problem. Wenn ich den Datenpunkt unter text „MatrixDisplay2/text“ bei „Wert“ manuell verändere erscheint auch dieser Text im seriellen Monitor des ESPs. Wenn dieser Text aber per script, also zB. der Wert eines T.-Sensors, verändert wird, sehe ich das auch im ioBroker (also da wo ich vorher manuell was verändert habe) Nur kommt diese „automatische Änderung durch Blockly“ nicht am ESP an. Schreibe ich wieder manuell etwas in das Feld, erscheint es wieder im seriellen Monitor des ESPs. Bestimmt nur eine Kleinigkeit für Euch… Vielen Dank, viele Grüße, Karsten
    PS: In blockly habe ich „aktualisiere display2/text – erstelle Text aus – wert -vom Objekt ID- Sensor. Die Aktualisierung ohne „erstelle Text aus“ funktioniert auch nicht besser ;-/ -> gleicher Effekt wie oben beschrieben….

    Antwort
    • Karsten G.

      Die „selbst“-gelösten Probleme sind die besten 🙂
      „In blockly habe ich „aktualisiere display2/text – erstelle Text aus – wert -vom Objekt ID- Sensor. Die Aktualisierung ohne „erstelle Text aus“ funktioniert auch nicht besser ;-/ -> gleicher Effekt wie oben beschrieben….“ –> Muss heißen: „steuere display2/text – erstelle Text aus – wert-vom Objekt….“
      Also: Steuere… und nicht: Aktualisiere…
      Danke trotzdem, Grüße
      Karsten

      Antwort
  • Mo Szyslak

    Vielen Dank für dieses Super Projekt,
    gibt es irgend wie die Möglichkeit das ganze so anzupassen, damit der Text Statisch ist sobald er nicht länger wie das Display ist und nur Scrollt wenn die Zeichen nicht ausreichen?

    Würde gerne mit Statischen Texten arbeiten und ab und zu einen Newsfeed „durchscrollen“ lassen.

    Habe aber von so Code zeuch leider absolut keine Ahnung.

    Antwort
  • daNick

    Hallo

    Ein praktisches Problem habe ich als totaler Einsteiger:

    Muss man hier löten oder wird alles gesteckt? 🙂
    … oder zeigt schon die Frage, dass ich das hier alles lassen sollte?

    Gruß Nico

    Antwort
    • Ralf

      Wenn du fertige Matrixmodule nutzt und ein Steckbrett, dann kommst du auch ohne löten aus.

      Antwort
  • Christan

    Ich würde das auch haben wollen. Bist du hier weiter gekommen?

    Antwort
  • janney

    Hallo,
    vielen Dank für diese feine Projektvorstellung!
    Kann man den Lauftext auch als Endlosschleife anzeigen lassen, also ohne die“Leerfahrt“?
    Ich probiere da schon ne Weile am Code herum, aber leider ohne Erfolg.
    Vielleicht kann mir da ja jemand von Euch da Draußen weiterhelfen.

    Vielen Dank im voraus:)
    VG

    Antwort
  • Ewald

    Servus Matthias
    bin absolut begeistert von Deinem Projekt da ich genauso eine Laufschrift zur Anzeige meiner Pooltemperatur benötige. Du hast das perfekt beschrieben und ich schaffe es auch die Temperatur auf der Laufschrift darzustellen. Leider tritt dann ein Problem auf: wenn ich zwei oder drei Displays hintereinander schalte beginnt die Leuchtschrift immer zu flimmern/flackern!
    Habe bereits alle Komponenten getauscht und komme einfach nicht auf die Ursache
    Hast du vielleicht noch einen Tip?
    LG
    Ewald

    Antwort
    • Matthias Korte

      Hallo Ewald,

      wie schaut denn deine Spannungsversorgung aus, hat hier evtl. das Netzteil zu wenig Leistung?

      LG Matthias

      Antwort
  • Andreas

    Hallo Matthias,
    nach Sketch Überprüfung bekomme Fehler Meldung :
    matrix_iobroker.24.03.21:35:3: error: stray ‚\303‘ in program
    Verzögerung (10);
    ^
    matrix_iobroker.24.03.21:35:3: error: stray ‚\266‘ in program
    matrix_iobroker.24.03.21:44:5: error: stray ‚\303‘ in program
    Verzögerung (500);
    ^
    kanns du mir weiter helfen?
    Vielen Dank im voraus.
    Andreas

    Antwort
    • Matthias Korte

      Hallo Andreas,

      hast Du bei Dir im Sketch ein Umlaut wie ä,ö,ü,ß ? So sieht mir das aus. In der Ausgabe steht etwas von Verzögerung(500). Ich vermute mal daran liegt es.

      LG Matthias

      Antwort
  • Andreas

    Hallo Matthias,
    Sketch habe ich von dir, habe nur wifi und mqtt daten zugefügt,
    LG Andreas

    Antwort
  • Andreas

    Hallo Matthias,
    habe Sketch implementiert und auf die D1 mini geladen (ohne Fehler), bekomme aber über ioBroker nicht zum laufen. wie soll ich die Datenpunke einlegen?

    LG Andreas.

    Antwort
    • Matthias Korte

      Hallo Andreas,

      läuft bei Dir auf dem ioBroker auch ein entsprechender MQTT-Broker? Die Datenpunkte sollten dann vom MQTT-Broker erstellt werden, da muss man selber nichts anlegen.

      LG Matthias

      Antwort
  • Andreas

    Hallo Matthias,
    Vielen Dank, hat alles gut geklappt, Super beschriebene Projekt.
    mit zusätzlich statische Uhr wäre es richtig ideal.
    LG Andreas.

    Antwort
  • Chris

    Hallo, ich habe dieses Projekt nachgebaut, vielen Dank dafür.
    Ich möchte den Text nur 2min anzeigen lassen, und danach soll das Display wieder leer werden. Ich habe diese schon mit einem Intervall Blockly, mit einem Datenpunkt mit einer Leerzeile versucht. Aber leider wird dann der Datenpunk immer mit null im Display angezeigt.
    Wie kann ich das mit einem Leerzeichen realisieren. Oder kann man in dem Sketch die Anzeige dauer von 2min einstellen können?

    Gruß Chris

    Antwort
    • Matthias Korte

      Moin Chris,

      im Sketch könntest Du das ebenfalls mit einem Timer realisieren. Ich finde den Weg über Blockly aber irgendwie eleganter. Schau Dir hierzu mal den Sketch genauer an. Ich denke Du musst den MQTT-Wert auf „“ oder Null prüfen und dann einen Leerstring anzeigen.

      LG Matthias

      Antwort
  • Mathias

    Hallo zusammen,

    bei mir klappt alles wunderbar. Bei meinem aktuellen Projekt musste ich leider die Schrift 180° drehen.

    Hat an sich auch mit der folgenden Zeile geklappt.

    matrix.setRotation(matrixIndex, 3);

    Leider werden jetzt alle 4 Displays „einzeln“ angesteuert und die Schrift läuft nicht mehr über alle 4 Displays hinweg sondern über jedes einzeln.

    Evtl. hat wer einen Tipp für mich was der Auslöser dafür sein könnte!

    Danke!

    Antwort
  • Hans-Jürgen

    Hallo,

    vorab es läuft alles sehr gut.
    Was mit fehlt ist den Text statisch anzuzeigen.
    Ich bin nur ein Anfänger Hobby-Programmierer.
    Hat vielleicht jemand den Code für eine für eine Anpassung/Änderung

    Gruß Hans-Jürgen

    Antwort
  • Nicolas

    Hallo,

    Danke für ace Arbeit 🙂
    Der Code funktioniert sehr gut und sehr nützlich für mich … Allerdings hat eine Person herausgefunden, wie man den Wert der Anzeige festlegt?
    Ich suche, aber ich bin nicht sehr vertraut mit max7219 Anzeigen ….
    Danke für Ihre Hilfe 🙂

    ps: Sorry, wenn meine Worte nicht so gut sind … ich benutze einen Übersetzer ^^

    Antwort
  • GrayTheZebra

    Hi,

    ich habe mit verschiedenen Controllern das Problem dass das Display nicht auf die geänderten Datenpunkte reagiert.

    Im ioBroker werden diese nach ein paar Sekunden auch rot angezeigt.

    Antwort
  • Marcel Haldimann

    Hallo Danke für den Beitrag. Leider läuft es bei mir nicht obwohl ich der Meinung bin, dass ich alles wie beschrieben gemacht habe. Programm compiliert wird hochgeladen und dann nix.
    Wie kann ich das debuggen um dem Fehler auf die Schliche zu kommen?

    Vielen Dank

    Antwort
  • karsten

    Moin zusammen 🙂 Immer noch geiles Projekt ! Würde aktuell gerne Sonderzeichen darstellen, also zB „kleiner Kringel“ + „C“ für „Grad-Celsius“. Hat hier schon jemand Lösungen ? Und die Umschaltung von statisch auf Laufschrift ist immer noch interessant. Gibts hier schon Neuigkeiten ? Vielen Dank. LG und ein schönes Wochenende, Karsten 🙂

    Antwort

Schreibe einen Kommentar zu Marcel Haldimann Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht.