Forum: Mikrocontroller und Digitale Elektronik Nextion Display Erfahrungen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Markus W. (mw73)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich hätte euch bezüglich dieses Herstellers um eure Meinung gebeten.
https://nextion.tech/
Ich würde mir für mein aktuelles Projekt gerne dieses TFT anschaffen, da 
der Preis sehr verlockend ist und ich meinen Controller "entlasten" 
möchte. Weiters gibt es für die 8-bit AVR ohnehin nur begrenzt taugliche 
TFT's.
Ich würde mir entweder die 5" oder die 7" Variante ordern.

https://nextion.tech/datasheets/nx8048t050/

https://nextion.tech/datasheets/nx8048t070/

Jetzt meine eigentlichen Fragen:
Hat jemand Erfahrung mit diesen Displays und kann eine Kaufempfehlung 
abgeben.

Sind diese Modelle überhaubt für die AVR-Controller geeignet - Der 
Hersteller wirbt ja für Kompabiblität zu Arduino, Raspi und ESP.

Da die Displays über rx/tx angesteuert werden, denke ich mal, dass es 
egal ist, welcher Controller verwendet wird.

Wie aufwändig ist der Umgang mit dieser Software (Nextion-Editor), wobei 
ich eher einfache Sachen darstellen möchte.

Vielleicht ist auch jemand der Meinung, dass ein Alternativprodukt 
besser geeignet ist aus irgendwelchen Gründen.

Danke im voraus.

LG Markus

von Joggel E. (jetztnicht)


Bewertung
0 lesenswert
nicht lesenswert
Ja, die Dinger sind gut. Ich verwende sie auch. Du kannst eine 
Simulation in der downladbaren IDE anschauen. Hinten drauf ist eine 
kleine 32bit mschine welche das Processing macht. Das interface is TTL 
UART, bedeutet RS232 ohne 232 Teiber, dh mit TTL interface. dh HCMOS.

: Bearbeitet durch User
von Programmierer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Markus W. schrieb:
> Ich würde mir für mein aktuelles Projekt gerne dieses TFT anschaffen, da
> der Preis sehr verlockend ist

Diese Nextion-Displays sind sehr teuer. Das eigentliche Display macht 
nur einen Bruchteil des Preises aus; der Rest ist der integrierte 
Controller und dessen Software.

z.B. https://www.itead.cc/nextion-nx8048t050.html hier $64

