Ich beschäftige mich seid heute früh mit einem Nextion Display, welches ich gerne mit einem esp32 verbinden würde.
Nach vielen versuchen habe ich es jetzt auch endlich geschafft das ich einen wert in einem Textfeld anzeigen kann. Nur die abfrage von 2 Button will einfach nicht funktionieren und ich komm nicht darauf was falsch ist.
Was ich bis jetzt gemacht habe:
Im Nextion Editor ein kleines Menü erstellt mit 2 Button und einem Textfeld.
Alles befindet sich auf page0
Das Textfeld hat die id:1 und den objnamen:t0
Button1 hat die id:2 und den objnamen:b0
Button1 hat die id:3 und den objnamen:b1
Das Hochladen auf das Display hat ohne Probleme funktioniert
dann, hab ich die ITEADLIB_Arduino_Nextion library installiert und mithilfe dieser Seite für den esp32 angepasst.
(erst habe ich es ohne die library versucht da überall von der abgeraten wird, leider konnte ich ohne diese aber Nichtmal den Text ändern)
Danach hab ich diesen code hochgeladen
#include "Nextion.h"
#define ONBOARD_LED 2
float counter = 0;
NexButton p0_b0 = NexButton(0,2,"b0");
NexButton p0_b1 = NexButton(0,3,"b1");
NexText p0_t0 = NexText(0,1,"t0");
uint32_t next, myInt = 0;
NexTouch *nex_listen_list[] = {
&p0_b0, &p0_b1, NULL
};
void p0_b1_Press(void *ptr) {
counter=counter+10;
Serial.print("Button1");
}
void p0_b0_Press(void *ptr) {
counter=counter-10;
Serial.print("Button0");
}
void setup() {
// put your setup code here, to run once:
nexInit();
pinMode(ONBOARD_LED,OUTPUT);
digitalWrite(ONBOARD_LED,LOW);
p0_b0.attachPush(p0_b0_Press, &p0_b0);
p0_b1.attachPush(p0_b1_Press, &p0_b1);
p0_t0.setText("Arduino Text");
next = millis();
}
void loop() {
// put your main code here, to run repeatedly:
delay(50);
counter=counter+0.5;
String myStr;
myStr=String(counter);
p0_t0.setText(myStr.c_str());
Serial.print("test");
nexLoop(nex_listen_list);
}
Der esp ist mit RX auf pin17 und mit TX auf 16
(hab es auch schon andersrum versucht leider ohne Erfolg)
Mit dem Setup zeigt das Display den count wert an und zählt immer um 0.5 hoch.
Im Seriell Monitor wird folgendes ausgegeben test recvRetCommandFinished ok
wen ich Button 1 oder 0 drücke passiert nichts
Wäre super wen mir einer sagen könnte was ich falsch mache. Ich bin mir sicher, dass es nur eine Kleinigkeit ist aber ich komm einfach nicht drauf was es ist.
Und dann habe ich noch eine Frage. Wen ich das Problem mit dem Button gelöst haben möchte ich noch einen INA219 mit dem esp verbinden. Ist das möglich oder bekomme ich da Probleme?
Ich habe jetzt nämlich schon mehrmals gelesen, dass ein Sensor Probleme bei der Kommunikation zwischen Arduino und Nextion verursachen kann.