Nextion - günstiges Touch-Display an FHEM (auch remote)

Begonnen von viegener, 24 März 2016, 00:06:06

Vorheriges Thema - Nächstes Thema

UweH

Zitat von: jay-jey am 05 Januar 2018, 16:09:21
Sorry für die doofe Frage: aber wie mache ich das?
Die Antwort hat Dir ext23 im ersten Satz gegeben.
Gegenvorschlag: Schau Dir esp-link an. Sehr viel einfacher zu handhaben (aus meiner Sicht...). Damit krieg ich einen ESP mittlerweile in 5 min an den Start.


Gruß
Uwe

ext23

telnet ist auch nur eine terminal Emulation. Benutze am besten Putty oder TeraTerm oder für die ganzen harten das Windows eigenen HyperTerminal (Gibts das überhaupt noch ;-) )

Du hast doch den ESP mit der Firmware geflashed, das lief über die serielle Verbindung (und einem USB Umsetzer sofern keine UART vorhanden).

Genau über diesen COM Port baust du jetzt mit einem terminal Programm eine Verbindung auf. Ich nehme mal an 9600 BAUD oder 115200 BAUD, musst mal schauen.

Wenn du damit verbunden bist kannst du die AT Befehle absetzen, am besten so:
+++AT MODE 1
+++AT STA %DeineSSID% %DeinWlanKey%

Eventuell PORT und BAUD anpassen, als BAUD nimmste 115200 musst dies aber dann auch beim Nextion einstellen, da war irgend was weil sonst das steuern geht aber nicht das Flashen, irgend was war da, Uwe weiß es sicher auch ;-)

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

jay-jey

Hallo,

danke ext23 und UweH für die Antworten. Hab es jetzt mal mit ESP-Link probiert. ESP-Link funktioniert auch ich hab den Wemos in mein Wlan bekommen. In FHEM wird auch open angezeigt nur eine Steuerung des Displays bekomme ich trotzdem nicht hin.

Was ich versucht habe:
1. Das Display an die Pins TX und RX angeschlossen. Die Example.hmi auf Display geladen und versucht über set Nextion_WZ page 4 die Seite zu wechseln. Keine Reaktion.
2. Das Display an die Pins D8 und D7 angeschlossen. Im Esp-Link bei UART auf swapped gestellt.
3. Eine einfache Test Oberfläche auf dem Display erstellt mit einem Text Feld T0.txt und versucht dies über set Nextion_WZ raw t0.txt=123: Keine Reaktion.

Was mache ich falsch? Ich habe auch im Log vom ESP-link keine Einträge das irgendwas ankommt. Im Log von Fhem kann ich auch keinen Fehler finden:

Link zur Belegung des Wemos:
https://wiki.wemos.cc/products:d1:d1_mini

FHEM LOG
2018.01.06 11:34:32 3: Nextion_DoInit Nextion_WZ: Execute initCommands :<undef>:
2018.01.06 11:34:32 1: 192.168.2.128:23 reappeared (Nextion_WZ)
2018.01.06 11:35:08 3: Nextion_DoInit Nextion_WZ: Execute initCommands :<undef>:
2018.01.06 11:35:08 1: 192.168.2.128:23 reappeared (Nextion_WZ)


ESP-link LOG:
on.ico: 200, 98ms, h=21912
247396> HTTP GET /log/text: 200, 6ms, h=22240
266521> Accept port 23, conn=0x3fff6300, pool slot 0
281433> HTTP GET /log.html: 200, 86ms, h=21856
281500> HTTP GET /log/dbg: 200, 150ms, h=20192
281555> HTTP GET /favicon.ico: 200, 87ms, h=22248
281563> HTTP GET /log/text: 200, 5ms, h=22240
292632> HTTP POST /log/dbg: 200, 123ms, h=22232
295211> HTTP GET /log.html: 200, 95ms, h=21880
295273> HTTP GET /log/dbg: 200, 157ms, h=20200
295324> HTTP GET /favicon.ico: 200, 86ms, h=22256
295342> HTTP GET /log/text: 200, 9ms, h=22256
303197> Accept port 23, conn=0x3fff63c0, pool slot 0
317377> HTTP GET /log.html: 200, 87ms, h=21864
317462> HTTP GET /log/dbg: 200, 171ms, h=20192
317510> HTTP GET /favicon.ico: 200, 86ms, h=22248
317525> HTTP GET /log/text: 200, 5ms, h=22240
323423> HTTP GET /log.html: 200, 89ms, h=21864
323492> HTTP GET /log/dbg: 200, 158ms, h=20168
323550> HTTP GET /favicon.ico: 200, 87ms, h=21888
323559> HTTP GET /log/text: 200, 6ms, h=22248
360091> HTTP GET /services/info: 200, 45ms, h=22240
366481> HTTP GET /home.html: 200, 141ms, h=22248
366551> HTTP GET /pins: 200, 44ms, h=18152
366556> HTTP GET /system/info: 200, 44ms, h=20080
366557> HTTP GET /wifi/info: 200, 47ms, h=21912
522603> HTTP GET /pins: 200, 1ms, h=22064
614763> Accept port 23, conn=0x3fff6458, pool slot 0
727112> HTTP GET /log/dbg: 200, 44ms, h=22056


