ESP32 mit 7,5 Zoll epaper-Display als Anzeige

Begonnen von smmmo, 13 Mai 2018, 21:28:36

Vorheriges Thema - Nächstes Thema

r00t2

Zitat von: kennymc.c am 06 September 2018, 14:56:27...
Wird das Display während des Deep Sleeps noch mit Strom versorgt? Ansonsten müsste man das ja noch mit zum Verbrauch dazu rechnen.
Sollte bei einem ePaper Display zumindest nicht notwendig sein, da es seinen Inhalt auch ohne Versorgungsspannung behält.
FHEM 6.0 (Raspberry Pi 2 B | Raspberry Pi OS Lite | Perl 5.28.1 | UZB Z-WAVE.Me | Hue Bridge V1 | SIGNALDuino 433 MHz | FritzBox | Kodi | Pioneer AVR | MQTT | Node-RED | Diverse Google Dienste)

kennymc.c

Ja, genau. Deshalb meine Frage, ob der ESP32 da einfach alles kappt oder dann noch irgendwie versucht das Display mit Strom zu versorgen auch wenn es beim ePaper nicht nötig ist. Eventuell könnte man die Displayausgabe auch einfach kurz vor dem Deep Sleep Befehl deaktivieren.
Da man den ESP32 glaube ich auch über externe Schalter aus oder in den Deep Sleep versetzten kann, wäre es eventuell auch noch interessant ein Funk Relais mit daran zu hängen, um die Aktualisierungen bei Abwesenheit auszusetzen, da man sie dann ja eh nicht sieht und damit Batteriekapazität spart. Könnte allerdings sein, dass der zusätzliche Stromverbrauch der Relais den Vorteil wieder ausgleicht, je nachdem wie lange man abwesend ist.

Wernieman

1. Transi ist Stromsparender als Relais
2. Einfach beim der Anwesenheit das Display nicht mehr aktuallisieren.

Ein EPaper sollte nur Stromverbrauchen, wenn sich etwas ändert ... ansonsten wie hier schon geschrieben mal die Schaltung prüfen!
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

bart0190

Hallo,
Ich habe mir das gleiche Setup besorgt und habe nun geschafft ein .png am Raspi zu erstellen und mit FHEM Daten aktuell zu halten. Jetzt weiß ich aber nicht, wie ich weiter machen soll. Habe leider keine Erfahrung mit PHP.

Hat das vielleicht jemand kürzlich gemacht bzw. würde es klappen PHP auf dem RasPi zu haben? Und wie bekommt der ESP32 den Datenstrom, den das PHP Skript generiert?

Lg
Bart
Raspberry Pi 4 - FHEM, Homematic HM-CFG-LAN, ESP32 mit ePaper Display, Raspberry Pi 3 - BT Lokalisierung, PC - Squeezebox Server, Raspberry Pi 2 +HifiBerry - SB Player1, Raspberry Pi 2 +AVReceiver - SB Player2, nVidia Shield TV +AVReceiver - SB Player3, 2x Logitech Harmony Hub, echo dot Gen3

smmmo

Naja, das Vorgehen für die Software auf dem ESP32 ist unter https://www.heise.de/select/ct/2018/2/1515453575487133 beschrieben. Dort habe ich mich bedient. Oder verstehe ich dich falsch?

Grüße
smmmo

bart0190

Hallo smmmo,
Danke für die super schnelle Antwort. Ja, den c't Artikel habe ich soweit durchgemacht, dass nun ein .png am Raspi (via FHEM) erstellt wird. Der ESP32 steuert das Display mit dem Demobeispiel richtig an und auch in mein WLAN kommt er korrekt rein. Das c't Arduino Programm lädt auch richtig runter. Jetzt hab ich beim ersten Start nach dem c't Programm download die Möglichkeit WLAN Settings MQTT Server und Ordner, wo das Bild liegt, einzugeben. Da stehe ich nun aber an: Der ESP versteht ja das Kindle .png so nicht und dazu braucht es ja dieses PHP Script.

