Nextion Tutorial #8 – Temperatur und Luftfeuchtesensor
Nextion Tutorial #8 – Temperatur und Luftfeuchtesensor
In diesem Beitrag soll es darum gehen, wie Ihr ein Temperatur und Luftfeuchtesensor an das Nextion Display anschließt bzw. die Werte anzeigen lassen könnt. Das ist wirklich nicht schwer und dann fangen wir an.
Erstellen des Nextion Programm.
Die Symbole aber ich direkt in Hintergrundbild mit integriert. Der Grund dafür ist, wenn man ein PNG mit Transparenten Hintergrund nimmt, wird das von der Nextion Software nicht berücksichtigt. Hier wird anstelle des Transparent immer ein weißer Hintergrund genommen, leider etwas unschön. Im Bild habe ich die Unterscheide mal sichtbar gemacht. Oben ist das PNG und unten ist das Symbol im Hintergrundbild mit enthalten.
Dann müsst Ihr nur noch 4 Text Baustein anlegen. Eins für die Temperaturanzeigt (tTemp), eins für die Luftfeuchteanzeige (tLuft) und dann noch zwei für die Maßeinheit (°C und % rH). Mit dem Namen tTemp und tLuft wird der Text dann über den Arduino angesprochen.
Wenn Ihr damit fertig sein,braucht Ihr nur noch das Programm auf das Display aufspielen und fertig.
Der Arduino Code
Nun müssen wir uns nur noch im den Arduino Code kümmern. Auch dieser ist wirklich nicht schwer.
#include
#include
SoftwareSerial nextion(2, 3);// Nextion TX zu pin 2 und RX zu pin 3 vom Arduino
Adafruit_AHT10 aht;
void setup() {
nextion.begin(9600);
aht.begin();
String cmd;
cmd += "\"";
nextion.print("tTemp.txt=" + cmd + "" + cmd);
nextion.write(0xFF);
nextion.write(0xFF);
nextion.write(0xFF);
nextion.print("tLuft.txt=" + cmd + "" + cmd);
nextion.write(0xFF);
nextion.write(0xFF);
nextion.write(0xFF);
}
void loop() {
sensors_event_t humidity, temp;
aht.getEvent(&humidity, &temp);// populate temp and humidity objects with fresh data
String cmd;
cmd += "\"";
nextion.print("tTemp.txt=" + cmd + temp.temperature + cmd);
nextion.write(0xFF);
nextion.write(0xFF);
nextion.write(0xFF);
nextion.print("tLuft.txt=" + cmd + humidity.relative_humidity + cmd);
nextion.write(0xFF);
nextion.write(0xFF);
nextion.write(0xFF);
delay(100);
}
#include
#include
SoftwareSerial nextion(2, 3);// Nextion TX zu pin 2 und RX zu pin 3 vom Arduino
Adafruit_AHT10 aht;
Im Setupteil wird die Serielle Schnittstelle mit 9600 Baut gestartet und auch der Temeratursensor. Der String cmd dient zur Erstellung eines „. Hintergrund ein Print Befehlt sieht so aus SerialPrint(„Test“) hier wird dann nur der Text Test ausgegeben. Mit dem Befehlt SerialPrint(Variable) wird der Wert aus der Variable ausgegeben.
Das Display benötig aber so einen Befehle tTemp.txt=“10,2″ das müsste man im Arduino so schreiben nextion.print(„tTemp.txt=“Variable für die Temperatur““) das funktioniert so nicht, daher der Umweg über diesen String.
Hier wird bei Starten es Arduino nur die Texte für tTemp und tLuft gelöscht.
void setup() {
nextion.begin(9600);
aht.begin();
String cmd;
cmd += "\"";
nextion.print("tTemp.txt=" + cmd + "" + cmd);
nextion.write(0xFF);
nextion.write(0xFF);
nextion.write(0xFF);
nextion.print("tLuft.txt=" + cmd + "" + cmd);
nextion.write(0xFF);
nextion.write(0xFF);
nextion.write(0xFF);
}
Im Loopteil wird der Sensor ausgelesen und die Werte an das Display übertragen.
void loop() {
sensors_event_t humidity, temp;
aht.getEvent(&humidity, &temp);// populate temp and humidity objects with fresh data
String cmd;
cmd += "\"";
nextion.print("tTemp.txt=" + cmd + temp.temperature + cmd);
nextion.write(0xFF);
nextion.write(0xFF);
nextion.write(0xFF);
nextion.print("tLuft.txt=" + cmd + humidity.relative_humidity + cmd);
nextion.write(0xFF);
nextion.write(0xFF);
nextion.write(0xFF);
delay(100);
}
Hier könnt Ihr euch die Daten zum Beitrag runterladen.
UNO R3 ATmega328P Board mit USB Kabel Arduino Uno R3 kompatibel
Du sparst