Für das Geld kannst du z.B. auch ein 32F469IDISCOVERY Board kaufen (z.B. 
$62 bei digikey). Das enthält ebenfalls ein 800x480 Display (allerdings 
nur 4"), ist aber ein komplettes uC-Evaluierungs-Board. Den uC kannst du 
frei programmieren, und mithilfe von existierenden GUI-Bibliotheken 
(z.B. STemWin) GUIs bauen. Weil du den Display-Inhalt auf dem 
leistungsfähigen Controller berechnen, auf dem SDRAM (16MB) speichern 
und dann direkt per Parallel-"RGB"-Schnittstelle zum Display schicken 
kannst, kannst du auch bei komplexen Grafiken und Animationen sehr kurze 
Latenzzeiten erreichen. Es gibt auch viele ähnliche Boards auch von 
anderen Herstellern, vielleicht auch eines mit größerem Display. ggf. 
kann man auch eigene Displays per MIPI oder RGB anschließen.

Bei so smarten Displays wie Nextion & Co muss man alle Daten erstmal 
durch die langsame UART-Schnittstelle quetschen. Für die im 
Nextion-Controller vorgegebenen Grafikelemente reicht das, aber wenn man 
eigene (live berechnete) Grafiken da durch schicken möchte wird's 
langsam.

IMO sind Nextion & Co Bauenfänger. Dort werden billige Displays zusammen 
mit einer auf dem Controller vorinstallierten Software für teuer 
verkauft und suggerieren dabei, dass es nicht anders ginge. Dabei ist 
o.g. Alternative billiger und leistungsfähiger; der "Nachteil" besteht 
nur darin, dass man eben eine GUI-Bibliothek in den eigenen Code 
integrieren muss, statt sie über UART anzusteuern. In beiden Fällen 
nutzt man letztlich  eine zugelieferte Software-Komponente, nur dass 
Nextion & Co die auf einen externen Controller auslagern.

Indem man selbst einen Grafikfähigen Controller (wie STM32F469, aber es 
gibt auch viele andere) nutzt, spart man sich den externen Controller, 
kann alles direkt integrieren und hat auch noch die Kontrolle über 
alles.

Der einzige wirkliche Grund Nextion & Co zu verwenden wäre, wenn man 
einen ganz bestimmten Controller einsetzen muss der keinen 
Display-Controller enthält. Aber selbst dann würde ich mir überlegen 
statt Nextion so ein Board wie gezeigt zu verwenden, die GUI-Logik 
komplett darauf zu implementieren und dann zum Spezial-Controller nur 
noch anwendungsspezifische Befehle zu schicken.

von Jens M. (schuchkleisser)


Bewertung
1 lesenswert
nicht lesenswert
Programmierer schrieb:
> Bei so smarten Displays wie Nextion & Co muss man alle Daten erstmal
> durch die langsame UART-Schnittstelle quetschen.

Dafür sind die genau nicht.
Du erstellst das Nextion-Programm mit dem Freeware-Editor, der im 
übrigen auch eine Test/Simulationsfunktion hat, und spielst das Programm 
da auf.
Über die serielle Schnittstelle (die übrigens 3,3V-Pegel hat, auch bei 
5V Versorgung!) kannst du quasi Variablen mit Werten füllen, den Rest 
macht das Display.
Du legst z.B. ein Feld an (Position, Größe, Schriftart) und gibst ihm 
den Namen "Status".
Dann kannst du über die Schnittstelle einfach "Status.txt='blablabla'" 
schicken und das Ding zeigt in der gewählten Schriftart "blablabla" an, 
in genau diesem Schriftfeld.
Wenn du Farben oder Schriftarten wechseln willst (Fehlermeldung z.B.) 
geht das ebenso, einfach "Status.color=red" schicken und die Schrift 
wird rot. (Ja ich weiß, der befehl ist nicht color und der value nicht 
red, aber you get the idea).

Ähnlich geht es mit Buttons: du hinterlegst den Namen "Alarm" und wenn 
einer draufdrückt, schickt das Display "Alarm.status=on" (oder 1, H, 
aktiv, ganz egal, was immer du für den aktiven Status hinterlegt hast 
als Meldung).

D.h. deine Controlleranwendung muss nur relativ kurze Texte senden und 
empfangen, mehr nicht.
Ich habe z.B. 32 GIFs auf dem Display gespeichert und ein kleines Script 
ebenso, und wenn ich "Pumpe.val=1" sende, fängt sich im Display die 
Pumpe an zu drehen, weil das Display völlig ohne Zutun die GIFs 
durchschaltet (nein, das GIF ist nicht animiert,und man kann stattdessen 
auch PNG, JPG oder BMP nutzen), und bei "Pumpe.val=0" läuft sie aus und 
bleibt auf einer Parkposition stehen.
Das gleiche Bild an anderer Stelle kann mit wenig Speicherverbrauch 
nochmal genutzt werden und sich völlig unabhängig drehen.

Ähnlich geht z.B. ein Bildschirmschoner/Energiesparmodus: Das Display 
macht alleine per Script irgendwann das Licht aus, das merkt der 
Controller nicht mal. Ein Tipper und es ist wieder an. Vollkommen ohne 
Datenverkehr oder Unterstützung seitens des Controllers.

Und die Programmierung lässt sich jederzeit via µSD-Card aktualisieren, 
wenn dir das Bild mit der Pumpe nicht gefällt, machste ein neues rein, 
Gerät aus, Karte rein, einschalten, ausschalten, Karte raus, 
einschalten, freuen.
Dazu muss man den Controller nicht umflashen, für ihn ist immer noch 
"Pumpe.val=1" das Zauberwort zum drehen.

Programmierer schrieb:
> In beiden Fällen
> nutzt man letztlich  eine zugelieferte Software-Komponente, nur dass
> Nextion & Co die auf einen externen Controller auslagern.

Man muss die Nextion-Bibliotheken nicht benutzen, wenn man selber UART 
bedienen kann oder will.
Das ist bei einem nativen GUI anders.

Programmierer schrieb:
> Aber selbst dann würde ich mir überlegen
> statt Nextion so ein Board wie gezeigt zu verwenden, die GUI-Logik
> komplett darauf zu implementieren und dann zum Spezial-Controller nur
> noch anwendungsspezifische Befehle zu schicken.

Genau das ist ein Nextion?!

Programmierer schrieb:
> Der einzige wirkliche Grund Nextion & Co zu verwenden wäre, wenn man
> einen ganz bestimmten Controller einsetzen muss der keinen
> Display-Controller enthält.

Es ist einfacher und flexibler zu programmieren, z.B. für Arduinos.
Klar, wenn man ein GUI-Spezi ist, ist das kein Problem.
Aber ein Nextion kann mit Statusmeldungen via UART umgehen, die man 
einfach per serial.print(); verschicken kann, den Rückkanal braucht man 
nur wenn man auch Befehle auswerten muss, als Statusanzeige reicht ein 
Txd. So einfach bekommst du an einen Programmieranfänger kein Display, 
das "Windows" aussieht.

von Programmierer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Jens M. schrieb:
> Du erstellst das Nextion-Programm mit dem Freeware-Editor ...

Ja das ist ja alles schön und gut, aber das ist alles nur 
GUI-Programmierung, das ist nicht exklusiv Nextion.

Jens M. schrieb:
> Ich habe z.B. 32 GIFs auf dem Display gespeichert und ein kleines Script
> ebenso, und wenn ich "Pumpe.val=1" sende, fängt sich im Display die
> Pumpe an zu drehen,

Wie wäre es statt so eines Skripts einen C(++)-Code zu haben, welcher 
die Pumpen-Animation erzeugt? Das kann man mit "setPump(1)" ebenso 
leicht aufrufen.

Jens M. schrieb:
> Man muss die Nextion-Bibliotheken nicht benutzen, wenn man selber UART
> bedienen kann oder will.

Doch. Auf dem Controller des Nextion ist eine Software(bibliothek). Die 
benutzt (und bezahlt!) man immer mit.

Jens M. schrieb:
> Genau das ist ein Nextion?!

Stimmt, wenn man es vom PC aus vorprogrammiert.

Jens M. schrieb:
> Klar, wenn man ein GUI-Spezi ist, ist das kein Problem.

Auf dem PC schaffen es absolute Anfänger mit GUI-Bibliotheken wie Qt, 
MFC, Gtk ... auch GUIs zu bauen. Warum auf Controllern mit STemWin & Co 
nicht? PC's verwenden auch keine Nextion-Displays, wo ist der 
Unterschied zum Controller?

Jens M. schrieb:
> Es ist einfacher und flexibler zu programmieren, z.B. für Arduinos.

Mit einem kleinen AVR-Arduino den dicken Controller im Nextion 
(Größenordnung Cortex-M4) zu steuern ist ein Schwanz der mit dem Hund 
wackelt... Da finde ich es logischer einfach nur einen großen Controller 
mit GUI-Bibliothek zu haben und den AVR wegzuoptimieren. o.g. Eval-Board 
ist sogar Arduino-kompatibel.

Jens M. schrieb:
> So einfach bekommst du an einen Programmieranfänger kein Display,
> das "Windows" aussieht.

Sicher? GUI-Bibliotheken haben bestimmt auch eine "printText()" 
-Funktion.

Ich sehe den Vorteil nicht, die Befehle über UART zu verschicken, wenn 
man sie auch direkt in einer "lokalen" GUI-Bibliothek aufrufen kann. Und 
dass das einzig wahre und beste GUI-System nur in Nextion-Displays, aber 
nicht in eigenständigen GUI-Bibliotheken zu finden ist, glaube ich 
nicht.

von Jens M. (schuchkleisser)


Bewertung
1 lesenswert
nicht lesenswert
Programmierer schrieb:
> Ja das ist ja alles schön und gut, aber das ist alles nur
> GUI-Programmierung, das ist nicht exklusiv Nextion.

Nuja, für ein Nextion schon, und du kannst eben im GUI-Editor die GUI 
bauen.
Du hast nur mikrominimal mit Code zu tun.
Eigenschaftenfelder und Mausklicken, das war's.

Programmierer schrieb:
> Wie wäre es statt so eines Skripts einen C(++)-Code zu haben, welcher
> die Pumpen-Animation erzeugt? Das kann man mit "setPump(1)" ebenso
> leicht aufrufen.

Kann ein kleiner Arduino nicht. Und: mein Arduino kann die Pumpe drehen 
lassen, ohne sich damit zu beschäftigen. Deine komplettGUI muss immer 
bedient werden, das braucht deutlich mehr Rechenpower.
Du vergleichst hier Äpfel und Schrauben. ;)