sowie ein list vom Nextion:
Internals:
   CFGFN
   Clients    :NEXTION:
   DEF        192.168.2.128:23
   DeviceName 192.168.2.128:23
   FD         61
   NAME       Nextion_WZ
   NR         1216984
   NTFY_ORDER 50-Nextion_WZ
   PARTIAL
   STATE      opened
   TYPE       Nextion
   Matchlist:
     1:NEXTION  .*
   Readings:
     2018-01-06 11:40:20   cmdResult       empty
     2018-01-06 11:40:20   cmdSent         page 0
     2018-01-06 09:53:19   currentPage     -1
     2018-01-06 11:40:20   state           opened
Attributes:
   hasSendMe  1

UweH

#393
 ;)
Ein frisch ausgepacktes Nextion ist auf 9600 eingestellt, also erst mal damit ansprechen.



EDIT: Dieser Teil hat sich damit erledigt, hast Du schon  ;)
Um nochmal auf esp-link zurück zu kommen...mittels nodemcu den ESP flashen, auf einem Handy oder Tablet mit dem ESP per WLAN verbinden, im Browser die 192.168.4.1 aufrufen und den Rest auf dem Web-GUI einrichten. Sehr einfach.


Gruß
Uwe

UweH

#394
OK, wenn Du mit dem Wemos sprechen kannst, dann hakt es an der Kommunikation zwischen Wemos und Nextion. Stelle den Wemos auf 9600. Rx/Tx richtig?


EDIT: Der Grundaufbau einer Nextion-Seite ist klar?
Preinitialize Event -> bkcmd=3
Postinitialize Event -> sendme

jay-jey

Okay das mit der Baudrate habe ich geändert. Stand noch auf 115200.

RX-ESP2866 ist auf RX-Display (gelbes Kabel) und TX-ESP2866 ist TX-Display(blaues Kabel) angeschlossen.

Kann ich über die Konsole in ESP-Link Befehle an das das Display schicken? hab ihr mal ein Beispiel, hab jetzt schon etliches ausprobiert, weiß aber nicht genau ob ich jetzt FFFFFFF am Ende schreiben muss oder Serial print, etc. Gibt da etlich Kombinationen.

UweH

Zitat von: jay-jey am 06 Januar 2018, 13:12:34
RX-ESP2866 ist auf RX-Display (gelbes Kabel) und TX-ESP2866 ist TX-Display(blaues Kabel) angeschlossen.
Rx auf Tx! Wenn der Sender was sendet, muss der Empfänger zuhören...

yamfhem

...lt. der Anleitung "HM-MOD-UART-Gateway-V1.0.pdf" sind die UART pins auf swapped zu setzen!

Nein, Befehle über die ESP-Link Konsole gingen bei mir auch nicht, ich  kann da nur zusehen, was FHEM an den ESP-Link schickt, also die Kommunikation mitlesen - nicht nur im FEHM-Log was rausgeht, sondern was effektiv am ESP-Link ankommt.

@all: ich habe seit mehreren Tagen vergeblich versucht, das Display mit Wemos und Witty Boards mit ESPEasy in Version 2.0.0 und in der aktuellen ESP_Easy_Mega-20180104_xxx Version mittels Serial-Server direkt über RX/TX zum Arbeiten zu bewegen. Leider ist mir das nicht gelungen. Sowohl Sende als auch Empfang waren erst nach 2-3 Ausführungen  hintereinander zu gebrauchen. Weiß jemand warum das so ist? Ich habe angenommen, dass die hardwaremäßige Verbindung einfacher wäre als die mit Software.

Gruß yamfhem

UweH

Habt ihr denn mal den einfachsten Verbindungsaufbau versucht, den es gibt? Also einen USB/RS232-Adapter (den eigentlich jeder haben sollte) an's Display stecken und eine Verbindung mit dem Nextion-Editor herstellen. Dann das Display erst mal mit besagtem Adapter mit FHEM koppeln. Wenn das funktioniert, dann die härteren Sachen angehen.

yamfhem

... wen meinst Du jetzt? Meine ESP-Installationen funktionierten ja, nur das mit den ESP-Easy Versionen mit Hardware RX/TX die Kommunikation nicht 100% vollständig waren.

Gruß yamfhem

UweH

Ah ja, ok, dann müssen wir nur noch jay-jey auf den rechten Weg bringen  ;)

ext23

Zitat von: yamfhem am 06 Januar 2018, 18:22:28
Ich habe angenommen, dass die hardwaremäßige Verbindung einfacher wäre als die mit Software.

