/MatrixDisplayESP8266

Use MAX7219 DotMatrix Displays with ESP8266 and show text from URL

Primary LanguageC++

MatrixDisplayESP8266

Sample1

benötigte Hardware

Verdrahtung

DotMatrix Wemos D1
VCC +5V
GND GND
DIN D7
CLK D5
CS D8
Taste1 D1
Taste2 D2

Die Taster an D1 und D2 sind gegen GND zu schalten. (Pullup-Widerstand wird nicht benötigt)

Konfiguration1

Programmierung

Wie der Wemos D1 (Mini) angeschlossen und in die Arduino IDE integriert wird, ist hier gut beschrieben:

http://www.instructables.com/id/Programming-the-WeMos-Using-Arduino-SoftwareIDE/

Dort wird zwar das große Board gezeigt, aber die Integration in Arduino ist identisch mit dem Mini.

Sollten Kompilierfehler auftreten, bitte Issue #9 beachten!

Taster - Funktion

  • Drücken der Taste 1 ändert die Helligkeit der DotMatrix-Anzeige
  • Drücken der Taste 2 wechselt zwischen dem Automatik-Modus (nacheinander Einblenden der Werte) und der Auswahl einer fixen Anzeige eines bestimmten Wertes.
  • ein Gedrückthalten der Taste 1 oder der Taste 2 bei Einschalten/Stromzufuhr startet das Modul in den Konfigurationsmodus

Konfiguration

Wird einer der beiden Taster bei Einschalten/Stromzufuhr gedrückt gehalten, startet das Modul im AP-Modus. Es erscheint bei der WLAN-Suche vom Notebook/Handy ein neues WLAN namens DotMatrix-xx:xx:xx:xx:xx:xx. Nach dem Verbinden mit diesem WLAN wird automatisch ein Popup des Konfigurationsportals geöffnet.

WLAN konfigurieren anklicken

Konfiguration1

Konfiguration2

Beispiel

Konfiguration3

Bereitstellung der Daten

Der Wemos ruft zyklisch die Daten von der URL ab. Die anzuzeigenden Werte sind als plain text, ohne jegliche Formatierung, nur mit einem Semikolon getrennt zu liefern und der gesamte String muss in Anführungszeichen eingeschlossen sein. Die Rückgabe des HTTP-Requests sieht bspw. so aus: "Text1;Text2;Text3;Textn"

Die Daten können auch aus einer HomeMatic Systemvariable vom Typ "Zeichenkette" abgerufen werden.
Dafür muss bei URL eingegeben werden:
http://1.2.3.4:8181/a.exe?ret=dom.GetObject(%22SV_Matrix%22).State()
wobei 1.2.3.4 durch die IP der CCU2 und SV_Matrix durch den Namen der Systemvariablen ersetzt werden müssen (die %22 müssen bestehen bleiben!).

Sonderzeichen: Aufgrund der UTF-Zeichencodierung muss das Grad-Zeichen (°) als Dollar ($) übergeben werden. Beispiel: "Luft: 12.5$C" wird dargestellt als "Luft: 12.5°C"

Eine weitere, detailliertere Anleitung (inkl. 3D Gehäuse-Vorlage) findet ihr auf Michaels Blog.

Anpassung der Anzahl der verwendeten DotMatrix-Module

Möchte man mehr/weniger Matrix-Module anschließen, so kann die Anzahl im Code leicht geändert werden. In der Datei MatrixDisplayESP8266.ino:

#define MAX_DEVICES 8

Gehäuse / Rahmen

...gibts z.B. hier: