Die Nextion Displays haben lediglich eine Serielle Schnittstelle und benötigen eine Spannungsversorgung von 5V. Zur Ansteuerung bietet sich daher ein ESP8266, z.B. Wemos D1 Mini, an. Einfach die 4 mitgelieferten Drähte des Nextion Displays auf die Pfostenstecker des D1 Mini stecken, USB Kabel anschließen und es kann los gehen.

Ich habe für den ESP8266 ein Sketch geschrieben, mit welchem die Anbindung an Loxone ohne Programmierkenntnisse erfolgen kann. Der ESP8266 agiert dabei quasi als „Gateway“ zwischen Nextion und Loxone.


Das ganze Projekt ist noch im Alpha Stadium, die Dokumentation (also diese Seite) ebenfalls. Wer es gerne mal testen möchte kann das aber natürlich gerne machen:

Download: Nextion4Lox_0_1.zip



Features:

Installationsanleitung:

  1. Arduino Software herunterladen und installieren: https://www.arduino.cc/en/Main/Software. Ich nutze die ganz normale Arduino IDE, es gibt aber auch eine APP aus dem Windows Store und eine Web Version.
  2. Board informationen für den ESP installieren:
    1. Unter Datei den Menüpunkt Voreinstellungen auswählen
    2. In dem Textfeld Zusätzliche Boardverwalter URL's folgendes eintragen: http://arduino.esp8266.com/stable/package_esp8266com_index.json. Sollte bei euch dort schon etwas drin stehen einfach mit einem Komma getrennt hinzufügen
    3. Unter Werkzeuge → Board → Boardverwalter auswählen und in dem nachfolgenden Fenster nach ESP suchen und installieren.
  3. Benötigte zusätzliche Bibliotheken:
    1. Um das Nextiondisplay zu updaten verwende ich die Bibliothek ESPNexUpload, diese kann unter https://www.arduinolibraries.info/libraries/esp-nex-upload gedownloaded werden. Dann entpacken und in das Verzeichnis Dokumente/Arduino/Libraries kopieren
  4. Dann das Zip File downloaden und nach Dokumente/Arduino entpacken.
  5. Arduino starten und das Projekt öffnen
  6. Das passende Board auswählen und den ComPort etc. einstellen:



  7. Sketch → hochladen
  8. aus dem Data Verzeichnis die Datei cl_conf.txt anpassen, Beschreibung siehe weiter unten.
  9. Werkzeuge → ESP8266 Sketch Data Upload
  10. ESP mit dem NextionDisplay verbinden:
    1. Rot → 5V (Achtung: je nach Display und Controller ist der Strom zu groß! Dann das Diplay separat einspeisen, bzw. beides über die 5V Pins und nicht per USB!)
    2. Schwarz → G
    3. Blau → D1
    4. Gelb → D2
  11. TFT Datei aus dem Nextion Editor aus das Display laden:
    1. per SD-Karte, hierfür die Datei auf die SD Karte spielen, SD in Display einstecken und Spannung aufgeben, das Update startet dann automatisch. Nach dem Update SD-Karte entfernen und Display neu starten (Spannung weg und wieder dran)
    2. oder per Web Browser (Ist einiges langsamer als per SD-Karte): http://IP_Eures_ESP aufrufen und den Button Durchsuchen betätigen, Datei auswählen und danach auf Upload klicken. Die Datei wird nun lediglich hochgeladen und die Größe dadurch ermittelt. Danach muss die Datei nochmals hochgeladen werden! Das kann dann eine Weile dauern, im Display sollte der Progress angezeigt werden.
  12. Und nun sollte es schon funktionieren.


cl_conf.txt:

In dieser Datei stehen die grundlegenden Einstellungen:

   ssid=YourSSID;psk=YourWLANPassword;
   hostname=NEXTION;
   url=YourMiniServerURL;
   timetosleep=10000;
   wakeontouch=1;
   nexwifistatus=page0.p0.pic=;

Jede Zeile muss mit einem Simikolon abgeschlossen werden! Keine Leerzeichen!

ssid, psk und hostname sind wohl selbsterklärend.

url; hier muss die URL eures Miniserver im Format http://Benutzer:Passwort@AdresseMiniserver/dev/sps/io/ eingetragen werden.

timetosleep: wenn das Display ohne Berührung aus gehen soll dann hier die Zeit in Sekunden angeben nach der dies geschehen soll.

wakeontouch: wenn ihr möchtet dass das Display bei Berührung wieder an geht hier eine 1 eintragen.

nexwifistatus: hier kann ein Item eingetragen werden welches an das Nextion Display übertragen wird und den W-Lan Status übergibt. In dem Beispiel würde er auf Seite0 dem Bild p0 das Bild 0 oder 1 zuweisen. Bei mir im Nextion Editor habe ich dafür ein rotes und ein grünes W-Lan Symbol als Bild 0 bzw. 1 angelegt, es wird also der Status über ein Symbol auf Page0 angezeigt.

Daten an das Display senden:

per virtuellem Http-Ausgangsverbinder:

Im virtuellen Ausgang als Adresse die IP des ESP eintragen:  http://YourESPIP

Im virtuellen Ausgang Befehl bei "Befehl bei Ein" kommt dann: /setnextion?command=

Darauf kommt dann der Befehl was ihr machen wollt bestehend aus mehreren Argumenten

z.B. id=b0.txt=;str=\v   dies setzt den Text des Button b0 auf den Wert des virtuellen Ausgangsverbinder. Hierbei gibt es mehrere Argumente die ihr Angeben könnt bzw. müsst:

Argumente:

Pflicht:

1 von 3 der der folgenden Argumente::

Optionale Argumente:

ADD, SUB, DIV und MUL werden in der Reihenfolge berechnet wie sie angegeben werden, es können auch die selben Argumente mehrfach verwendet werden, also z.B. ADD=5;DIV=2;ADD=1, wäre dann (VAL + 5) / 2 +1

Beispiel

/SetNextion?command=id=t0.txt=;ADD=4;DIV=2;DEC=2;STR_VAL=/v

id=t0.txt=    Beschreibt das Textfeld t0 in die Eigenschaft txt, also den Text des Textfeldes. Wichtig ist das = am Ende!

ADD=4        Es werden 4 zum Wert hinzu addiert

DIV=2          Das Ergebnis der Addition wird durch 2 geteilt

DEC=2         Der Wert soll 2 Nachkommastellen haben

STR_VAL=/v    STR_VAL bedeutet dass es sich um eine Zahl handelt dia als Text an das Display gesendet werden soll, anstelle des /v wird durch den Miniserver der entsprechende Wert gesendet


ToDo’s: