Hallo,
Ich habe mir einmal die Arbeit gemacht eine .h zu erstellen wo ich alles enthalten habe was man so braucht zum Senden verschiedener Befehle die an ein Nextion Display gesendet werden.
Ich wollte den .ino Code so kurz wie möglich halten und auch die Befehle die zum Senden benötigt werden Vereinfachen. Ich hoffe es gelungen.
Ihr könnt gerne noch Sachen Verändern oder verbessern. Schaut es euch einfach an
/*****************************************************************************
**** Beispiele ****
**** ****
**** Wechsel zu einer Seite namens "page1" ****
**** sendToNextionPage("page1"); ****
**** Einen Textwert an das Nextion-Display senden ****
**** sendToNextion("t0", "Hallo Welt!"); ****
**** Einen Integer-Wert an das Nextion-Display senden ****
**** sendToNextion("n0", counter); ****
**** Einen Float-Wert an das Nextion-Display senden ****
**** sendToNextion("f0", temperature, 2); // , 2 Dezimalstellen ****
**** Einen Boolean-Wert an das Nextion-Display senden ****
**** sendToNextion("b0", isOn ? 1 : 0); ****
**** ****
**** Senden eines Strings und eines Float-Wertes ****
**** an verschiedene Variablen auf dem Nextion-Display ****
**** ****
**** sendToNextion("t0", "Temperatur:"); // Text ****
**** sendToNextion("n1", 25); // Integer (z.B. für einen Statuswert) ****
**** sendToNextion("f0", 23.75, 2); // Float-Wert mit 2 Dezimalstellen ****
**** ****
*****************************************************************************/
#ifndef __NEXTCOMMAND_H__
#define __NEXTCOMMAND_H__
#include <Arduino.h>
#include "nano_config.h"
/**********************************************************
* Defination der Serialen Schnittstelle Arduino NanoESP32 *
* *
* #define TXPin 18 // GPIO2 Nextion Display *
* #define RXPin 19 // GPIO3 Nextion Display *
* HardwareSerial nextion(1); *
* *
* nextion.begin(115200, SERIAL_8N1, RXPin, TXPin); *
* *
**********************************************************/
// Konstante für Endzeichen
const char END_CHAR[] = "\xFF\xFF\xFF";
// Senden eines generischen Befehls an das Nextion-Display
void sendToNextion(const String& command) {
if (!nextion) {
Serial.println("Fehler: Nextion-Display nicht verbunden!");
return;
}
nextion.print(command);
nextion.print(END_CHAR);
}
// Überladung: Senden eines numerischen Wertes an eine Variable (unsigned long)
void sendToNextion(const char* varName, unsigned long value) {
String command = String(varName) + ".val=" + String(value);
sendToNextion(command);
}
// Überladung: Senden eines Textwertes an eine Variable (String)
void sendToNextion(const char* varName, const String& value) {
String command = String(varName) + ".txt=\"" + value + "\"";
sendToNextion(command);
}
// Steuert die Sichtbarkeit einer Komponente (z. B. sichtbar/unsichtbar)
void sendToNextion(const String& componentName, int visibility) {
String command = "vis " + componentName + "," + String(visibility);
sendToNextion(command);
}
// Wrapper für Rückwärtskompatibilität
void writeHMICmd(const String& cmd) {
sendToNextion(cmd);
}
// Überladung: Senden eines Float-Wertes an eine Variable (mit Dezimalstellen)
void sendToNextion(const char* varName, float value, int decimalPlaces = 2) {
char buffer[16]; // Buffer für die Umwandlung von Float in String
dtostrf(value, 0, decimalPlaces, buffer); // Float-Wert umwandeln
String command = String(varName) + ".txt=\"" + String(buffer) + "\"";
sendToNextion(command);
}
// Überladung: Senden eines int-Wertes an eine Variable
void sendToNextion(const char* varName, int value) {
String command = String(varName) + ".val=" + String(value);
sendToNextion(command);
}
// Senden eines Seitenwechsels
void sendToNextionPage(const String& pageName) {
String command = "page " + pageName;
sendToNextion(command);
}
#endif // __NEXTCOMMAND_H__
in diesen Sinne euch noch ein Schönes Neues Jahr Wünsche