Muss ich nun das Bild auf einen Server kopieren und dort mit PHP umwandeln? Oder kann ich (einfacher?) über den Raspi gehen, wo ich die Umwandlung mit dem im c't gezeigen PHP Skript mache? Was muss ich dazu wo installieren, damit ich wenig (oder gar nichts) im Code anpassen muss.
Bin da leider unerfahren aber sehr dankbar für jeden Hinweis.

Lg
bart
Raspberry Pi 4 - FHEM, Homematic HM-CFG-LAN, ESP32 mit ePaper Display, Raspberry Pi 3 - BT Lokalisierung, PC - Squeezebox Server, Raspberry Pi 2 +HifiBerry - SB Player1, Raspberry Pi 2 +AVReceiver - SB Player2, nVidia Shield TV +AVReceiver - SB Player3, 2x Logitech Harmony Hub, echo dot Gen3

smmmo


bart0190

Ah, da hab ich glaub ich früher beim Durchlesen was falsch verstanden.  ::)
d.h. der nginx server ist zusätzlich am Raspi installiert, richtig?

Dann werd ich mich mal an das Thema machen.
Ich hoffe ich darf mich wieder melden, da ich sicher noch die eine oder andere Frage habe. :)

Danke schonmal soweit.
lg
bart
Raspberry Pi 4 - FHEM, Homematic HM-CFG-LAN, ESP32 mit ePaper Display, Raspberry Pi 3 - BT Lokalisierung, PC - Squeezebox Server, Raspberry Pi 2 +HifiBerry - SB Player1, Raspberry Pi 2 +AVReceiver - SB Player2, nVidia Shield TV +AVReceiver - SB Player3, 2x Logitech Harmony Hub, echo dot Gen3

_Niemand_

hallo bart0190,

läuft bei Dir jetzt das eInk-Display mit den Werten von FHEM?
Ich hätte auch Interesse an so einer Display-Lösung, hatte ich bislang zum einen auch das mit den nginx server nicht verstanden (wie installiert man den? Gibts irgendwo eine leichte Anleitung?).
Zum anderen würde mich interessieren, ob die Schrift auf den eInk auch wirklich "scharf" angezeigt wird (da hatte ich auch meine Zweifel beim Lesen des Blogs). Wie läuft da bei Dir?
Als Alternative käme bei mir noch das Nextion-Display (siehe hier https://forum.fhem.de/index.php/topic,51267.0.html ) in Betracht nur scheint das auch ziemlich kompliziert zu sein - wenn der Blog 41-Seiten hat ;)

bart0190

Hallo _Niemand_,
Nein, den Server hab ich noch nicht installiert, aber bis jetzt alle Details was zu tun ist mitgeschrieben. Wenn ich (hoffentlich erfolgreich) fertig bin, werde ich alle Schritte posten.
Ich hoffe ich komme in 1-2 Wochen dazu daran weiterzuarbeiten.
Ich hoffe smmmo hat dann auch etwas Zeit (und Nerven) die eine oder andere Frage zu beantworten. :-)

Lg
bart
Raspberry Pi 4 - FHEM, Homematic HM-CFG-LAN, ESP32 mit ePaper Display, Raspberry Pi 3 - BT Lokalisierung, PC - Squeezebox Server, Raspberry Pi 2 +HifiBerry - SB Player1, Raspberry Pi 2 +AVReceiver - SB Player2, nVidia Shield TV +AVReceiver - SB Player3, 2x Logitech Harmony Hub, echo dot Gen3

_Niemand_

hallo bart,

danke fürs Update ... dann drücke ich Dir mal die Daumen  ;)
Und würde mich sehr über (hoffentlich einen Erfolgs-)Bericht freuen...

Viele Grüße
_Niemnand_

bart0190

#26
Hallo smmmo,
Ich habe nun einen nginx auf dem Raspberry (dort wo ich auch FHEM laufen habe) und auch PHP installiert. Der nginx und PHP funktioniert auch richtig, hab ich getestet.
Jetzt stehe ich aber ein wenig an.
Kannst du mir bitte einige Hinweise geben?

