master
parent
57f8347354
commit
cd5414e5c2
4 changed files with 257 additions and 0 deletions
Binary file not shown.
Binary file not shown.
@ -0,0 +1,136 @@ |
||||
/*
|
||||
* Rui Santos
|
||||
* Complete Project Details https://randomnerdtutorials.com
|
||||
*/ |
||||
|
||||
#include "Nextion.h" |
||||
|
||||
#include "DHT.h" |
||||
#define DHTPIN 4 // what digital pin we're connected to
|
||||
|
||||
// Uncomment whatever type you're using!
|
||||
#define DHTTYPE DHT11 // DHT 11
|
||||
//#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
|
||||
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
|
||||
|
||||
// Initialize DHT sensor.
|
||||
DHT dht(DHTPIN, DHTTYPE); |
||||
|
||||
// LED pins
|
||||
const int led1 = 8; |
||||
const int led2 = 9; |
||||
|
||||
// Declare your Nextion objects - Example (page id = 0, component id = 1, component name = "b0")
|
||||
NexText tState = NexText(0, 4, "tState");
|
||||
NexButton bOn = NexButton(0, 2, "bOn"); |
||||
NexButton bOff = NexButton(0, 3, "bOff"); |
||||
NexSlider h0 = NexSlider(0, 5, "h0"); |
||||
NexText tSlider = NexText(0, 6, "tSlider"); |
||||
NexText tTempC = NexText(1, 5, "tTempC"); |
||||
NexText tTempF = NexText(1, 4, "tTempF"); |
||||
NexProgressBar jHumidity = NexProgressBar(1, 8, "jHumidity"); |
||||
NexText tHumidity = NexText(1, 9, "tHumidity"); |
||||
NexButton bUpdate = NexButton(1,10, "bUpdate"); |
||||
|
||||
// Register a button object to the touch event list.
|
||||
NexTouch *nex_listen_list[] = { |
||||
&bOn, |
||||
&bOff, |
||||
&h0, |
||||
&bUpdate, |
||||
NULL |
||||
}; |
||||
|
||||
/*
|
||||
* Button bOn component pop callback function.
|
||||
* When the ON button is released, the LED turns on and the state text changes.
|
||||
*/ |
||||
void bOnPopCallback(void *ptr) { |
||||
tState.setText("State: on"); |
||||
digitalWrite(led1, HIGH); |
||||
} |
||||
|
||||
/*
|
||||
* Button bOff component pop callback function.
|
||||
* When the OFF button is released, the LED turns off and the state text changes.
|
||||
*/ |
||||
void bOffPopCallback(void *ptr) { |
||||
tState.setText("State: off"); |
||||
digitalWrite(led1, LOW); |
||||
} |
||||
|
||||
/*
|
||||
* Slider h0 component pop callback function.
|
||||
* When the slider is released, the LED brightness changes and the slider text changes.
|
||||
*/ |
||||
void h0PopCallback(void *ptr) { |
||||
uint32_t number = 0; |
||||
char temp[10] = {0}; |
||||
// change text with the current slider value
|
||||
h0.getValue(&number); |
||||
utoa(number, temp, 10); |
||||
tSlider.setText(temp); |
||||
// change LED brightness
|
||||
analogWrite(led2, number);
|
||||
} |
||||
|
||||
/*
|
||||
* Button bUpdate component pop callback function.
|
||||
* When the UPDATE button is released, the temperature and humidity readings are updated.
|
||||
*/ |
||||
void bUpdatePopCallback(void *ptr) { |
||||
// Reading temperature or humidity takes about 250 milliseconds!
|
||||
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
|
||||
float h = dht.readHumidity(); |
||||
// Read temperature as Celsius (the default)
|
||||
float t = dht.readTemperature(); |
||||
// Read temperature as Fahrenheit (isFahrenheit = true)
|
||||
float f = dht.readTemperature(true); |
||||
|
||||
// Check if any reads failed and exit early (to try again).
|
||||
if (isnan(h) || isnan(t) || isnan(f)) { |
||||
return; |
||||
} |
||||
// Update temperature in Celsius
|
||||
static char temperatureCTemp[6]; |
||||
dtostrf(t, 6, 2, temperatureCTemp); |
||||
tTempC.setText(temperatureCTemp); |
||||
|
||||
// Update humidity percentage text and progress bar
|
||||
char hTemp[10] = {0};
|
||||
utoa(int(h), hTemp, 10); |
||||
tHumidity.setText(hTemp); |
||||
jHumidity.setValue(int(h)); |
||||
|
||||
// Update temperature in Fahrenheit
|
||||
static char temperatureFTemp[6]; |
||||
dtostrf(f, 6, 2, temperatureFTemp); |
||||
tTempF.setText(temperatureFTemp); |
||||
} |
||||
|
||||
void setup(void) {
|
||||
dht.begin(); |
||||
Serial.begin(9600); |
||||
|
||||
// You might need to change NexConfig.h file in your ITEADLIB_Arduino_Nextion folder
|
||||
// Set the baudrate which is for debug and communicate with Nextion screen
|
||||
nexInit(); |
||||
|
||||
// Register the pop event callback function of the components
|
||||
bOn.attachPop(bOnPopCallback, &bOn); |
||||
bOff.attachPop(bOffPopCallback, &bOff); |
||||
h0.attachPop(h0PopCallback); |
||||
bUpdate.attachPop(bUpdatePopCallback, &bUpdate); |
||||
|
||||
// Set LEDs as outputs
|
||||
pinMode(led1, OUTPUT); |
||||
pinMode(led2, OUTPUT); |
||||
} |
||||
|
||||
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); |
||||
} |
@ -0,0 +1,121 @@ |
||||
|
||||
#include "Nextion.h" |
||||
|
||||
// LED pins
|
||||
const int led1 = 8; |
||||
const int led2 = 9; |
||||
|
||||
// Declare your Nextion objects - Example (page id = 0, component id = 1, component name = "b0")
|
||||
NexText tState = NexText(0, 4, "tState");
|
||||
NexButton bOn = NexButton(0, 2, "bOn"); |
||||
NexButton bOff = NexButton(0, 3, "bOff"); |
||||
NexSlider h0 = NexSlider(0, 5, "h0"); |
||||
NexText tSlider = NexText(0, 6, "tSlider"); |
||||
NexText tTempC = NexText(1, 5, "tTempC"); |
||||
NexText tTempF = NexText(1, 4, "tTempF"); |
||||
NexProgressBar jHumidity = NexProgressBar(1, 8, "jHumidity"); |
||||
NexText tHumidity = NexText(1, 9, "tHumidity"); |
||||
NexButton bUpdate = NexButton(1,10, "bUpdate"); |
||||
|
||||
// Register a button object to the touch event list.
|
||||
NexTouch *nex_listen_list[] = { |
||||
&bOn, |
||||
&bOff, |
||||
&h0, |
||||
&bUpdate, |
||||
NULL |
||||
}; |
||||
|
||||
/*
|
||||
* Button bOn component pop callback function.
|
||||
* When the ON button is released, the LED turns on and the state text changes.
|
||||
*/ |
||||
void bOnPopCallback(void *ptr) { |
||||
tState.setText("State: on"); |
||||
digitalWrite(led1, HIGH); |
||||
} |
||||
|
||||
/*
|
||||
* Button bOff component pop callback function.
|
||||
* When the OFF button is released, the LED turns off and the state text changes.
|
||||
*/ |
||||
void bOffPopCallback(void *ptr) { |
||||
tState.setText("State: off"); |
||||
digitalWrite(led1, LOW); |
||||
} |
||||
|
||||
/*
|
||||
* Slider h0 component pop callback function.
|
||||
* When the slider is released, the LED brightness changes and the slider text changes.
|
||||
*/ |
||||
void h0PopCallback(void *ptr) { |
||||
uint32_t number = 0; |
||||
char temp[10] = {0}; |
||||
// change text with the current slider value
|
||||
h0.getValue(&number); |
||||
utoa(number, temp, 10); |
||||
tSlider.setText(temp); |
||||
// change LED brightness
|
||||
analogWrite(led2, number);
|
||||
} |
||||
|
||||
/*
|
||||
* Button bUpdate component pop callback function.
|
||||
* When the UPDATE button is released, the temperature and humidity readings are updated.
|
||||
*/ |
||||
void bUpdatePopCallback(void *ptr) { |
||||
// Reading temperature or humidity takes about 250 milliseconds!
|
||||
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
|
||||
float h = dht.readHumidity(); |
||||
// Read temperature as Celsius (the default)
|
||||
float t = dht.readTemperature(); |
||||
// Read temperature as Fahrenheit (isFahrenheit = true)
|
||||
float f = dht.readTemperature(true); |
||||
|
||||
// Check if any reads failed and exit early (to try again).
|
||||
if (isnan(h) || isnan(t) || isnan(f)) { |
||||
return; |
||||
} |
||||
// Update temperature in Celsius
|
||||
static char temperatureCTemp[6]; |
||||
dtostrf(t, 6, 2, temperatureCTemp); |
||||
tTempC.setText(temperatureCTemp); |
||||
|
||||
// Update humidity percentage text and progress bar
|
||||
char hTemp[10] = {0};
|
||||
utoa(int(h), hTemp, 10); |
||||
tHumidity.setText(hTemp); |
||||
jHumidity.setValue(int(h)); |
||||
|
||||
// Update temperature in Fahrenheit
|
||||
static char temperatureFTemp[6]; |
||||
dtostrf(f, 6, 2, temperatureFTemp); |
||||
tTempF.setText(temperatureFTemp); |
||||
} |
||||
|
||||
void setup(void) {
|
||||
dht.begin(); |
||||
Serial.begin(9600); |
||||
|
||||
// You might need to change NexConfig.h file in your ITEADLIB_Arduino_Nextion folder
|
||||
// Set the baudrate which is for debug and communicate with Nextion screen
|
||||
nexInit(); |
||||
|
||||
// Register the pop event callback function of the components
|
||||
bOn.attachPop(bOnPopCallback, &bOn); |
||||
bOff.attachPop(bOffPopCallback, &bOff); |
||||
h0.attachPop(h0PopCallback); |
||||
bUpdate.attachPop(bUpdatePopCallback, &bUpdate); |
||||
|
||||
// Set LEDs as outputs
|
||||
pinMode(led1, OUTPUT); |
||||
pinMode(led2, OUTPUT); |
||||
} |
||||
|
||||
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); |
||||
} |
Loading…
Reference in new issue