void loop() { float Temperatur; float Luftfeuchtigkeit; String Nummer; String AnzeigeTemperatur; String AnzeigeLuftfeuchtigkeit; client = server.available(); if (client) { String SchaltungLesen = ""; while (client.connected()) { if (client.available()) { char Zeichen = client.read(); if (Zeichen == '\n') { if (SchaltungLesen.length() == 0) { // HTTP-Anforderung senden client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); // Leerzeile zwingend erforderlich client.println(); /* HTML-Seite aufbauen die folgenden Anweisungen müssen mit print oder println gesendet werden println "verschönert" den Quelltext " muss mit \" maskiert werden */ client.println(""); client.println(""); client.println(""); // alle 60 Sekunden aktualisieren mit meta-Tag client.println(""); client.println("

Temperatur und Luftfeuchtigkeit messen

"); client.println("
"); client.print("

Letzte Messung: "); DateTime aktuell = rtc.now(); char Datum[] = "DD.MM.YYYY "; char Zeit[] = "hh:mm:ss Uhr"; switch (aktuell.dayOfTheWeek()) { case 0: client.print(F("Sonntag")); break; case 1: client.print(F("Montag")); break; case 2: client.print(F("Dienstag")); break; case 3: client.print(F("Mittwoch")); break; case 4: client.print(F("Donnerstag")); break; case 5: client.print(F("Freitag")); break; case 6: client.print(F("Samstag")); break; } client.print(", "); client.print(aktuell.toString(Datum)); client.println(aktuell.toString(Zeit)); client.println("

"); client.println("
"); // Daten lesen AnzeigeTemperatur = String(dht.readTemperature()); AnzeigeTemperatur.replace(".", ","); AnzeigeLuftfeuchtigkeit = String(dht.readHumidity()); AnzeigeLuftfeuchtigkeit.replace(".", ","); client.print("Temperatur:
"); client.println(AnzeigeTemperatur + " °C
"); client.println("
"); client.print("Luftfeuchtigkeit:
"); client.println(AnzeigeLuftfeuchtigkeit + " %

"); client.println("
"); // Datum speichern gespeichertesDatum[Zaehler] = aktuell.toString(Datum); gespeichertesDatum[Zaehler] = gespeichertesDatum[Zaehler] + aktuell.toString(Zeit); // Temperatur speichern gespeicherteTemperatur[Zaehler] = AnzeigeTemperatur; // Luftfeuchtigkeit speichern gespeicherteLuftfeuchtigkeit[Zaehler] = AnzeigeLuftfeuchtigkeit; client.println(F("Gespeicherte Werte:
")); // gespeicherte Daten anzeigen for (int i = 0; i <= Zaehler; i ++) { client.println(String(i + 1) + ": "); switch (aktuell.dayOfTheWeek()) { case 0: client.print(F("Sonntag")); break; case 1: client.print(F("Montag")); break; case 2: client.print(F("Dienstag")); break; case 3: client.print(F("Mittwoch")); break; case 4: client.print(F("Donnerstag")); break; case 5: client.print(F("Freitag")); break; case 6: client.print(F("Samstag")); break; } client.print(", "); client.println(gespeichertesDatum[i]); client.print(F(" | Temperatur: ▶ ")); client.println(gespeicherteTemperatur[i]); client.print(F(" °C")); client.print(F(" | Luftfeuchtigkeit: ▶ ")); client.println(gespeicherteLuftfeuchtigkeit[Zaehler]); client.println(F("%")); client.println(F("
")); } client.println(F("
")); // Button formatieren client.print(""); client.println("
"); client.println("
"); // IPs anzeigen client.print(F("Eigene IP: ")); client.print(client.remoteIP()); client.print(F("")); client.print(F("
IP Arduino: ")); client.print(WiFi.localIP()); client.print(F("")); client.println(""); client.println(""); client.print(""); // HTTP-Antwort endet mit neuer Zeile client.println(); // Seite vollständig geladen -> loop verlassen break; } else { SchaltungLesen = ""; } } // bei einem anderen Zeichen als return (\r) // -> Zeichen dem String SchaltungLesen hinzufügen else if (Zeichen != '\r') { SchaltungLesen += Zeichen; } } } client.stop(); // Zaehler erhöhen und bei > AnzahlDaten zurücksetzen if (Zaehler < AnzahlDaten) Zaehler ++; if (Zaehler >= AnzahlDaten) Zaehler = 0; } }