Viele Blog-Leser nehmen Telegram (-> Blog-Beitrag, Blog-Beitrag) oder Pushover (-> Blog-Beitrag) , um Statusmeldungen auf ihr Smartphone auszugeben. Beispielsweise: Alarmanlage ein- oder ausgeschaltet, Außentemperatur 25 Grad, Blumen müssen gegossen werden, Stau auf der A3 – Fahrdauer 59 min. Sowas und viel mehr kann man mit Fhem scripten. Ich habe Euch ja schon genügend Beispiele dafür gezeigt. Eine Alternative zu Telegram, eMail oder Pushover ist das legendäre LED-Display in Form eines Bilderrahmens, welches ich schon mittlerweile in 3 Ausführungen (MySensors, 433 MHz-Empfänger, ESP8266) gebaut habe. Ich habe für diese LED-Bilderrahmen eine sehr gute Resonanz bekommen. Viele von Euch bauen diese Bilderrahmen häufig nach. Grund: Nicht jeder möchte dauernd auf das Smartphone schauen, oder hat sogar keins.
Nun habe ich in meiner Grabbelkiste ein paar alte LCD – Displays gefunden. Diese Displays gibt es in verschiedenen Geschmacksrichtungen: 2-zeilig mit 20 Zeichen oder auch 4-zeilig mit 20 Zeichen, wahlweise mit blauen oder grüner Hintergund-Beleuchtung. Zur einfachen Anzeige von: Stau: 54 min Fahrdauer, oder Balkon: 27 Grad reicht dieses Display völlig aus. Man kann ja es auch quasi dynamisch laufen lassen, und so bei jedem neuen Event eines Devices (Temperatursensor, usw.) das Display von selbst updaten lassen.
Im folgenden zeige ich Euch die benötigten Bauteile für dieses coole Gadget und auch die notwendige Software. Wie alles bei mir im Blog: Stay creative und macht selber was draus.
Bauteile:
LCD-Display, Typ 2004, kaufen bei Amazon.de (-> Link)
I2C-Schnittstelle, kaufen bei Amazon.de (-> Link)
NodeMCU (oder ein ESP8266 Baustein mit 2 GPIOs), kaufen bei Amazon.de (-> Link)
oder mein Lieblings-Board ( Witty -> Amazon.de (-> Link))
Wichtig: Lötkenntnisse müssen vorhanden sein. (Löten vom i2C an LCD-Display nötig)
Begrenztes Angebot: Ich habe die Bauteile für dieses Projekt noch vorrätig, wie abgebildet:
LCD 1602 : 2 zeilig 16 Zeichen
LCD 2004: 4 zeilig 20 Zeichen (3 Euro mehr)
notwendiger I2C Baustein (fertig angelötet)
Kabel
Wahlweise Witty – Board oder WeMos Modul
Ich kann euch das komplette Set aus meiner Testumgebung, fertig geflashed, I2C-Baustein an dem LCD1602 gelötet für 23,50 Euro inkl. Versand anbieten. Inklusive Test. Oder auch als Einzelteile für Bastler. 3D-Gehäuse aus PETG (siehe hier) auf Anfrage.
Software für den ESP8266 Baustein:
Als Software verwenden wir hier die ESP-Easy Software. Wie der ESP 8266-Baustein geflashed wird, habe ich Euch in früheren Blog-Beiträgen gezeigt. (hier, hier, hier, hier)
Einmal geflashed und ins eigene WLAN genommen, könnt ihr komfortabel mit der ESP-Easy-Software das LCD 2004 Display konfigurieren.
Hierzu ruft ihr die Administrator-Oberfläche auf und wählt bei Settings 2 freie GPIO-Ports für SDA und SCL vom ESP 8266 aus (Hardware -> Hardware-Settings). Diese verbindet ihr mit der I2C Schnittstelle des LCD-Displays. Ich habe für mein Witty-Board GPIO 0 und GPIO 5 genommen. Als Device sucht ihr euch in der Vielzahl der Sensoren den LCD2004 aus der Liste aus und wählt GPIO5 und GPIO0 in den Drop-downs für SDA und SCL aus.
Einen Funktionscheck könnt ihr machen, indem ihr unter Tools -> I2C-Scan eine Antwort bekommt. Die Adresse 0x27 müsst ihr dann unter Devices -> I2C- Adress eintragen.
Einen kurzen lokalen Display-Test könnt ihr machen, indem ihr in den ersten beiden Textfeldern einen kurzen Text eingebt. Nach einem Neustart des ESP-8266 Bausteins meldet sich das Display mit dem Text ESP Easy und dem Text, den ihr eingegeben habt.
Verbindung mit Fhem:
Anhand der einfachen Übertragung von Texten könnt ihr das Display sofort ausprobieren.
Wie in der Doku von ESP-Easy beschrieben, könnt ihr die Texte einfach per HTTP übertragen (-> Doku ESPEasy)
In Fhem fügt in Script solchen Programm-Code ein:
system("wget -q -O- 'http://192.168.178.52/control?cmd=lcdcmd,on'");
system("wget -q -O- 'http://192.168.178.52/control?cmd=lcd,2,1,Strom: wenig '");
Beispiel für eine Übertragung von Temperaturwerten von LaCrosse-Temperatursensoren (-> Blog-Beitrag):
{system("wget -q -O- 'http://192.168.178.52/control?cmd=lcd,2,1,".ReadingsVal("04Thermo","temperature","n.n")."'")}
(danke André)
Bitte auch Teil 2 von dem Blog-Beitrag lesen!
Blog-Leser-Fotos:
Hallo,
mit folgender Url kann im LCD Display 2004 °C (Grad Celsius) dargestellt werden.
http://192.168.1.120/control?cmd=lcd,1,1,Temp%A0:%A022.2%C2%B0C
Leerzeichen = %A0
°C = %C2%B0C%0D%0A
Vielleicht hilft das dem einen oder anderen!
Gruß Anton
Kann man die LCD 2004 I2C auch mit 3,3V von die ESP12 betrieben?
Bis jetzt bei mir noch nicht gelungen.
Soll man „level shiffter“ anwenden?
Wie connect ich diese?
Danke für die beratung.
Thomas
dann liegt es wohl an der Namensgebung.
vielleicht hier mal nachsehen: https://www.letscontrolit.com/wiki/index.php/LCDDisplay
Hallo Reimund,
bekommst du vom DS18B20 Werte?
Funktioniert das LCD2004? einfach mal „test“ in dem Textfeld reinschreiben.
LG
/robin
Ja Werte werden angezeigt.
Und ja test wird auch angezeigt im Display
Hallo Reimund,
bekommst du vom DS18B20 Werte?
Funktioniert das LCD2004? einfach mal „test“ in dem Textfeld reinschreiben.
LG
/robin
Brauche bitte Hilfe.
Habe am Nodemcu einen DHT und einen DS18b20 angeschlossen.
Display ist ein LCD2004.
Name der Sensoren
Dallas1
und DHT
Wie bekomme ich die Temperatur am Display angezeigt.
Bekomme es nicht hin
Das obere ist für das Aquarium
Das unter Raum.
Pingback: Vergleich: Sonoff Schalter mit Original und Tasmota-Firmware und Alexa / Google-Home und Fhem | Robins Blog – Technik und Multimedia
Hallo Denis,
In jedem LCD 1602 Display habe ich einen WeMos D1 Mini verbaut, siehe auch Blog-Beitrag: https://blog.moneybag.de/fhem-lcd-display-1602-fuer-feinstaubsensor-sds011/ und dort das Youtube Video.
In meinen letzen Tests mit ältere ESP Firmware wurde nur ein LCD Display gefunden, und ja ich habe am i2c Baustein einen anderen Port gejumpert.
LG
/robin
Hallo Robin,
erst mal vielen Dank für deinen Blog.
Eine Frage hätte ich zu dem Bild mit den 4 LCDs im Bilderrahmen:
Wird da pro LCD ein ESP8266 Baustein genutzt? Oder gibt es mit ESP-Easy die Möglichkeit mehrere Displays anzusteuern?
Grüße,
Denis
Hallo Robert,
Direkt an 5 V. Das 1602 und 2004 LCD-Display braucht 5 V.
SCA und SCL an Wemos 5 V und Masse und gut ist. Die Displays laufen bei mir schon Monate.
LG
/robin
Hallo,
schöne und inspirierende Anleitung.
Darf ich mal fragen, wie ihr das Display am nodemcu angeschlossen habt? 5v oder 3v und direkt oder über ein Levelshifter? Ich habe es derzeit direkt angeschlossen bin allerdings skeptisch, was die Haltbarkeit dieser Lösung angeht, da der ESP8266 ja nur 3v am GPIO verträgt…
Viele Grüße
Hallo Jan,
bei meinem Stromcounter hab ich das so gemacht:
esa2000WZ_43CB:actual.* {
my $raw_total = sprintf( "%.2f", ReadingsVal ("esa2000WZ_43CB","raw_total",0) );
my $day = sprintf("%.2f", ReadingsVal ("esa2000WZ_43CB","day",0) );
my $day_last = sprintf( "%.2f", ReadingsVal ("esa2000WZ_43CB","day_last",0) );
fhem("set StromcounterLCD lcdcmd clear");
fhem("set StromcounterLCD lcd 1 1 Stromverbrauch.IP:27");
fhem("set StromcounterLCD lcd 2 1 Gesamt:$raw_total");
fhem("set StromcounterLCD lcd 3 1 Gestern:$day_last");
fhem("set StromcounterLCD lcd 4 1 Heute:$day");
Das Display ist aus meinem Youtube-Video: https://www.youtube.com/watch?time_continue=2&v=ydrh2I_boR0
Ich habe noch einige LCD2004 Displays mit Controller hier liegen, wer noch eins haben möchte, möge sich melden.
LG
/robin
Hallo Robin,
nochmal Vielen Dank,
Display läuft, zwar noch nicht perfekt, aber immer hin.
Habe es über notify gebastelt.
Warmwasser:temperature:.* {system(„wget -q -O- ‚http://192.168.178.69/control?cmd=lcd,2,1,Warmwasser „.ReadingsVal(„Warmwasser“,“temperature“,“n.n“).“‚“)}
Zwar wenig umständlich aber läuft.
Das einzige Problem ist, das meine 1-Wire Sensoren 4 Nachkommastellen anzeigen. 🙁
Hat da jemand evtl. eine Idee, wie ich es auf 1 oder 2 Nachkommastellen umstellen kann? Vielen Dank
Hallo Jan,
steht im Blog-Beitrag drin: Entweder per http. oder mit einem Plugin von fhem
https://blog.moneybag.de/fhem-lcd-2004-display-mit-espeasy-teil-2/
im forum steht es auch: https://forum.fhem.de/index.php?topic=55728.0
LG
/robin
Hallo,
Ist eine super Sache. Habe alles nachgebaut wie beschrieben.
Display funktioniert auch super.
Allerdings probiere ich schon seit Tagen eine Verbindung mit Fhem herzustellen.
Ohne Erfolg 🙁
Bitte dringend um Hilfe, brauch ich noch irgendwas spezielles in Fhem?
Oder wie „verbinde“ ich espeasy mit fhem?
Vielen Dank im Voraus.
Gruß Jan
Hallo,
Bei mir wird anscheinend als falscher Zeichensatz benutzt wie kann ich das ändern.
Hallo Reimund,
kann ich auch nicht helfen. ich habe nur einen BMP180 hier, aber keine Testschaltung aufgebaut.
LG
/robin
Leider auch nicht.
Dann wird
bmp280#tmp Grad im Display angezeigt.
Mit dem DS12b80 hat es funktioniert
Hallo Reimund,
versuche mal bmp280#tmp
LG
/robin
Danke funktioniert. Allerdings noch ein Problem.
Habe nun einen BMP280 angeschlossen.
Name bmp280
Value Name 1 : tmp
Im Display habe ich folgendes:
1. Zeile. %systime%
2. Zeile [bmp280#temp] Grad
Bekomme die Zeit angezeigt. Dann aber nur Grad
Keine Temperatur Anzeige.
Um Web wird aber alles korrekt angezeigt.
Wo mache ich da noch einen Fehler ?
Hallo Reimund,
einfach an 5 V anlöten!
Ansonsten gibt es auf der Rückseite ein blaues Potentiometer (= ja alte Schreibweise), da etwas dran drehen.
LG
/robin
Habe das LCD 1602 . Kann abe die Schrift kaum erkennen. total blass.
Betreibe es an 3.3 Volt am Nodemcu
Was kann das sein
Hallo Robin,
ich habe versucht das ganze nachzubauen, scheitere jetzt aber leider an der Umsetzung softwareseitig.
Leider werde ich aus diesem Satz „In Fhem fügt in Script solchen Programm-Code ein:“ nicht ganz schlau…
Wenn ich das
{system("wget -q -O- 'http://192.168.178.52/control?cmd=lcd,2,1,".ReadingsVal("04Thermo","temperature","n.n")."'")}
anpasse und in fhem reintippe bekomme ich auch eine korrekte Ausgabe auf meinem Display. Allerdings weiß ich jetzt nicht wie man das ganze automatisch abfragen bzw. sich aktualisieren lässt.Vielen Dank schonmal!
Liebe Grüße,
Markus
Pingback: Fhem: LCD 2004 Display mit ESPEasy (Teil 2) | Robins Blog – Technik und Multimedia
Hallo Robin,
Ich würde mich für ein fertig geflashtes Set interessieren, wobei ich schon vorhabe, das ganze auch noch selbst nachzubauen. Wieder mal ein sehr interessanter Beitrag.
Falls noch vorhanden, wäre es nett, wenn Du Dich meldest.
Gruß Carsten