.
This commit is contained in:
parent
57f8347354
commit
cd5414e5c2
BIN
Nextion.HMI
Normal file
BIN
Nextion.HMI
Normal file
Binary file not shown.
BIN
Nextion.tft
Normal file
BIN
Nextion.tft
Normal file
Binary file not shown.
136
Vorlage.ino
Normal file
136
Vorlage.ino
Normal file
@ -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);
|
||||||
|
}
|
121
withLibrary.ino
Normal file
121
withLibrary.ino
Normal file
@ -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
Block a user