Nextion Display

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Nextion Display

      Hallo zusammen,

      es ist schon eine sehr lange Zeit her, das ich mich mit Bascom beschäftigt habe.
      Jetzt, in der Vorbereitung auf den Ruhestand will ich wieder mehr machen.

      Ein aktuelles Projekt lässt mich verzweifeln.

      Ich muss 2 Ventile manuell schalten und einen Füllstand anzeigen. Das ganze wollte ich mit einem Arduino und dem Nexion Display realisieren.
      Vom Programm her ( mit Tasten ) funktioniert alles
      Die Beispiele hier im Forum haben mir sehr geholfen.

      Jetzt mein Problem:

      wie kann ich mit dem PC ( und später mit dem Display ) nur über Signale RX/TX kommunizieren?
      Über den USB Anschluss funktioniert es.

      Über ein kurzes Beispiel würde ich mich freuen.
    • towaes wrote:

      Über den USB Anschluss funktioniert es.
      Wie meinst Du das? Hast Du den PC über USB mit den Ventilen verbunden? Was funktioniert?
      Du schreibst: "Ventile manuell schalten". Also NICHT vom Arduino aus, sondern mit der Hand?

      Deine finale Konfiguration soll so aussehen, wenn ich es richtig verstehe:
      Arduino steuert Ventile über serielle Schnittstelle. Arduino steuert Display. Arduino wertet Tasten am Display aus. Aurduino wertet Füllstandsanzeiger aus(?).
      Kannst Du Datenblätter verlinken vom Display, Ventilen, Füllstandssensor?
    • Hi, ich habe alles diskret aufgebaut.
      Das Ventil wird über ein Relais geschaltet.
      Die zwei Schalter sind auf Eingänge gelegt.

      Ich möchte eine Zisterne nit Frischwasser auffüllen.

      Ziel ist es die beiden Schalter durch Tasten auf dem Nextion zu ersetzen.
      Die Füllstandsanzeige soll auch auf dem Display dargestellt werden.

      Die Problematik liegt jetzt darin, daß die Visu im Debug Mode der software funktioniert.
      Das aber nur mit dem USB Kabel am Uno.

      Ich möchte aber später das über dir Rx/TX mit dem Nextion verbinden und vor Ort laufen lassen.
    • Kannst du dein Problem vielleicht etwas konkreter spezifizieren?
      Vielleicht ein Schaltbild und deine aktuelle Software aufzeigen?

      Ich kann z.B. mit Visu nix anfangen.
      Ist das eine undokumentierte Abkürzung vür Visualisierung oder eine Visualisierungssoftware Namens Visu?
      Und das Display sagt mir auch nix.
      Wie kann man da einen Schalter anschließen?
      Bild, Datenblatt?
    • towaes wrote:


      Ich möchte eine Zisterne nit Frischwasser auffüllen.

      Ziel ist es die beiden Schalter durch Tasten auf dem Nextion zu ersetzen.
      Die Füllstandsanzeige soll auch auf dem Display dargestellt werden.

      Die Problematik liegt jetzt darin, daß die Visu im Debug Mode der software funktioniert.
      Das aber nur mit dem USB Kabel am Uno.

      Ich möchte aber später das über dir Rx/TX mit dem Nextion verbinden und vor Ort laufen lassen.
      Ich habe bereits mehrere Projekte mit den NEXTION -Dispays realisiert und kann weiterhelfen.
      Gebt mir bitte etwas Zeit um ein kleines Beispiel zu kreieren.
      @towaes :
      Welches Modell hast du zur Verfügung?
    • Hi,
      zum Nextion Display hätte ich auch noch eine kleine Grundsatzfrage.
      Ist es möglich und wenn ja wie kann man auf diesem Displaytyp jpg Bilder ausgeben.
      Kann man z.B. die Bilder auf dem Display speichern (Speichergröße) und dann aufrufen.
      Bedienelemente, also z.B. Taster,so habe ich es zumindest bisher verstanden kann ich mit einem speziellen Programm
      erstellen und mit einer Seite verknüpfen
      Komisch:Dauernd hängt sich mein Rechner auf, meine Wäsche macht das nie
    • Climber wrote:

      Hi,
      zum Nextion Display hätte ich auch noch eine kleine Grundsatzfrage.
      Ist es möglich und wenn ja wie kann man auf diesem Displaytyp jpg Bilder ausgeben.
      Kann man z.B. die Bilder auf dem Display speichern (Speichergröße) und dann aufrufen.
      Bedienelemente, also z.B. Taster,so habe ich es zumindest bisher verstanden kann ich mit einem speziellen Programm
      erstellen und mit einer Seite verknüpfen
      Die verwendeten Bilder werden mit dem NEXTION-Editor in das Projekt eingebunden und können dort frei verwendet werden.
      Anschliessend wird das Projekt dann kompiliert und in das Display mittels UART oder SD-Card übertragen.
    • Kann es sein, dass Dein Problem an dem Umstand liegt, dass Du am besten über eine serielle Schnittstelle des Arduinos und nicht über den USB-Steck am Arduino arbeiten solltest?
      Ich würde nicht unbedingt über den USB-Port, sondern besser über einen TTL/USB-Umsetzer am RX/TX des Arduino arbeiten.
      Da Du ja zwei serielle benötigst, ist unter Umständen der Mega256 besser geeignet, als z.B. ein Nano oder so.
      (Muss aber nicht, den Nextion über Hardware-Uart wegen Portbuffer und Latenz, den zum PC evtl. über Software-Uart?....)
    • Peer Gehrmann wrote:

      Kann es sein, dass Dein Problem an dem Umstand liegt, dass Du am besten über eine serielle Schnittstelle des Arduinos und nicht über den USB-Steck am Arduino arbeiten solltest?
      Ich würde nicht unbedingt über den USB-Port, sondern besser über einen TTL/USB-Umsetzer am RX/TX des Arduino arbeiten.
      Da Du ja zwei serielle benötigst, ist unter Umständen der Mega256 besser geeignet, als z.B. ein Nano oder so.
      (Muss aber nicht, den Nextion über Hardware-Uart wegen Portbuffer und Latenz, den zum PC evtl. über Software-Uart?....)
      Das ist ja gerade mein Problem.

      Ich habe das Nextion 5" bestellt. Es dauert halt noch ein wenig. Also probiere ich es mit dem Debugger aus.
      Mit der USB Schnittstelle funktioniert es super.
      Wechsle ich jedoch das Kabel am PC auf einen TTL/USB-Umsetzer und am Uno auf RX/TX, funktioniert es nicht.
      Habe dann auch ein externes Netzteil angeschlossen.
      Im MCU Return Fenster wird auch nichts angezeigt

      The post was edited 1 time, last by towaes ().

    • Ich habe es jetzt mit angehängtem Programm versucht.

      Ebenfalls kein Erfolg über RX/TX.

      Habe schon der TTL/USB-Umsetzer geprüft. An einer Mitsubishi Steuerung funktioniert er einwandfrei.
      Habe mir gestern noch ein Nextion Display bestellt, da es schneller geliefert werden soll.

      Wie gesagt, im Debugger funktioniert nur die USB SSchnittstelle


      Wo habe ich hier den Gedankenfehler.
      Files
      • Nextion-1.zip

        (18.85 kB, downloaded 11 times, last: )
    • In einem anderen Thread war die Rede davon, dass der Pegel von der TTL-Seriellen Schnittstelle evtl. invertiert sein könnte.

      Mir sind in dem Programm noch 2 weitere Dinge aufgefallen,
      die vielleicht jetzt nicht das Problem sind, aber später eins werden könnten.

      Im Programm hier dimensionierst du folgendes:

      BASCOM Source Code

      1. Dim Datin(30) As Byte 'Data in Buffer
      2. Dim Datstr As String * 30 At Datin(1) Overlay
      3. Dim Din As Byte



      Ein String braucht im Ram immer 1 Byte mehr als die angegebene Länge.
      Als Overlay-String auf das Array mit 30 Byte, könnte es passieren, wenn du das letzte Byte im Array schreibst, dass dann
      der Wert in Din überschrieben wird.

      Zeilen 1 und 2 Tauschen wäre bessen und dafür dass das Array als Overlay auf den String legen. Dann ist das mögliche Problem beseitigt.

      In der ISR prüfst du (angeblich), ob 3x ein FF in folge kommt.

      BASCOM Source Code

      1. Rec_isr:
      2. Din = Udr 'Byte einlesen
      3. If Bc <= 30 Then 'byte conter kleiner als 30
      4. Incr Bc 'Byte Conter +1
      5. Datin(bc) = Din 'din nach Datin Array kopieren
      6. Else
      7. Bc = 0 'wenn byte conter größer als 30 auf null zurücksetzen
      8. End If
      9. If Din = &HFF Then 'Nextion sendet 3xFF als end marker
      10. Incr Ende
      11. If Ende = 3 Then 'wenn 3xFF angekommen Newdata=1
      12. Set New_data
      13. Ende = 0 'FF End Zähler wieder auf 0 setzen
      14. End If
      15. End If
      16. Return
      Display All


      Ich sehe das anders. Du zählst lediglich die Anzahl der ankommenden FF-Werte, die aber nicht unbedingt zusammenhängend sein müssen, um das Flag NEW_DATA zu setzen.

      Du solltest das so abändern:

      BASCOM Source Code

      1. Rec_isr:
      2. Din = Udr 'Byte einlesen
      3. If Bc <= 30 Then 'byte conter kleiner als 30
      4. Incr Bc 'Byte Conter +1
      5. Datin(bc) = Din 'din nach Datin Array kopieren
      6. Else
      7. Bc = 0 'wenn byte conter größer als 30 auf null zurücksetzen
      8. End If
      9. If Din = &HFF Then 'Nextion sendet 3xFF als end marker
      10. Incr Ende
      11. If Ende = 3 Then 'wenn 3xFF angekommen Newdata=1
      12. Set New_data
      13. Ende = 0 'FF End Zähler wieder auf 0 setzen
      14. End If
      15. Else
      16. Ende=0
      17. End If
      18. Return
      Display All
      Hinzu kam Zeile 16 und 17.

      Wenn jetzt ein FF kommt, das nächste aber kein FF ist, wird der Zähler wieder auf 0 gesetzt.

      Obwohl das Programm noch nicht läuft, muss ich doch mal erwähnen, dass
      das Progrogramm schön übersichtlich, Strukturiert und
      recht gut kommentiert ist.
      Dafür ein Lob meinerseits! a_17_af3b400f

      Weiter so!
    • Mitch64 wrote:

      In der ISR prüfst du (angeblich), ob 3x ein FF in folge kommt.
      Das hatte ich bisher auch nicht berücksichtigt, danke für den Hinweis.

      Ich werde in Kürze versuchen das Projekt so nachzustellen und dann berichten.
      Für die NEXTION -Antworten habe ich immer das Häkchen "Send Component ID" gesetzt.
      So geht es aber auch.

      Ich muss aber erst noch den Garten debuggen.............. a_38_b45e201d
    • Nach diesen zusätzlichen Zeilen:

      Source Code

      1. Config Com1 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
      2. Print "rest"; 'Befehl senden
      3. Printbin &HFF ; &HFF ; &HFF;

      klappt es mit UNO-USB und USB>TTL an Tx/Rx:
      Nextion_Output_Simu.png
      Hier ^^^^^^^^^^^^ muss natürlich die entsprechende COM angewählt sein!

      Zeile 3+4 sind optional und für die eigentliche Frage nicht relevant.

      Benutzt habe ich einen Delock Converter (Product No.83116)

      .....und den Tip von Mitch64 nicht vergessen.
      LG