Folgende Verzeichnisse habe ich:
nginx Server
hier liegt ein dummy index.php, welches testet, ob PHP funktioniert:
/var/www/html

Das server-Verzeichnis von https://github.com/jamct/DoorsignEPD habe ich hierher kopiert
/var/www/ardu/DoorsignEPD/
Ich nehme an, das ist der gleiche Ort bei dir.

In diesem Verzeichnis gibt es aktuell nur das Beispiel .png von c't (ct.png).
/var/www/ardu/DoorsignEPD/server/contents/static_image

Dann habe ich die Konfigurationsdatei von nginx Server angepasst (an dein Beispiel gehalten):   
sudo nano /etc/nginx/sites-available/default

# Default server configuration
#
server {

listen 80
# listen 80 default_server;
# listen [::]:80 default_server;

root /var/www;
index index.php;
server_name xxxDERNAMEDERNACHDEMRASPILOGINSTEHTxxx;

location /ardu {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
root /var/www;
index index.php;

allow 192.168.178.0/24;
  deny all;

location ~ ^/ardu(/.+?\.php) {
root /var/www;
fastcgi_index index.php;
fastcgi_param PATH_INFO $1;
include fastcgi.conf;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
}
}
}


Im /var/www/ Verzeichnis liegt keine Datei.

Das
allow 192.168.178.0/24;
verstehe ich nicht, wo das herkommt.

Dann hab ich das Arduino Programm auf den ESP32 geladen. Dann auf das WLAN vom ESP32 verbunden. Nun gibt es viele Fehlerquellen: bei der ESP32 Konfig-Page, was gebe ich da wo ein?
Device ist der Name vom ESP, wie er im WLAN erscheinen soll, richtig?
SSID ist mein Haus-WLAN und dann dessen WLAN-Passwort nehme ich stark an.
Server to load image from, ist die IP Adress von meinem nginx (also meines Raspis).

Was gebe ich nun aber bei
Address to load image from (path on server, starting with / e.g.: /index.php/?debug=false&[...] ):
ein? Mit dem Pfad (siehe Anhang) klappt es (wie zu erwarten) nicht. :)
Ich würde ja als ersten Schritt gerne mal sehen, ob das mit dem Server prinzipiell funktioniert, bevor ich das generierte Image anzeige.

Dass es noch nicht das richtige Bild nehmen kann ist mir klar, da ich noch nirgends gesagt habe, wo das alle Minuten aktualisierte Bild liegt.
Mein von FHEM kommende Bild liegt hier:
/opt/fhem/www/images
und heißt:
KindleDisplay_status1.png

@_Niemand_ : ich habe noch eine Detail-Beschreibung, die ich, wenn ich (hoffentlich) fertig bin, posten werde.

lg
bart
Raspberry Pi 4 - FHEM, Homematic HM-CFG-LAN, ESP32 mit ePaper Display, Raspberry Pi 3 - BT Lokalisierung, PC - Squeezebox Server, Raspberry Pi 2 +HifiBerry - SB Player1, Raspberry Pi 2 +AVReceiver - SB Player2, nVidia Shield TV +AVReceiver - SB Player3, 2x Logitech Harmony Hub, echo dot Gen3

smmmo

#27
Hallo bart,

das sieht alles schon gut aus. Deine Annahmen sind soweit alle richtig (device name, wifi ssid, server...).

Ich denke das Problem liegt beim Ausliefern des pngs: Damit der esp32 es darstellen kann, muss es umgerechnet werden. Das übernimmt das index.php im server-Verzeichnis für dich. D.h. die URL muss so aussehen:

/ardu/DoorsignEPD/server/index.php?display=7.5&content=static_image&scale=28


Falls es nicht gleich funktioniert, kannst du zum Test vom Rechner im gleichen WLAN einfach die URL aufrufen:

http://<ip_vom_raspi>/ardu/DoorsignEPD/server/index.php?debug=true&display=7.5&content=static_image&scale=28

Wichtig für den Test im Browser ist das debug=true. Damit wird das Umrechnen verhindert, so kann dein Browser das Bild darstellen.

