Nextion Display get function

Servus meine lieben.

Ich arbeite aktuell an meinem Abschlussprojekt für eine Techniker-Schule.
Dort haben wir die Grundlagen der C-Programmierung kennengelernt.

Ich benutze als Hardware:

  • Arduino Mega 2560
  • NextionDisplay 3.5 inch
  • MotorShield
  • HX711 LoadCell
  • DC Motor

Ich befasse mich in diesem Topic mit dem Nextion Display.

Wenn man mit dem Nextion Display arbeitet, verwendet man um die Grafische Oberfläche zu verändert den Nextion Editor.

Ich habe 3 Buttons:

  • "Start" b2 [id 5; page 0] mit einem Touch press Event [1] der über die serielle Schnittstelle folgenden Code sendet :
    65 00 05 01 FF FF FF

  • "+" b0 [id 3; page 0] mit einem Touch press Event [1] der über die serielle Schnittstelle folgenden Code sendet :
    65 00 05 01 FF FF FF

  • "-" b1 [id 4; page 0] mit einem Touch press Event [1] der über die serielle Schnittstelle folgenden Code sendet :
    65 00 04 01 FF FF FF

  • Number n0

In meinem Arduino Sketch sieht es wie folgt aus :

byte cmd [7]; // Byte array mit dem Index 7

// Funktion um den RX Buffer zu lesen (Empfänger)
void readRXBuffer() {
int index = 0;
while (Serial2.available()) {
cmd[index] = Serial2.read();
index++;

}
}

//Da der Mega über mehr als 1 serielle Schnittstelle verfügt, habe ich mich beim Nextion-Display für die 2 Schnittstelle entschieden

void setup() {

Serial.begin(9600);
Serial2.begin(9600);
}

void loop() {

if (Serial2.available()){
readRXBuffer();

/ Button "+"

if (cmd [2] == 0x03){
counter++;
Serial.print("Zähler:");
Serial.print(counter);
}

// Button "-"

if (cmd [2] == 0x04)
{
if (counter >0){
counter--;
}
}

// Motor Start Button
if ( cmd [2] == 0x005)
{
Serial2.print("get n0.val");
}
}
}

Im Nextion Editor habe ich auf dem "+" und "-" Button:

n0.val++ oder n0.val--

Jedes Mal wenn ich den Button drücke, dann zeigt der Display mir die Zahl an.

Nun möchte ich die get Funktion benutzen.

get n0.val ist eine eigene Funktion von Nextion.

Wie kann ich diese in meinem Arduino Abfragen?

Da hilft ein Blick in die Dokumentation des Nextion.

Returncodes 0x70 get Zeichenkette, 0x71 get Zahl

Gruß Tommy

Die Behandlung der Kommunikation mit dem Nextion wird so nicht stabil funktionieren.

Die irrige Annahme dass die ganze Nachricht in einem Stück kommt,
keinerlei Beachtung der Delimiter,
dauerndes Überschreiben des Empfangsbuffers,
all das trägt nicht gerade zum reibungslosen Ablauf bei.