Nextion Tutorial #8 – Temperatur und Luftfeuchtesensor

Nextion Tutorial #8 – Temperatur und Luftfeuchtesensor

Erstellen des Nextion Programm.

Im ersten Schritt müsst Ihr die Bilder und Schriftarten in das Programm laden. Wie das funktioniert habe ich in den vorherigen Blog Beiträgen schon mal gezeigt. Ich denke das ist für euch kein Problem.

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 <Adafruit_AHT10.h>
#include <SoftwareSerial.h>
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);
}
				
			

Hier werden die Librarys eingebunden, einmal für den Sensor und einmal für das SoftwareSerial. Dann werden noch die Pins vergeben wo die Serielle Schnittstelle drüber laufen soll.
				
					#include <Adafruit_AHT10.h>
#include <SoftwareSerial.h>
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.

Folgende Bauteile wurden verwendet: