ESP 8266: LED-Matrix Display Wetter / Nachrichten / Bitcoin

Ich mag Displays. Ich habe schon einige Projekte mit LCD-Displays (-> Blogbeiträge), OLED-Displays (-> Bitcoin-Ticker) und auch normale Tablets (-> TabletUI) gemacht. Heute habe ich mir mal ein LED-Matrix-Display MAX7219 angeschaut. Nicht das einzelne, sondern gleich das vierer Multipack.
Mit geeigneter Software kann man damit wie mit einem Laufband Wetter / Nachrichten / Bitcoin darstellen.


Die Software habe ich nicht programmiert, sondern kommt hier her. Qrome / Marquee.
Die Software hat ein Webinterface, welches man einfach konfigurieren kann. Nach erstmaligen Aufruf wird ein Accesspoint aufgebaut, auf dem man sich verbindet und dort sein eigenen SSID / Passwort eingeben kann. Ebenfalls kann man dort weitere Informationen fürs Display ein- oder ausblenden. Sehr gut gemacht. Was mir fehlt, ist eine MQTT Schnittstelle.

Für die Hardware benötigt man einen WeMos D1 und das Max7271 Display. Gegebenenfalls ein passendes Gehäuse.

Display Ein- und Ausschalten per Fhem:
Normalerweise ist ein Toggle-Mode in der Software eingebaut, mit dem man per Http die LED-Matrix ein- und ausschalten kann. Ich habe die Software noch um ein paar Zeilen erweitert, sodaß man per Fhem einen definierten Zustand schalten kann.

 

void handleDisplayOn() {
if (!athentication()) {
return server.requestAuthentication();
}
displayOn = true;
enableDisplay(displayOn);
String state = "ON";
displayMessage("Display is now " + state);
}

void handleDisplayOff() {
if (!athentication()) {
return server.requestAuthentication();
}
displayOn = false;
enableDisplay(displayOn);
String state = "OFF";
state = "OFF";
displayMessage("Display is now " + state);
}

In Fhem:

defmod LEDMatrix dummy
attr LEDMatrix comment https://github.com/Qrome/marquee-scroller
attr LEDMatrix devStateIcon an:it_camera@red aus:it_camera@green
attr LEDMatrix devStateStyle {($state eq "an")?'style="color:red"':'style="color:green"'}
attr LEDMatrix room 40_Büro
attr LEDMatrix webCmd an:aus

defmod ntfy_LEDMatrixAN notify LEDMatrix:an {Log 1, "LEDMatrixan";; {system ("wget -q -O- 'http://192.168.178.42/displayon'");;} }

defmod ntfy_LEDMatrixAUS notify LEDMatrix:aus {\
Log 1, "LEDMatrixaus";;\
{system ("wget -q -O- 'http://192.168.178.42/displayoff'");;}\
}\

Update 28.10.2018: Es gibt ein Problem mit der Zeitumstellung
Folgende Zeile löst das Problem:

In Geonameclient.cpp modifiy line 81 from:

String offset = (const char*)root["dstOffset"];
To:
String offset = (const char*)root["gmtOffset"]; //Now uses the varying gmtOffset value

Dieser Beitrag wurde unter Fhem-Hausautomation abgelegt und mit , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.