Teil 4:
void ShowMax() // Maximale Temp. / Luftfeuchte auf LCD darstellen
{
tempupdate = 0; // Tempupdate auf 0 setzten
lcd.setCursor(0,1); // Cursorbeginn auf Zeichen 0, Zeile 2
lcd.print(" "); // Text " "
lcd.setCursor(0,1); // Cursorbeginn auf Zeichen 0, Zeile 2
lcd.print("Max:"); // Text "Max:"
if (temp_ti_max < 0.0){ // Wenn Temp. < 0.0°C
if (temp_ti_max <= -10.0){ // Wenn Temp. <= -10.0°C
lcd.setCursor(9,1); // Cursorbeginn auf Zeichen 9, Zeile 2
}
else{
lcd.setCursor(10,1); // Cursorbeginn auf Zeichen 10, Zeile 2
}
}
else if (temp_ti_max < 10.0){ // Wenn Temp. < 10.0°C
lcd.setCursor(11,1); // Cursorbeginn auf Zeichen 11, Zeile 2
}
else { // Sonst normale Ausgabe
lcd.setCursor(10,1); // Cursorbeginn auf Zeichen 10, Zeile 2
}
lcd.print(temp_ti_max,1); // Max. Temp. darstellen und auf 1 Stelle begrenzen
lcd.print(char(223)); // Erstelle mit char(223) das ° Zeichen
lcd.print("C "); // Text "C "
lcd.setCursor(17,1); // Cursorbeginn auf Zeichen 17, Zeile 2
lcd.print(temp_hi_max,0); // Max. Luftfeuchte darstellen und ohne Nachkommastelle darstellen
lcd.print("%"); // Text ("%")
lcd.setCursor(0,3); // Cursorbeginn auf Zeichen 0, Zeile 4
lcd.print(" "); // Text " "
lcd.setCursor(0,3); // Cursorbeginn auf Zeichen 0, Zeile 4
lcd.print("Max:"); // Text "Max:"
if (temp_to_max < 0.0){ // Wenn Temp. < 0.0°C
if (temp_to_max <= -10.0){ // Wenn Temp. <= -10.0°C
lcd.setCursor(9,3); // Cursorbeginn auf Zeichen 9, Zeile 4
}
else{
lcd.setCursor(10,3); // Cursorbeginn auf Zeichen 10, Zeile 4
}
}
else if (temp_to_max < 10.0){ // Wenn Temp. < 10.0°C
lcd.setCursor(11,3); // Cursorbeginn auf Zeichen 11, Zeile 4
}
else { // Sonst normale Ausgabe
lcd.setCursor(10,3); // Cursorbeginn auf Zeichen 10, Zeile 4
}
lcd.print(temp_to_max,1); // Max. Temp. darstellen und auf 1 Stelle begrenzen
lcd.print(char(223)); // Erstelle mit char(223) das ° Zeichen
lcd.print("C "); // Text "C "
lcd.setCursor(17,3); // Cursorbeginn auf Zeichen 17, Zeile 4
lcd.print(temp_ho_max,0); // Max. Luftfeuchte darstellen und ohne Nachkommastelle darstellen
lcd.print("%"); // Text ("%")
sensors.requestTemperatures(); // Temp Werte holen lassen
delay(1000); // Werte für 1s darstellen
buttonState2 = digitalRead(analogPin2); // Min. Taster überwachen
if (buttonState2 == HIGH) { // Wenn Min. Taster nicht gedrückt ist normale Anzeige
lcd.setCursor(0,1); // Cursorbeginn auf Zeichen 0, Zeile 2
lcd.print(" "); // Trick um "Max:" Text zu löschen ohne "lcd.clear" aufzurufen
InTemperature(); // Ausgabe des Temp. Wertes vom "InTemperature"
lcd.setCursor(17, 1); // Cursorbeginn auf Zeichen 17, Zeile 2
HumidityInside(); // Ausgabe der Luftfeuchte vom "HumidityInside"
lcd.setCursor(0,3); // Cursorbeginn auf Zeichen 0, Zeile 4
lcd.print(" "); // Trick um "Max:" Text zu löschen ohne "lcd.clear" aufzurufen
OutTemperature(); // Ausgabe des Temp. Wertes vom "OutTmperature"
lcd.setCursor(17, 3); // Cursorbeginn auf Zeichen 17, Zeile 4
HumidityOutside(); // Ausgabe der Luftfeuchte vom "HumidityOutside"
} else { // Wenn Max. Taster noch immer gedrückt wird, dann alle gespeicherten Werte zurücksetzten
tempupdate = 1; //Tempupdate auf 1 setzten um nach Anzeige ein Update des Screens zu erzeugen
temp_ti_max = 0; // Max. Temp. Inside auf 0 zurücksetzten (Trick damit geupdated wird.)
temp_hi_max = 0; // Max. Hum. Inside auf 0 zurücksetzten (Trick damit geupdated wird.)
temp_to_max = 0; // Max. Temp. Outside auf 0 zurücksetzten (Trick damit geupdated wird.)
temp_ho_max = 0; // Max. Hum. Outside auf 0 zurücksetzten (Trick damit geupdated wird.)
lcd.clear(); // Anzeige löschen
lcd.setCursor(2,1); // Cursorbeginn auf Zeichen 2, Zeile 2
lcd.print("Stored Max. data"); // Text "Stored Min. data"
lcd.setCursor(2,2); // Cursorbeginn auf Zeichen 2, Zeile 3
lcd.print("deleted!"); // Text "deleted!"
delay(2000); // 2s den Text anzeigen
}
}
void ShowActual () // Aktuelle Temperatur und Luftfeuchte darstellen
{
tempupdate = 0; // Tempupdate auf 0 setzten
if((millis() - prev) > interval) { // Delay mit Millis damit der µC nach andere Dinge paralell abarbeiten kann
prev = millis(); // Aktuelle millis Zeit in "prev" speichern
lcd.setCursor(0, 1); // Cursorbeginn auf Zeichen 0, Zeile 2
lcd.print(char(1)); // Zeichne (char(1)) "update"
sensors.requestTemperatures(); // Temp Werte holen lassen
InTemperature(); // Ausgabe des Temp. Wertes vom "InTemperature"
lcd.setCursor(17, 1); // Cursorbeginn auf Zeichen 17, Zeile 2
HumidityInside(); // Ausgabe der Luftfeuchte vom "HumidityInside"
lcd.setCursor(0, 1); // Cursorbeginn auf Zeichen 0, Zeile 2
lcd.print(char(2)); // Zeichne (char(2)) "del"
lcd.setCursor(0, 3); // Cursorbeginn auf Zeichen 0, Zeile 4
lcd.print(char(1)); // Zeichne (char(1)) "update"
sensors.requestTemperatures(); // Temp Werte holen lassen
OutTemperature(); // Ausgabe des Temp. Wertes vom "OutTemperature"
lcd.setCursor(17, 3); // Cursorbeginn auf Zeichen 17, Zeile 4
HumidityOutside(); // Ausgabe der Luftfeuchte vom "HumidityInside"
lcd.setCursor(0, 3); // Cursorbeginn auf Zeichen 0, Zeile 4
lcd.print(char(2)); // Zeichne (char(2)) "del"
}
}
void ShowActualClock () // Aktuelle Temperatur und Luftfeuchte darstellen
{
tempupdate = 0; // Tempupdate auf 0 setzten
lcd.clear(); // LCD löschen
lcd.setCursor(0, 0); // Cursorbeginn auf Zeichen 0, Zeile 1
lcd.print("Wohnzimmer:"); // Text "Wohnzimmer:"
lcd.setCursor(0, 2); // Cursorbeginn auf Zeichen 0, Zeile 3
lcd.print("Aussen:"); // Text "Aussen:"
sensors.requestTemperatures(); // Temp Werte holen lassen
InTemperature(); //Ausgabe des Temp. Wertes vom "InTemperature"
lcd.setCursor(17, 1); // Cursorbeginn auf Zeichen 17, Zeile 2
HumidityInside(); // Ausgabe der Luftfeuchte vom "HumidityInside"
OutTemperature(); // Ausgabe des Temp. Wertes vom "OutTemperature"
lcd.setCursor(17, 3); // Cursorbeginn auf Zeichen 17, Zeile 4
HumidityOutside(); // Ausgabe der Luftfeuchte vom "HumidityOutside"
}