Programmierer schrieb:
> Auf dem Controller des Nextion ist eine Software(bibliothek). Die
> benutzt (und bezahlt!) man immer mit.

Korrekt. Deine Lösung mit dem gleich teuren Direktcontroller braucht 
aber sehr viel mehr Programmieraufwand.
Nextions sind die Arduinos im Displaybereich. Die können nicht alles, 
aber man kann als Anfänger schon durchaus professionell aussehende GUIs 
erzeugen.

Programmierer schrieb:
> PC's verwenden auch keine Nextion-Displays, wo ist der
> Unterschied zum Controller?

150€ für das umzu laufende Windows.
Gibt es eigentlich ein Windows für Atmega328P? ;)

Programmierer schrieb:
> Und
> dass das einzig wahre und beste GUI-System nur in Nextion-Displays, aber
> nicht in eigenständigen GUI-Bibliotheken zu finden ist, glaube ich
> nicht.

Ist es auch nicht. Beide Systeme haben ihre Berechtigung.
Einen Videoplayer auf Nextion kannst du vergessen, aber jemand der noch 
Steckbretter benutzt, wird kaum ein komplettes "Windows" auf einem 
Controller hinbekommen. Und mit deiner Lösung müsste er das tun.
Und: Nextions haben z.B. den Vorteil, das die Steuerung versteckt 
untergebracht ist, das Display dagegen als bequemes Handteil mit einer 
dünnen 4-poligen Leitung angebunden werden kann. Und es ist dem 
Controller egal, ob 2 oder 12 Zoll, weiß er nicht, muss er nicht wissen. 
Ebenso Sprache, Farbe, Hintergrund, Textanordnungen. Kann man einfach 
via SD-Card im Display umstellen.
Für diesen speziellen Fall ist ein all-in-one im Nachteil. Was bei einem 
Einzelstück z.B. fein ist: du bastelst mit 2,4" los, und wenn alles 
läuft, merkst du das ein 5er schicker wäre. Kein Problem, an der 
Steuerung musst du nix ändern.

