Aviso

El foro está en modo de sólo lectura.

HMI NEXTION Y ARDUINO, No reconoce parte del protocolo con librería nextion.h

Más
6 años 10 meses antes #468 por electroarte
He subido un video a YOUTUBE mostrando el simulador y el Arduino, ver aquí

Archivo Adjunto:

Nombre del Archivo: PRUEBA1_20...6-20.zip
Tamaño del Archivo:103 KB
:


Saludos, he seguido todos los tutoriales sobre HMI NEXTION que ustedes han publicado y los he podido reproducir con éxito excepto este. El comando: boolean botonMarcha = myNextion.getComponentValue ("page1.bt0"); no me arroja el valor del componente o del botón que debería entregar y ya he probado todo lo que se ha ocurrido, no cambia el valor, si lo declaro como boolean arroja siempre 1, no alterna el valor. si lo declaro byte arroja 255 si lo declaro int arroja -1 los comandos: myNextion.setComponentValue....... myNextion.sendCommand("page 1"); me funcionan sin problemas y los ejercicios anteriores sin las librerías también funcionan bien. De antemano muy agradecido cualquier sugerencia, esto no es hobby para nosotros, es trabajo que estamos sacando y es la primera vez que realizamos un proyecto con estas pantallas, estamos trancados en este paso, necesitamos pasar valores limites de temperatura de la pantalla NEXTION a la EEPROM del ARDUINO.

Aprecio bastante el trabajo que están haciendo, es un gran esfuerzo, mucho tiempo y un gran aporte para los que trabajamos en el área. Con respecto al comando listen() este me permite captar mensajes desde la pantalla tales como si un botón bt3 imprime print "p2" la instrucción listen () lo captará de la siguiente manera: String message = myNextion.listen (); if(message == "70 2") {timelapse();} llamará a la función timelapse() pero no me sirve para saber el estado del botón. Por otro lado la instrucción: myNextion.getComponentValue si está relacionada con la obtención del estado del botón como bien lo demostraron ustedes en este mismo video y en otros videos y hay muchos ejemplos como: int test= myNextion.getComponentValue ("Lichtschranke.bt0"); btn = myNextion.getComponentValue ("Lichtschranke.bt1"); int test= myNextion.getComponentValue ("Soundsensor.bt0"); btn=myNextion.getComponentValue ("Bulb.bt1"); En todos estos casos son botones de dos estados pero yo no logro que me funcione esta instrucción, siempre me da: -1 si es entero 1 si es booleano nunca me arroja el valor del estado en el que se encuentra sin embargo se observa que al conmutar envía el mensaje: cuando está activo: 0x71 0x01 0x00 0x00 0x00 0xff 0xff 0xff inactivo: 0x71 0x00 0x00 0x00 0x00 0xff 0xff 0xff Pero la instrucción getComponentValue no es capaz de traducirla.

Este tema se inició en YOUTUBE en el canal de CAMBATRONICS en el tema Conectar arduino y pantalla Nextion mediante librerias #2 : Pruebas reales.:
Adjuntos:
Más
6 años 10 meses antes #469 por Jose Luis
El programa de la nextion use en mismo sin modificar. El programa del arduino lo cambie un poco por que me gusta uasar el serial por hardware para depurar el programa.
El codigo queda asi :
#include <SoftwareSerial.h> //QUITAR SI ES PUERTO FISICO en vez de eso poner #define nextion Serial

#include <Nextion.h>

SoftwareSerial nextion(10, 11);//NO SE VA A USAR EL PUERTO VIRTUAL SE COMENTA ESTA LINEA
Nextion myNextion(nextion, 9600); //create a Nextion object named myNextion using the nextion serial port @ 9600bps
int ledStatus = 13;
void setup() {//***************************************setup***********************************************
  pinMode(ledStatus, OUTPUT);
  digitalWrite(ledStatus, LOW);
  Serial.begin(9600);
  myNextion.init(); // INICIALIZA Y VA A LA PRIMERA PAGINA
}
void loop() {
 boolean botonMarcha=myNextion.getComponentValue("page1.bt0");
 if (botonMarcha == true) digitalWrite(ledStatus, HIGH); else digitalWrite(ledStatus, LOW);
 delay(1000);
}//void loop()




Funciono a la primera.
El siguiente usuario dijo gracias: electroarte
Más
6 años 10 meses antes #470 por Jose Luis
Video del sistema funcionando.
Adjuntos:
El siguiente usuario dijo gracias: electroarte
Más
6 años 10 meses antes #471 por electroarte
Saludos José Luis, me encuentro agradecido y en deuda. ¿Para descartar variables podrías intentar gobernar el Arduino desde el simulador y no desde la pantalla? Nosotros aún no hemos realizado el pedido a China y queremos tener listo el programa para cuando nos lleguen los equipos y necesitamos hacer todas las pruebas primero en el simulador para ganar tiempo, las otras simulaciones como las lecturas analógicas nos han respondido bien, ha sido al momento de implementar la librería que hemos tenido problemas.
Más
6 años 10 meses antes #472 por Jose Luis
Me acaba de petar el pc y he perdido toda la informacion hasta que monte un nuevo pc. Y en esta epoca no se esta para muchos gastos.

Ahora mismo no puedo ayudarte y tampoco se el tiempo que me va llevar arregalar este desaguisado.

Siento no poder darte una soluccion en estes momentos, pero estoy desde un portatil muy viejo y no tiene posibilidad de cargar todas las herramientas que uso.

Un saludo.

Jose Luis.
Más
6 años 8 meses antes #637 por xvesper
Hola Jose,
Estoy con lo mismo problema , siempre retorna true(getComponentValue("page1.bt0")), testei lo mismo codigo que estay en su respuesta(excepto que mi puertas eran 2,3) , las otras funciones que ha testado estan bien, alguna idea ?
Muy Gracias y congratulationces , su trabajo es muy bueno.
Tiempo de carga de la página: 0.118 segundos
Gracias a Foro Kunena