Rieccomi.. ora fin qui tutto ok.. ho inserito un semplice IF da far si che il valore della temperatura e quello dello schermo accendono un relè di controllo. Solo che lo schermo ora dopo un paio di numeri si resetta e l'if non funziona.
[/[code]
#include "Nextion.h"
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
const int led =8;
long valore;
int temperatura;
void n0PopCallback(void *ptr);
void b0PopCallback(void *ptr);
void b1PopCallback(void *ptr);
/*
* Declare a number object [page id:0,component id:3, component name: "n0"].
*/
NexNumber n0 = NexNumber(0, 3, "n0");
/*
* Declare a button object [page id:0,component id:1, component name: "b0"].
*/
NexButton b0 = NexButton(0, 1, "b0");
/*
* Declare a button object [page id:0,component id:2, component name: "b1"].
*/
NexButton b1 = NexButton(0, 2, "b1");
char buffer[100] = {0};
/*
* Register object n0, b0, b1, to the touch event list.
*/
NexTouch *nex_listen_list[] =
{
&n0,
&b0,
&b1,
NULL
};
/*
* number component pop callback function.
*/
void n0PopCallback(void *ptr)
{
dbSerialPrintln("n0PopCallback");
n0.setValue(0);
}
/*
* Button0 component pop callback function.
* In this example,the value of the number component will plus one every time when button0 is released.
*/
void b0PopCallback(void *ptr)
{
uint32_t number;
dbSerialPrintln("b0PopCallback");
n0.getValue(&number);
number += 1;
valore = number;
n0.setValue(number);
}
/*
* Button1 component pop callback function.
* In this example,the value of the number component will minus one every time when button1 is released.
*/
void b1PopCallback(void *ptr)
{
uint32_t number;
dbSerialPrintln("b1PopCallback");
n0.getValue(&number);
number -= 1;
valore = number;
n0.setValue(number);
}
void setup(void)
{
/* Set the baudrate which is for debug and communicate with Nextion screen. */
nexInit();
dht.begin();
pinMode(led,OUTPUT);
/* Register the pop event callback function of the current number component. */
n0.attachPop(n0PopCallback);
/* Register the pop event callback function of the current button0 component. */
b0.attachPop(b0PopCallback);
/* Register the pop event callback function of the current button1 component. */
b1.attachPop(b1PopCallback);
dbSerialPrintln("setup done");
}
void loop(void)
{
/*
* When a pop or push event occured every time,
* the corresponding component[right page id and component id] in touch event list will be asked.
*/
temperatura = dht.readTemperature();
nexLoop(nex_listen_list);
if(valore >= temperatura)
{
digitalWrite(led,HIGH);
}
else
{
digitalWrite(led,LOW);
}
}
code]
nel primo codice una volta l if arrivato a 25 funzionava benissimo il led, ma a me serviva fare che in base alla temperatura funzionasse
il codice di prima
[/[code]
#include "Nextion.h"
const int led =8;
int valore;
void n0PopCallback(void *ptr);
void b0PopCallback(void *ptr);
void b1PopCallback(void *ptr);
/*
* Declare a number object [page id:0,component id:3, component name: "n0"].
*/
NexNumber n0 = NexNumber(0, 3, "n0");
/*
* Declare a button object [page id:0,component id:1, component name: "b0"].
*/
NexButton b0 = NexButton(0, 1, "b0");
/*
* Declare a button object [page id:0,component id:2, component name: "b1"].
*/
NexButton b1 = NexButton(0, 2, "b1");
char buffer[100] = {0};
/*
* Register object n0, b0, b1, to the touch event list.
*/
NexTouch *nex_listen_list[] =
{
&n0,
&b0,
&b1,
NULL
};
/*
* number component pop callback function.
*/
void n0PopCallback(void *ptr)
{
dbSerialPrintln("n0PopCallback");
n0.setValue(0);
}
/*
* Button0 component pop callback function.
* In this example,the value of the number component will plus one every time when button0 is released.
*/
void b0PopCallback(void *ptr)
{
uint32_t number;
dbSerialPrintln("b0PopCallback");
n0.getValue(&number);
number += 1;
n0.setValue(number);
valore = number;
}
/*
* Button1 component pop callback function.
* In this example,the value of the number component will minus one every time when button1 is released.
*/
void b1PopCallback(void *ptr)
{
uint32_t number;
dbSerialPrintln("b1PopCallback");
n0.getValue(&number);
number -= 1;
n0.setValue(number);
valore = number;
}
void setup(void)
{
/* Set the baudrate which is for debug and communicate with Nextion screen. */
nexInit();
pinMode(led,OUTPUT);
/* Register the pop event callback function of the current number component. */
n0.attachPop(n0PopCallback);
/* Register the pop event callback function of the current button0 component. */
b0.attachPop(b0PopCallback);
/* Register the pop event callback function of the current button1 component. */
b1.attachPop(b1PopCallback);
dbSerialPrintln("setup done");
}
void loop(void)
{
/*
* When a pop or push event occured every time,
* the corresponding component[right page id and component id] in touch event list will be asked.
*/
nexLoop(nex_listen_list);
if(valore >= 25)
{
digitalWrite(led,HIGH);
}
else
{
digitalWrite(led,LOW);
}
}
code]