?!? Was bitte ist eine Hardware oder Software mäßige Verbindung? Meinst du die Flusskontrolle?!? Da kann das Display sicher keine Hardware Flusskontrolle weil die Datenleitungen dazu fehlen... Du hast doch nur RX und TX.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

yamfhem

@jey-jey: ...lt. der Anleitung "HM-MOD-UART-Gateway-V1.0.pdf" sind die UART pins auf swapped zu setzen!

Ich bin der Meinung, dass TX/RX eine serielle Schnittstelle des ESP in Hardware ist.
Die GPIO Schnittstellen (wo bei ESP-Link die RX/TX-Leitung angeschlossen wird) durch Software eine serielle Schnittstelle nachgebildet wird, also sowas wie PWM.

Gruß René

ext23

Achso das meinst du, nagut. PWM ist aber übrigens Hardware, das macht man in der Regel mit Counter. Software PWM macht kein Spaß ;-)
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

jay-jey

Hallo alle zusammen,

erst mal vielen, vielen Dank auch für die Geduld :). Ihr habt mir wirklich sehr geholfen und ich kann das Display jetzt ansteuern. Es war:
a) falsche Verkabelung (RX/TX) (sorry für diesen doofen Fehler)

b) zum anderen hatte ich noch einen Fehler beim Löten gemacht oder der Wemos hatte einen weg. Auf jeden Fall hat es gestern mal kurz funktioniert und dann ging gar nichts mehr, auch ESP-link war nicht mehr erreichbar. Als ich dann den Wemos zum flashen nochmal an den Raspberry angeschlossen habe, hat der sogar den Raspberry gegrillt. Der Raspberry will gar nicht mehr und wird nur noch warm. Also musste ich dann gestern Abend/Nacht nochmal einen anderen Wemos zusammenlöten. Denn habe ich dann heute morgen, (nachdem ich einen anderen Raspberry zusammengeschustert hatte) nochmal aufgesetzt und siehe da: Wenn man alles richtig macht dann funktioniert es auch.  :)

@yamfhem: ich habe bei meinem Versuch heute morgen nichts an den Pins verstellt. Also kein swapped oder so (siehe screenshot unten).


Ich habe mal ein paar Notizen zu meinem Ablauf etc. gemacht. Vielleicht helfen Sie ja einem anderen Anfänger bei dem Thema. Zudem habe ich auch meine Test.hmi angehängt: Die ist sehr einfach gehalten und soll eigentlich nur dazu dienen, dass man überprüfen kann ob das ganz läuft:

ESP-Link für Wemos D1 Mini installieren
https://github.com/jeelabs/esp-link

Für Raspberry Pi mit Raspbian

https://github.com/espressif/esptool

Hans@raspberrypi: pip install esptool

Wemos mit dem raspberrypi verbinden

Hans@raspberrypi:~ $ cd /dev/serial/by-id/
Hans@raspberrypi:/dev/serial/by-id $ ls
usb-1a86_USB2.0-Serial-if00-port0
Hans@raspberrypi:/dev/serial/by-id $ cd ~
Hans@raspberrypi: curl -L https://github.com/jeelabs/esp-link/releases/download/v2.2.3/esp-link-v2.2.3.tgz |     tar xzf -
Hans@raspberrypi: cd esp-link-v2.2.3/

Hans@raspberrypi: esptool.py --port /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 --baud 230400 write_flash -fs 32m -ff 80m  0x00000 boot_v1.5.bin 0x1000 user1.bin 0x3FE000 blank.bin

Ich musste zweimal flashen bevor es funktioniert hat

Mit dem Access Point vom ESP-Link per Handy, Tablet etc verbinden. 192.168.1.4
Unter Wifi Station: Switch to STA+AP mode anklicken
Wlan einrichten
Dann auf einem Computer mit der Ip des ESP verbinden.
Unter µC Console Baud auf 9600 setzen.

Display vorbereiten: HMI Dateien ins Nextion Studio laden, dann kompilieren und die TFT Datei auf die SD Karte schieben (immer nur eine TFT auf der SD Karte!).

Den Wemos vom Strom nehmen.
Das Display Verbinden:
Rot auf 5V
Schwarz auf G
Blau auf RX
Gelb auf TX

Strom auf den Nextion

FHEM
define nxt nextion 192.168.x.xxx:23

Fertig.


Links:
https://github.com/jeelabs/esp-link


https://github.com/aderusha/HASwitchPlate

https://www.banggood.com/de/D1-Mini-NodeMcu-Lua-WIFI-ESP8266-Development-Board-p-1044858.html?rmmds=search&cur_warehouse=CN

https://www.banggood.com/de/Nextion-NX3224T024-2_4-Inch-Man-machine-Interface-HMI-Screen-Kernel-In-English-p-1105052.html?rmmds=detail-top-buytogether&cur_warehouse=CN