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 &lt;OneWire.h&gt;
#include &lt;DallasTemperature.h&gt;
#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

LCD Nextion
Sensores de Temperatura y Nextion de 2.4″

 

LCD Nextion
Gráficas de los sensores de temperatura.

 

LCD Nextion
En la imagen podemos apreciar las gráficas y los valores de las temperaturas.
LCD Nextion
Valores para los tres sensores de temperatura

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

10 comentarios en «LCD Nextion y Graficas»

  1. 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…

  2. 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?

      1. 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…

        1. 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

  3. 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *