Hola, perdon por tardar tanto
#include "Nextion.h"
#include <OneWire.h>
#include <DallasTemperature.h>
#include <ModbusMaster.h>
#define MAX485_DE 8
#define RXD0 0 //DEFINIR PINES DEL UART
#define TXD0 1
ModbusMaster node;
const byte pinDatos = 2;
float sonda1;
float sonda2;
float sonda3;
OneWire oneWireObjeto(pinDatos);
DallasTemperature sensor(&oneWireObjeto);
unsigned long previousMillis = 0;
unsigned long anteriorMillis = 0;
unsigned long temperaturaMillis = millis();
unsigned long anteriortemperaturaMillis = 0;
//CONTROL DE TEMPERATURAS
bool estadochimenea1;
bool estadochimenea2;
bool estadochimenea3;
bool estadocaldera1;
bool estadocaldera2;
bool estadocaldera3;
int caldera1 = 3;
int caldera2 = 4;
int caldera3 = 5;
int chimenea1 = 11;
int chimenea2 = 12;
int chimenea3 = 13;
//TIEMPO QUE QUEREMOS PONER DELAY;
const long intervaltemp = 500;
const long intervaltiempo = 500;
const long intervaltemperatura = 5000;
//VALORES DE LEECTURA
//declarar objeto
NexDSButton ledr = NexDSButton(0, 8, "bt0");
NexDSButton ledv = NexDSButton(0, 9, "bt1");
NexDSButton ledb = NexDSButton(0, 10, "bt2");
NexDSButton btchimenea1 = NexDSButton(0, 14, "bt3");
NexDSButton btchimenea2 = NexDSButton(0, 15, "bt4");
NexDSButton btchimenea3 = NexDSButton(0, 16, "bt5");
NexDSButton parar = NexDSButton(0, 17, "bt6");
NexButton apagar = NexButton(0, 13, "b3");
NexButton enviar = NexButton(2, 8, "sendtemp");
NexText t1 = NexText(2, 8, "t1");
NexText t2 = NexText(2, 9, "t2");
NexText t3 = NexText(2, 7, "t0");
//PAGINAS
NexPage page0 = NexPage(0, 0, "Home");
NexPage page1 = NexPage(1, 0, "Ident");
NexPage page2 = NexPage(2, 0, "Atemp");
NexPage page3 = NexPage(3, 0, "Iacs");
NexPage page4 = NexPage(4, 0, "Ical");
NexPage page5 = NexPage(5, 0, "Aacs");
NexPage page6 = NexPage(6, 0, "Acal");
//objetos para utilizar
NexTouch *nex_listen_list[] =
{
&btchimenea1,
&btchimenea2,
&btchimenea3,
¶r,
&enviar,
&ledr,
&ledv,
&ledb,
&apagar,
&t1,
&t2,
&t3,
&page0,
&page1,
&page2,
&page3,
&page4,
&page5,
&page6,
NULL
};
void preTransmission()
{
digitalWrite(MAX485_DE, 1);
delay(10);
}
void postTransmission()
{
digitalWrite(MAX485_DE, 0);
delay(10);
}
void enviar_temp(void *ptr) {
sensor.requestTemperatures();
//SENSOR 2 TEMPERATURAS
sonda1 = (sensor.getTempCByIndex(0));
sonda2 = (sensor.getTempCByIndex(1));
sonda3 = (sensor.getTempCByIndex(2));
char conversion1[10];
dtostrf(sonda1, 5, 2, conversion1);
Serial2.print("t1.txt=\"");
Serial2.print(conversion1);
Serial2.print("\"");
Serial2.write(0xff);
Serial2.write(0xff);
Serial2.write(0xff);
char conversion2[10];
dtostrf(sonda2, 5, 2, conversion2);
Serial2.print("t2.txt=\"");
Serial2.print(conversion2);
Serial2.print("\"");
Serial2.write(0xff);
Serial2.write(0xff);
Serial2.write(0xff);
char conversion3[10];
dtostrf(sonda3, 5, 2, conversion3);
Serial2.print("t0.txt=\"");
Serial2.print(conversion3);
Serial2.print("\"");
Serial2.write(0xff);
Serial2.write(0xff);
Serial2.write(0xff);
}
void apagar_leds(void *ptr) {
digitalWrite(5, 1); // reles 1 es igual apagado estan invertidos
digitalWrite(4, 1);
digitalWrite(3, 1);
}
void ledblanco(void *ptr) {
uint32_t ledbl;
ledb.getValue(&ledbl); //reles 1 es igual apagado estan invertidos
if (ledbl == 1) {
digitalWrite(5, 0);
} else {
digitalWrite(5, 1);
}
}
void ledverde(void *ptr) {
uint32_t ledve;
ledv.getValue(&ledve); //reles 1 es igual apagado estan invertidos
if (ledve == 1) {
digitalWrite(4, 0);
} else {
digitalWrite(4, 1);
}
}
void ledrojo(void *ptr) {
uint32_t ledro;
ledr.getValue(&ledro);
if (ledro == 1) {
digitalWrite(3, 0);
//reles 1 es igual apagado estan invertidos
} else {
digitalWrite(3, 1);
}
}
void envio_temperatura(void) {
sensor.requestTemperatures();
//SENSOR 2 TEMPERATURAS
sonda1 = (sensor.getTempCByIndex(0));
sonda2 = (sensor.getTempCByIndex(1));
sonda3 = (sensor.getTempCByIndex(2));
char conversion1[10];
dtostrf(sonda1, 5, 2, conversion1);
Serial2.print("t1.txt=\"");
Serial2.print(conversion1);
Serial2.print("\"");
Serial2.write(0xff);
Serial2.write(0xff);
Serial2.write(0xff);
char conversion2[10];
dtostrf(sonda2, 5, 2, conversion2);
Serial2.print("t2.txt=\"");
Serial2.print(conversion2);
Serial2.print("\"");
Serial2.write(0xff);
Serial2.write(0xff);
Serial2.write(0xff);
char conversion3[10];
dtostrf(sonda3, 5, 2, conversion3);
Serial2.print("t0.txt=\"");
Serial2.print(conversion3);
Serial2.print("\"");
Serial2.write(0xff);
Serial2.write(0xff);
Serial2.write(0xff);
}
void temperatura(void) {
int i = sonda1;
int f = sonda2;
Serial2.print("n0.val=");
Serial2.print(i);
Serial2.write(0xff);
Serial2.write(0xff);
Serial2.write(0xff);
Serial2.print("n1.val=");
Serial2.print(f);
Serial2.write(0xff);
Serial2.write(0xff);
Serial2.write(0xff);
}
Falta codigo