ich benötige dringend Hilfe bei meinem Projekt, in dem ich zum ersten Mal ein Nextion Display (NX3224T028_011) benutze!!!
Ich habe totale Probleme meine Buttons abzufragen, die ich mir erstellt habe. Um mein Problem verständlich zu erleutern, habe ich die Programmierung bis auf das betreffende Problem kompremmiert. Der Code wird bei mir auf einen Arduino Mega aufgespielt.
#include <SoftwareSerial.h>
#include <Nextion.h>
SoftwareSerial nextion(14, 15);// Nextion TX to pin 14 and RX to pin 15 of Arduino Mega
Nextion myNextion(nextion, 9600); //create a Nextion object named myNextion using the nextion serial port @ 9600bps
void setup() {
Serial.begin(9600);
myNextion.init(); // send the initialization commands for Page 0
}
void loop() {
String message = myNextion.listen(); //check for message
if (message == "65 02 09 01 FF FF FF") {
Serial.print("Butten wurde gedrückt");
}
}
IIch habe das Problem, dass ich die erstellten Buttons einfach nicht abgefragt bekomme. Hierbei gehe ich im Grunde nach folgendem Tutorial vor: Tutorial
und nutze die Nextion.h Bibiliothek
Normalerweise erwarte ich, dass nach dem klicken auf den entsprechenden Button das myNextion Objekt die Adresse an den String "message" schickt, was in einer if-Abfrage ausgewertet wird. Ist diese Abfrage wahr (also exakt die zu erwartende Adresse), so möchte ich einfach nur erst mal ein Serial.print ausgeben, damit ich sicher sein kann, dass ich mit den Buttons etwas anfangen kann. Aber es passiert einfach nichts und ich habe absolut keine Ahnung mehr woran es liegt.
Im Anhnag ist ein Bild beigefügt, auf dem man die Adresse des Buttons "kleiner Schuss" während des Debugens zu sehen ist.
Warum verwendest du auf dem Mega nicht die Hardware Serielle die zusätzlich vorhanden ist ?
Und lies doch erstmal aus, was auf der SoftwareSerial ankommt und zeige das im seriellen Monitor an.
Leider kann ich nicht mehr dazu sagen, da ich die Nextion-Library nicht kenne und nicht nutze.
Hey bin absoluter Anfänger was den Arduino betrifft, kenn mich aber etwas mit dem Nextion Display aus. Nur ein Idee, wahrscheinlich aber Quatsch:
In deinem Codebeispiel steht etwas von Page 0, die Hexsignatur von dem Button zeigt als page id jedoch nicht die 00, sondern 02. ( page_id sollte die zweite Stelle nach dem Steuerzeichen sein, steht aber alles in der Doku)
Grundsätzlich macht es aber vmtl. sehr viel mehr Sinn sich wie der Vorredner schrieb mit den tutorials und der Dokumentation von Nextion vertraut zu machen.
Falls Du gar nicht weiterkommst, auf dem raspberry mit python läuft es wunderbar.
PS kenne mich wie gesagt mit cpp noch gar nicht aus, aber bei meinen Versuchen war das Vergleichen von Strings mit == teilweise auch iwie problematisch.
Füge doch mal vor dem if in der loop eine Testausgabe der empfangenen Nachricht auf dem seriellen Monitor ein - dann siehst Du, was das Display tatsächlich schickt und was ggf. an dem Vergleichsstring zu ändern wäre.
if (message != "") // oder if (message.length())
Serial.println(message);