Go Down

Topic: Nextion + Arduino (Read 139 times) previous topic - next topic

bircastri

Salve a tutti,

sto cercando di creare un piccolo touchscreen aiutandomi con Arduino.

Ho preso un monitor Nextion basic ed arduino.

Questo è il codice di Arduino. Il problema è che alla pressione del tasto sul Nextion , non viene richiamato il metodo su arduino.

Code: [Select]

#include "Nextion.h"
#include <ESP8266WiFi.h>

// Declare your Nextion objects - Example (page id = 0, component id = 1, component name = "b0")
NexPicture p0 = NexPicture(1, 1, "p0");

// Register a button object to the touch event list. 
NexTouch *nex_listen_list[] = {
  &p0,
  NULL
};


void p0PopCallback(void *ptr)
{
    Serial.println("popupup");
    dbSerialPrintln("p0PopCallback");
}



void setup() {
  // put your setup code here, to run once:
  nexInit();
  p0.attachPop(p0PopCallback);
  dbSerial.begin(9600);

}

void loop() {
  // put your main code here, to run repeatedly:
  nexLoop(nex_listen_list);
  //
}



Dove sbaglio ?

fabpolli

Così a intuito, o il componente ha un id differente, o non è sulla pagina zero oppure nel programma del nextion non hai settato di inviare l'id del componente nel componente stesso percui la libreria non funziona correttamente.
Negli esempi c'è nel programma uguale al tuo anche la parte da caricare nel display, se metti quella dovrebbe funzionare, hai provato?

Aspire92

ciao, io con i diplay nextion uso la libreria "Nextion Master" la dichiaro con

Code: [Select]
#include <Nextion.h>
Nextion myNextion(nextion, 9600);
String Seriale = "";


nel begin metto:
Code: [Select]

  myNextion.init();


e poi nell loop vado a leggere se c'è qualcosa nella seriale del nextion:

Code: [Select]
Seriale = myNextion.listen();
if (Seriale == "VALORE") {
         
      }


mentre nel nextion editor alla pressione di un tasto faccio eseguire il comando


Code: [Select]
print "VALORE"




fabpolli

Io non uso librerie, alla fine è una comunicazione seriale terminata da tre caratteri 0xFF, preferisco gestire quel poco che c'è da gestire a mano e vivere felice :)

Go Up