von Johannes S. (jojos)


Bewertung
0 lesenswert
nicht lesenswert
es gibt noch 'alternative' Nextion die die Hälfte kosten, aber die 
möchten die Chinesen nur für sich behalten: die TJC.
siehe: 
https://unofficialnextion.com/t/nextion-and-tjc-whats-the-difference/20
Im Nextion Forum darf man die nicht erwähnen und es wird geleugnet das 
es die gleiche Hardware ist.

Mit dem Nextion ist ein Layout natürlich schnell zusammengeklickt, bei 
vielen einfachen Libs ist das viel Handarbeit.
Ich konnte mich bisher auch nicht dazu überwinden sowas zu kaufen, hatte 
die schon gesehen als die noch ein Crowdfunding Projekt waren. Aber die 
STM32 haben mittlerweile soviel Power das man damit auch gute Grafik 
hinbekommt, die sind mir persönlich auch lieber. Ein Sandwich aus 
STM32F407 und TFT kostet etwas über 20€ und schafft auch einiges.

von Markus W. (mw73)


Bewertung
0 lesenswert
nicht lesenswert
Ich bedanke mich zwischenzeitlich einmal für die wirklich interessanten 
Gedankenansätze.
@Programmierer - ich werde mir die diversen Boards mal genauer ansehen. 
Klingt jedenfalls interessant. Danke für die Info.

@Jens - Du sagtest, dass die Nextion 3v3 Pegel an der seriellen 
Schnittstelle erwarten. Wenn ich da einen AVR dranhänge mit 5V 
Versorgung, brauche ich dann einen Levelshifter - oder hab ich da was 
falsch verstanden. Die Arduinos werden doch auch mit 5V versorgt?

