ESP8266 mit OLED Scrolling Display als Füllstandsanzeige

Begonnen von dieter114, 03 Februar 2017, 11:47:30

Vorheriges Thema - Nächstes Thema

dieter114

Hallo Leute,

ich möchte hier mein erstes eigenes Projekt vorstellen:

Es soll ein ESP mit ESPEasy und OLED Display als externe Füllstandsanzeige für eine Zisterne unter fhem genutzt werden.
Benötigte Bauteile:
ESP8266 NodeMcu V3 mit 4Mb Flash und 1Mb SPIFFS (http://www.ebay.de/itm/381570405194 oder so) für 3 bis 5,-€
OLED SSD1306 Modul (http://www.ebay.de/itm/0-96-SSD1306-I2C-IIC-Serial-128X64-OLED-Anzeigemodule-LCD-LED-Display-Module-/381850736027?var=&hash=item58e813d59b:m:mBk8aUVp1VfEyjBqDPjxpYw) 4 - 6,-€
und ein altes Handyladegerät mit Mini-USB. Also alles zusammen für gut 10,-€
Im ESP-Forum könnt ihr im Post http://www.letscontrolit.com/forum/viewtopic.php?f=4&t=1149&start=50 ein Image
mit einem modifizierten Anzeigetreiber genannt FramedOLED runterladen. (Oder im Anhang :) )
Damit ist es möglich das Display mit großer Schrift (4 stufen) und auch im Scroll Modus anzusteuern.
Weiterhin wird oben im Display eine Statuszeile mit aktueller Uhrzeit, Name des Node in WIFI Feldstärke angezeigt.
Einstellungen im Menue des ESPEasy:
Unter Config dem ESP einen Namen (bei mir "Zisterne") geben.
Unter Devices das Display - OLED SSD1306 Framed auswählen und
dem Display einen Namen geben. Bei mir ist das "oledscroll".
Unter Tools / Advanced NTP Hostname (z.B.: pool.ntp.org) und
Timezone Offset 60 Minuten eintragen, damit auch die Uhr richtig angezeigt wird.

Es gibt bis zu 12 Zeilen Text, die feststehend wechseln oder durchscrollen können.

Die Ansteuerung über fhem habe ich zuerst mit HTTPGet versucht aber das System
hatte Blocking Probleme wenn der DHT nicht erreichbar war.
Einfachste Lösung HTTPMOD:
define zi_oled_up3 HTTPMOD http://xxx.xxx.178.50:80/control?cmd=oledscroll,1,Fuellstand 60
Dies bewirkt einen Text Fuellstand in der ersten Zeile, alle 60 Sek aktualisiert.
define zi_oled_up4 HTTPMOD http://xxx.xxx.178.50:80/control?cmd=oledscroll,3,Menge 60
Text Menge in Zeile 3 usw..

Die Daten Füllstand in % und Menge in Liter kommen aus einem HM Füllstandsanzeiger genannt zi_level.
define zi_oled_up1 HTTPMOD http://xxx.xxx.178.50:80/control?cmd=oledscroll,2,%Prozent%% 60
attr zi_oled_up1 userattr replacement01Mode:reading,internal,text,expression,key replacement01Regex replacement01Value
attr zi_oled_up1 replacement01Mode expression
attr zi_oled_up1 replacement01Regex %Prozent%
attr zi_oled_up1 replacement01Value { ReadingsVal("zi_level","d_level",0);; }
attr zi_oled_up1 room Garten
define zi_oled_up2 HTTPMOD http://xxx.xxx.178.50:80/control?cmd=oledscroll,4,%Menge%L 60
attr zi_oled_up2 userattr replacement01Mode:reading,internal,text,expression,key replacement01Regex replacement01Value
attr zi_oled_up2 replacement01Mode expression
attr zi_oled_up2 replacement01Regex %Menge%
attr zi_oled_up2 replacement01Value { ReadingsVal("zi_level","menge",0);; }
attr zi_oled_up2 room Garten

Sicher kann da noch eine Menge in der Formatierung gemacht werden.
Es soll ja auch nur eine Idee zu diesem Thema sein.

Schöne Grüße aus Ilsede

Wolfdieter
RPi II+III+IV,OWX,div.1W Module,HM Zisterne,div. CUL, sduino MAPLEMINI, div ESPEasy, div Tasmota, MQTT2Server,WU-Upload,TabletUI, Indego,Poolsteuerung mit fhem

Deinjo

Halloe dieter114,

sehr, sehr cool Sache. Hab das auch bei mir zum laufen gebracht. Sieht gut aus :D

Ein Problem hab ich dann doch...
und zwar kann ich über das http Komando den Inhalt der Zeilen nicht ändern. Damit geht es dann auch nicht via FHEM.

Ich habs versucht mit:
http://192.168.178.58:80/control?cmd=oledscroll,3,Menge

Bekomme darauf aber die Antwort: "Unknown or restricted command!"

Hast Du einen Tip was ich falsch Mache?

Danke
Deinjo
rPi3, Jessie, FHEM 5.7
CUL, Homematic, WeMos, FritzDect, TableUI,...

Deinjo

Hi,

ich habs...!
http://192.168.178.58:80/control?cmd=[b]<Name>[/b],3,Menge

Für <Name> muss der Name verwendete werden, denn man in der DeviceConfig festgelegt hat.

Hier das Kommando passenden zum Bild im Anhang
http://192.168.178.58/control?cmd=OLEDFramed,1,Menge

CU
Deinjo
rPi3, Jessie, FHEM 5.7
CUL, Homematic, WeMos, FritzDect, TableUI,...

dieter114

Hallo Deinjo,

genau das hätte ich Dir geantwortet.
An der Stelle hab ich auch länger gebraucht.
Hab den Post eben erst gelesen, daher die späte Antwort.
Bin gerade dabei einen 8266 ohne "alles" zu konfigurieren.
Dieser blöde 3.3V Spannungsregler ist durchgebrannt und hat das ganze Modul mitgenommen. >:(
Na ja - 3,50 € weniger.
Dabei hätte ich dann die komplette Anzeige in eine Streichholzschachtel bekommen. :(
So wird alles eben etwas größer.
Viel Spaß mit dem Modul

Wolfdieter
RPi II+III+IV,OWX,div.1W Module,HM Zisterne,div. CUL, sduino MAPLEMINI, div ESPEasy, div Tasmota, MQTT2Server,WU-Upload,TabletUI, Indego,Poolsteuerung mit fhem

Deinjo

Hi Dieter,

was meinst Du mit ein 8266 ohne alles?
Ich hab es mit einem Wemos D1 mini laufen und das ist doch auch schön klein und komfortabel

Gruß
Deinjo
rPi3, Jessie, FHEM 5.7
CUL, Homematic, WeMos, FritzDect, TableUI,...

dieter114

Na so ein ESP-12F nur die "Briefmarke" auf einem kleinen Board.
Ich habe das Teil auf so einen Träger aufgelötet und einen 3.3V Regler dazu.
Nun ist dieser Spannungsregler durchgebrannt und hat den ESP mitgenommen.
Werde mich einmal mit dem Wemos beschäftigen.
Sieht sehr klein aus und hat alles an Board ähnlich einem Arduino Board.

Gruß Wolfdieter
RPi II+III+IV,OWX,div.1W Module,HM Zisterne,div. CUL, sduino MAPLEMINI, div ESPEasy, div Tasmota, MQTT2Server,WU-Upload,TabletUI, Indego,Poolsteuerung mit fhem

Tobias

Danke für das Binary mit dem OLEDFramed. Ich baue mir auch gerade eine 8Port Bewässerungsanlage mit Pumpensteuerung aus einem 1000L Wasserbehälter mittels 3Wege-Ventil (Pumpe via Regenwasser vs. Leitungswasser) mit einem OLED zur Füllstandsanzeige und einem HC-SR04 Ultraschallmessgerät dran. Da kommt mir dein Binary gerade recht...
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

ComputerZOO

Zitat von: dieter114 am 12 Februar 2017, 12:12:26
...
Ich habe das Teil auf so einen Träger aufgelötet und einen 3.3V Regler dazu.
Nun ist dieser Spannungsregler durchgebrannt und hat den ESP mitgenommen.
...
Das ist ja eigenartig, ich hatte vor 2-3 Wochen genau das selbe Phänomen. Spannungsregler hatte sich verabschiedet und hat den ESP-12 so sehr erhitzt, dass ich mir den Finger am Gehäuse verbrannt habe.
Seitdem habe ich auf allen Systemen, in denen ich diese (Billig)-SMD-Regler verbaut hatte "ordentliche" Spannungsregler, bzw. Module verbaut.

dieter114

Hallo !
Das Problem sind die Träger ansich:
Es gibt welche, die haben einen Widerstands-Spannungsteiler eingebaut.
Wenn dazu parallel ein Spannungsregler auflötet wird, kracht es erfahrungsgemäß.
Also bitte erstmal nachsehen ob wirklich keine SMD Widerstände verbaut sind.
Gruß Wolfdieter
RPi II+III+IV,OWX,div.1W Module,HM Zisterne,div. CUL, sduino MAPLEMINI, div ESPEasy, div Tasmota, MQTT2Server,WU-Upload,TabletUI, Indego,Poolsteuerung mit fhem

Heimbastler

Hallo Leute...

ich finde die kleinen OLED Displays echt klasse als kleine Info-Geber hier und da.

Ich habe das auch probiert über ein OLEDFramed...leider ohne Erfolg. Habe ich etwas übersehen?

Hier mein Setup:
auf dem ESP:
ESP_Easy_mega-20181029_normal_ESP8266_4096.bin

Controllers:
FHEM HTTP Port 8383

Device am ESP:
Display - OLED SSD 1306/SH1106 Framed
Name:
OLEDFramed
enabled:
yes
Controler:
SH1106
I2C Address:
0x3C (default)
Rotation:
normal
Lines per Frame:
1
Scroll:
instant
Line 1:
%systime%
Interval:
1sec

und dann habe ich folgende befehle direkt im Modul ausgeführt:
diese haben nicht funktioniert:
set ESPEasy_ESP_Easy_Y_rssi oled 1 text
set ESPEasy_ESP_Easy_Y_rssi oled 1 1 text
set ESPEasy_ESP_Easy_Y_rssi oledcmd 1 text
set ESPEasy_ESP_Easy_Y_rssi oledcmd 1,text
set ESPEasy_ESP_Easy_Y_rssi oledframedcmd 1 text
set ESPEasy_ESP_Easy_Y_rssi oledframedcmd 1,text
http://192.168.178.132/control?cmd=OLEDFramed,1,text

diese haben funktioniert:
set ESPEasy_ESP_Easy_Y_rssi oledframedcmd off
set ESPEasy_ESP_Easy_Y_rssi oledframedcmd on

und in der command ref kann ich auch keine textausgabe an OLED framed finden:
* ESPEasy display related commands:
    *
    * lcd
    * Write text messages to LCD screen
    * Pay attention to attributes displayTextEncode and displayTextWidth.
        * arguments: <row> <col> <text>
        * example: set <esp> lcd 1 1 Test a b c
    *
    * lcdcmd
    * Control LCD screen
        * arguments: <on|off|clear>
        * example: set <esp> lcdcmd clear
    *
    * oled
    * Write text messages to OLED screen
    * Pay attention to attributes displayTextEncode and displayTextWidth.
        * arguments: <row> <col> <text>
        * example: set <esp> oled 1 1 Test a b c
    *
    * oledcmd
    * Control OLED screen
        * arguments: <on|off|clear>
        * example: set <esp> oledcmd clear
    *
    * oledframedcmd
    * Switch oledframed on/off
        * arguments: <on|off>
        * example: set <esp> oledframedcmd on
RasPi 3 mit FHEM V5.7 3x18B20 über 1Wire,  CUL868, 4xIT-Schalter, 6xELRO-Schalter, 6xReed-Kontakte, 2xMAX-Fensterkontakt, 3xMAX-Thermostate, 2xMAX-Wandthermostate
PID20, RPI_GPIO, HCW, Alarm, Pushover, GPIO4, MAX, ECMD,IT, AT,

Heimbastler

Hallo ich noch mal,

habe eben gelesen das es hier bezüglich Textausgabe via fhem probleme gab seid einer bestimten Version:
https://www.letscontrolit.com/forum/viewtopic.php?f=6&t=5472

Ich lade die ESPEasy Version 20180522 noch mal und berichte dann.

Nur um das noch mal klar zu machen:
Verwendet wurde der Controler SH1106.
Die normale Textausgabe geht, aber die Texausgabe via OLEDFramed ist nicht möglich.

VG
RasPi 3 mit FHEM V5.7 3x18B20 über 1Wire,  CUL868, 4xIT-Schalter, 6xELRO-Schalter, 6xReed-Kontakte, 2xMAX-Fensterkontakt, 3xMAX-Thermostate, 2xMAX-Wandthermostate
PID20, RPI_GPIO, HCW, Alarm, Pushover, GPIO4, MAX, ECMD,IT, AT,

MAC66666

Mit Framed geht das auch nicht, Du kannst nur Zahlenwerte über Dummies mit dem Oled framed anzeigen lassen. "Echter" Text geht nur ohne framed... Ist zumindest mein Kenntnisstand, der icht der Neuste ist...
FHEM @ Ubuntu 20.04 VM@ Windows 2019 Hyper-V @ NVMe
MAXCube als CUL_MAX (Thermostate)
MAXCube als SlowRF (FS20, wird durch ESPs ersetzt, teilweise geschehen)
Einige ESPs mit ESPEasy, zwei GHoma und ein Sonoff Tasmota

Heimbastler

Hallo MAC66666,

Du hast recht, OLEDframed kann nur Zahlen ausgeben. Bleibt abzuwarten wann es gehen wird. Ich mach dann mit der standard Methode vorerst weiter.

Vielen Dank
Alex
RasPi 3 mit FHEM V5.7 3x18B20 über 1Wire,  CUL868, 4xIT-Schalter, 6xELRO-Schalter, 6xReed-Kontakte, 2xMAX-Fensterkontakt, 3xMAX-Thermostate, 2xMAX-Wandthermostate
PID20, RPI_GPIO, HCW, Alarm, Pushover, GPIO4, MAX, ECMD,IT, AT,

MAC66666

Das wird nie gehen, glaube ich. Soweit ich das in Erinnerung habe, liegt das daran, dass der Scrollingtext nicht zwischengespeichert werden kann, ohne das dazu im flash zu speichern, deshalb wurde es rausgenommen, da der Flashspeicher das auf Dauer nicht aushält. Beim normalen Modul wird der Text nur einmalig im RAM verarbeitet und dann nicht mehr im Speicher gehalten.
FHEM @ Ubuntu 20.04 VM@ Windows 2019 Hyper-V @ NVMe
MAXCube als CUL_MAX (Thermostate)
MAXCube als SlowRF (FS20, wird durch ESPs ersetzt, teilweise geschehen)
Einige ESPs mit ESPEasy, zwei GHoma und ein Sonoff Tasmota

Tobias

Ich habe etwas sehr ähnliches gebaut, aber mit eigenem Sketch.  Mit Anpassungen kann auch OLEDFramed alles anzeigen ;)

Bewässerungssteuerung mit Zisternenautomatik mit ESP8266 und MQTT
https://r.tapatalk.com/shareLink?share_fid=75100&share_tid=92443&url=https%3A%2F%2Fforum%2Efhem%2Ede%2Findex%2Ephp%3Ftopic%3D92443&share_type=t


Gesendet von iPhone mit Tapatalk
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

dieter114

Hallo Heimbastler,

das mit der Software "die nicht geht" wusste ich bis heute nicht. :(
Werde mal nachsehen ob ich die alte Version bei mir finde.
Damit ist auf jeden Fall Text und Zahl möglich. :)

@Tobias: Tolle Lösung, habe nur keine Zeit zum genauen lesen.
Werde wohl erst so gegen Weihnachten wieder etwas hier machen können.

Grüße Wolfdieter
RPi II+III+IV,OWX,div.1W Module,HM Zisterne,div. CUL, sduino MAPLEMINI, div ESPEasy, div Tasmota, MQTT2Server,WU-Upload,TabletUI, Indego,Poolsteuerung mit fhem

MAC66666

Mach es nicht mit der alten Version. Dein ESP wird kaputt gehen. So zumindest die Aussagen im ESPEasy Forum. Finde den Thread allerdings gerade nicht.
FHEM @ Ubuntu 20.04 VM@ Windows 2019 Hyper-V @ NVMe
MAXCube als CUL_MAX (Thermostate)
MAXCube als SlowRF (FS20, wird durch ESPs ersetzt, teilweise geschehen)
Einige ESPs mit ESPEasy, zwei GHoma und ein Sonoff Tasmota