LCD Nextion y Graficas
LCD Nextion y graficas
En el siguiente tutorial vamos a graficar en una LCD Nextion las temperaturas de tres sensores distintos y que trabajan con diferentes protocolos de comunicación (One-Wire, I2C, Analògico), las gráficas y los valores numèricos los mostraremos en la Pantalla Nextion de 2.4″.
Es importante mencionar que Las librerías para la pantalla Nextion están configuradas para trabajar con el Arduino Mega 2560 con los pines Serial 2 (Rx2, Tx2). Si desea utilizar otra Tarjeta Arduino es necesario modificar el archivo NexConfig.h, ver archivo readme.md en la carpeta de la libreria Nextion de Itead.
Las librerías para la Pantalla Nextion podrán descargarlas en el enlace de abajo.
Materiales
- Arduino Mega 2560
- DS18B20 (Sensor de Temperatura One-Wire)
- MCP9808 (Sensor de Temperatura I2C)
- MCP9700 (Sensor de Temperatura Analògico)
- Pantalla Nextion 2.4″
- Protoboard
Código de Arduino
En el còdigo de Arduino esta comentado donde conectar cada sensor de Temperatura y la Pantalla Nextion.
[code language=»cpp»]
/*HeTPro Herramientas Tecnològicas Profecionles*/
/*Tutorial para graficar Temperaturas de 3 sensores distintos*/
/*Protocolos de comunicacion I2C, One-Wire y Analògico*/ç
/*
Conexiones
Nextion: Conectar a SERIAL 2 TX2 RX2(Librerias por default funciona en SERIAL 2)
DS18B20: Conectar pin de Salida a pin Digital 3 de Arduino Mega(Sensor Digital One-Wire)
MCP9808: Conectar a Pines I2C (20, 21) (Sensor Digital I2C)
MCP9700:: Conectar a PIN Analògico A0 (Sensor Analògico)
*/
/*Sensor de Temperatura MCP9808 con Comunicacion I2C */
#include <Wire.h>;
#include "Adafruit_MCP9808.h"
/*Crea El Sensor MCP9808 un objeto*/
Adafruit_MCP9808 tempsensor = Adafruit_MCP9808();
/*********************************************************/
/*Sensor de Temperatura DS18B20 ONE-WIRE*/
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 3 //Pin 3 a Salida DS18B20
OneWire ourWire(ONE_WIRE_BUS);
DallasTemperature sensors(&ourWire);
/**********************************************************/
/*Nextion*/
#include "Nextion.h" /*Libreria para Pantalla Nexion*/
/*Funcion para Graficar las Temperaturas en la Nextion*/
NexWaveform s0 = NexWaveform(0, 1, "s0");
/*Funciones para mostrar las temperaturas numericamente*/
NexNumber n0 = NexNumber(0, 1, "n0");
NexNumber n1 = NexNumber(0, 1, "n1");
NexNumber n2 = NexNumber(0, 1, "n2");
int i;
/*********************************************************/
/* Sensor de Temperatura Analògico MCP9700*/
int mcp1 = A0;
float mcpT1 = 0;
void setup()
{
Serial.begin(9600);
/*Inicializacion de LCD nextion 2.4"*/
nexInit();
/*Inicializacion de Sensor DS18B20*/
sensors.begin();
/*Inicializacion MCP9808*/
/* Direccion tempsensor.begin(0x19)*/
if (!tempsensor.begin(0x19)) {
Serial.println("No se enconto MCP9808!");
while (1);
}//end if(MCP9808)
}//end void setup()
void loop()
{
/*Lectura del sensor I2C MCP9808*/
tempsensor.shutdown_wake(0);//prepata el sensor para leer temperatura en MCP9808
float c = tempsensor.readTempC();//lee la temperatura en MCP9808
delay(5);
/*Lectura del sensor DS18B20 ONE-WIRE*/
sensors.requestTemperatures(); //lee temperatura en ds18b20
delay(5);
i= sensors.getTempCByIndex(0);// lee la temperatura y asigna el valor en i
/*Lectura del sensor Analògico MCP9700*/
mcpT1 = analogRead(mcp1)*5 / 1024.0;
mcpT1 = mcpT1 – 0.5;
mcpT1 = mcpT1 / 0.01;
delay(5);
/*Funciones para enviar las lecturas de los sensores a la Nextion */
/*DS18B20*/
s0.addValue(0, i);/*Graficar Temperatura de DS18B20*/
n2.setValue(i);/*Mostrar el Valor de DS18B20*/
/*MCP9700*/
s0.addValue(1, mcpT1);
n1.setValue(mcpT1);
/*MCP9808*/
s0.addValue(2, c);
n0.setValue(c);
tempsensor.shutdown_wake(1); // shutdown MSP9808 – power consumption ~0.1 mikro Ampere
}// end loop
[/code]
Imagenes y video del Tutorial
En el siguiente link se encuentra el video del Funcionamiento completo del Tutorial: https://www.youtube.com/watch?v=LGWgJ3lgcFw&spfreload=5




Enlaces de Interés
– Hoja de Datos MCP9808
– Hoja de Datos MCP9700
– Tutorial Editor de Nextion y Arduino UNO
– Tutorial DS18B20
– Nextion Editor
-Librterias Nextion

Y si no quisiera ocupar la librería Nextion como tendria que mandar los datos al waveform, ya lo intente de esa manera pero no me conecta con el puerto serie, me manda el siguiente error:
revRetCommandFinished err
revRetCommandFinished err
setup done
y despues de esto no me manda mas datos, ocupo el arduino uno…
Hola Jacob, puedes utilizar informacion de estos tutoriales https://hetpro-store.com/TUTORIALES/progress-bar/ https://hetpro-store.com/TUTORIALES/pantalla-nextion-arduino/ ya que para utilizar esta libreria tienes que cambiar algo lo cual viene explicado en estos tutoriales, saludos
Ya intente cambiar lo necesario en la librería NexConfig.h, pero me sigue arrojando el mismo error, hay alguna otra manera de hacerlo sin utilizar esas librerías?
Lo que se puede hacer es modificar las librerias, para poder utilizar con Arduino UNO
pero por ejemplo en los otros tutoriales no ocupan las librerias de Nextion, sino que utilizan los comandos del puerto serie de arduino, y si me pudieran ayudar en como mandar utilizando solo el comando serial.println() para enviarle datos a la waveform, o decirme que es lo que deveria de modificar a la librea nextion para que pueda funcionar en el Arduino UNO.
Gracias…
Lamentablemente no hemos usado tanto esta pantalla y no hemos profundisado en el tema pero si se tendria que modificar alguna parte de la libreria
Ok igualmente muchas gracias…
Saludos.
De nada y esperamos que logres encontrar una solución
BUENAS yo estoy haciendo un proyecto el cual recibo datos de los sensores hasta ahi todo bien quisiera saber si desde la pantalla nextios hmi puedo cambiar el valor de los sensores x ejemplo seleccionar 10 grados desde la pantalla necesito dar un valor de referencia al sensor
Si es viable Claudio, por el momento no tenemos tutorial de entradas de ese tipo pero si se puede realizar.
Hola muy buenas , el video tutorial ya no existe este caído , harás otro video nuevo del mismo o resubiras el mismo . Podría pasarme el archivo .HMI que utilizaste. Muchas gracias