@Johannes - Wo bekommt man denn so einen Clon?

LG Markus

von Johannes S. (jojos)


Bewertung
0 lesenswert
nicht lesenswert
Bei Ali findet man was unter ‚tjc display‘, wieweit die kompatibel sind 
weiß ich nicht. Wie ich das verstanden habe laufen die mit der 
chinesischen Editorversion oder evtl. irgendwelchen Hacks, da muss man 
sich durch das inoffizielle Forum lesen. Sind leider closed source die 
Nextion.

von TR.0LL (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Die Nextion-Displays sind ganz gute Display nur die Dokumentation ist 
etwas dürftig.

von Jens M. (schuchkleisser)


Bewertung
0 lesenswert
nicht lesenswert
Markus W. schrieb:
> Wenn ich da einen AVR dranhänge mit 5V
> Versorgung, brauche ich dann einen Levelshifter - oder hab ich da was
> falsch verstanden.

Ja, solltest du.
Laut Datenblatt kommen 3V raus und 5V rein ist ok, aber 3V ist für einen 
5V Controller eng mit der H-Erkennung, das kann Probleme machen, geht 
aber oft gut. Wenns dann längere Strippen gibt oder wärmer wird oder so, 
spinnt die Kiste rum.

von Markus W. (mw73)


Bewertung
0 lesenswert
nicht lesenswert
Jens M. schrieb:
> Laut Datenblatt kommen 3V raus

Danke für die Info.
Da muss wohl ein Levelshifter her, vorausgesetzt ich bestelle so ein 
Teil.

LG Markus

von Joggel E. (jetztnicht)


Bewertung
0 lesenswert
nicht lesenswert
Die Nextion kauft man bei aliexpress :
fuer ein 2.4" 16$
         3.2" 22$
         3.5" 26$

Wenn man mit 10" klotzen will ist es etwas teurer. Der Vorteil eines 
solchen displays ist die Zuverlaessigkeit des Systems. Das bleibt so gut 
wie der kleine AVR oder PIC, waehrend es eher schwierig ist ein 
zuverlaessiges System mit einer 32 bit maschine selbst zu bauen.

: Bearbeitet durch User
von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Wenn man die Idee dieser Displays weiter spinnt, landet man bei einem 
Tablet mit Web Browser.

von Markus W. (mw73)


Bewertung
0 lesenswert
nicht lesenswert
Danke auch euch Beiden für eure Beiträge.
Ich werde es einmal riskieren und mir ein solches Teil ordern.

Thread kann geschlossen werden.

Danke mochmal an alle für eure Beiträge.

LG Markus

von Jens M. (schuchkleisser)


Bewertung
0 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:
> Wenn man die Idee dieser Displays weiter spinnt, landet man bei einem
> Tablet mit Web Browser.

Es gab mal ein Projekt, bei dem ein ESP8266 einem anderen Prozessor als 
EEPROM gedient hätte.
Von der Controllerseite aus ein nichtflüchtiger Speicher, der 
Einstellungen dauerhaft speichern kann, aber auch Livedaten.
Vom Web aus eine Konfigurationsseite oder ein rudimentäres GUI, das 
Auswahlknöpfe, Hakenfelder, Textfelder und Zahlenfelder anzeigen oder 
auch eingeben konnte.

Damit war es wie hier einem Displaylosen Gerät möglich, bequem 
konfiguriert zu werden oder auch aktuelle Zustände anzuzeigen, für den 
Fall das das die meiste Zeit nicht nötig ist, z.B. wie bei 
Zeitschaltuhren.
Dabei wurde die EEPROM-Definition via Web hochgeladen, d.h. für den z.B. 
Arduino ein normaler Standard-EEPROM mit sogar sehr viel Speicher 
(256kByte?), für den User eine Webseite, in der er frei alles 
konfigurieren kann. Der Controller sieht nur den Speicher.
Anschluss nur SDA und SCL und evtl. IRQ oder Reset, zum Neuladen der 
Settings.

von Al. K. (alterknacker)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich das sogar schaffe!
Bluetooth Nextion und Mega
Steuerung für eine Modelleisenbahn


..später auch mit WLan!

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.