Anbei noch ein Bsp von meiner Konfig.

Gruß
smmmo

bart0190

Hallo smmmo,
VIELEN DANK!!! Bin nun einen großen Schritt weiter.
c't Beispielbild, welches im
/var/www/ardu/DoorsignEPD/server/contents/static_image
liegt wird nun angezeigt.   :D :D :D
Seltsam ist nur, dass es alle 5 Sekunden nachgeladen wird bzw. flasht (sich invertiert).

Was für mich nun nicht ganz klar ist:
Muss ich mein erstelltes .png (siehe Anhang, ja da ist noch ein Grafikfehler drin  ::) ) nun nochmal umwandeln?
Habe ein Foto angehängt, es sollte noch 90° gedreht werden, aber die Schärfe ist in Ordnung. (Das Bild ist aber nur mal händisch hinkopiert).

Wie bringe ich das Bild nun in den /static_image/ Ordner? Zwei Kommandos am Raspi machen so wie folgend?
root@xxx:/var/www/ardu/DoorsignEPD/server/contents/static_image# ls -l
und dann?
root@xxx:basi.png -> /opt/fhem/www/images/KindleDisplay_status1.png
Bin da leider ganz unwissend. (sorry wenn ich da nen totalen Blödsinn schreibe)

lg
bart
Raspberry Pi 4 - FHEM, Homematic HM-CFG-LAN, ESP32 mit ePaper Display, Raspberry Pi 3 - BT Lokalisierung, PC - Squeezebox Server, Raspberry Pi 2 +HifiBerry - SB Player1, Raspberry Pi 2 +AVReceiver - SB Player2, nVidia Shield TV +AVReceiver - SB Player3, 2x Logitech Harmony Hub, echo dot Gen3

smmmo

Zitat von: bart0190 am 27 Juni 2019, 22:07:43
Seltsam ist nur, dass es alle 5 Sekunden nachgeladen wird bzw. flasht (sich invertiert).
Was hast du denn bei sleep time eingegeben? Evtl. zieht die aber auch erst im ProductionMode, da bin ich gerade auch nicht sicher.

Zitat
Was für mich nun nicht ganz klar ist:
Muss ich mein erstelltes .png (siehe Anhang, ja da ist noch ein Grafikfehler drin  ::) ) nun nochmal umwandeln?
Das erstellte png legst du in den Ordner, in dem du aktuell noch das Beispiel-Bild hast. Das Umwandeln übernimmt das php-Skript.

Zitat
Habe ein Foto angehängt, es sollte noch 90° gedreht werden, aber die Schärfe ist in Ordnung. (Das Bild ist aber nur mal händisch hinkopiert).
Ungetestet: Öffne mal index.php und such nach der Zeile

"7.5"=>array("size"=>"640x384","rotate"=>"false"),

Evtl. hilft hier die Änderung auf "rotate"=>"true"?

Zitat
Wie bringe ich das Bild nun in den /static_image/ Ordner? Zwei Kommandos am Raspi machen so wie folgend?
root@xxx:/var/www/ardu/DoorsignEPD/server/contents/static_image# ls -l
und dann?
root@xxx:basi.png -> /opt/fhem/www/images/KindleDisplay_status1.png
Bin da leider ganz unwissend. (sorry wenn ich da nen totalen Blödsinn schreibe)
Bin nicht ganz sicher was du meinst.
Irgendwo hast du ja dein generiertes png liegen, sagen wir mal in /opt/fhem/www/images/KindleDisplay_status1.png. Diese Datei wird von fhem regelmässig neu erstellt.
Damit die auf deinem epaper auftaucht, müsste sie nach jedem Erstellen nach /var/www/ardu/DoorsignEPD/server/contents/static_image/ kopiert werden.

Statt jedes Mal zu Kopieren kannst du auch einfach einen Link erstellen (am besten googeln, wenn du nicht weisst was das ist):

cd /var/www/ardu/DoorsignEPD/server/contents/static_image/
ln -s /opt/fhem/www/images/KindleDisplay_status1.png basi.png


Grüße
smmmo