# include # include # include # include // Name des RTC-Moduls DS3231 rtc(SDA, SCL); int SENSOR_DHT22 = 8; // Namen des Sensors (dht22) SimpleDHT22 dht22(SENSOR_DHT22); // MAC-Adresse im hexadezimal-System // jedem Wert wird 0x vorangestellt byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // IP-Adresse festlegen IPAddress ip(192, 168, 1, 10); // Ethernet-Server Bibliothek starten // Standard-Port 80 EthernetServer server(80); void setup() { // RTC-Modul starten rtc.begin(); // Einstellung Datum/Uhrzeit: /* Wochentag zunächst in Englisch im Programm wird der Wochentag übersetzt SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY rtc.setDOW(SUNDAY); rtc.setTime(0, 54, 30); rtc.setDate(29, 12, 2018); */ Serial.begin(9600); // entweder ... // Verbindung mit MAC-Adresse und IP über DHCP starten // wenn der Versuch misslingt -> mit fester IP starten Ethernet.begin(mac, ip); // Server starten server.begin(); // IP im Seriellen Monitor anzeigen Serial.print("IP des Servers: "); Serial.println(Ethernet.localIP()); } void loop() { float Temperatur; float Luftfeuchtigkeit; // auf Clienten warten ... EthernetClient client = server.available(); // neue Anfrage if (client) { // solange der Client verbunden ist ... while (client.connected()) { if (client.available()) { char Zeichen = client.read(); // \n = Seite vom Clienten vollständig geladen if (Zeichen == '\n') { Serial.print("Anfrage von: "); Serial.println(client.remoteIP()); // HTTP-Anforderung senden client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(); client.println(""); client.println(""); client.println(""); // alle 60 Sekunden aktualisieren client.println(""); client.println("

Temperatur und Luftfeuchtigkeit messen

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

Letzte Messung: "); client.print(" "); // deutsche Wochentage if (rtc.getDOWStr() == "Sunday") client.print("Sonntag "); if (rtc.getDOWStr() == "Monday") client.print("Montag "); if (rtc.getDOWStr() == "Tuesday") client.print("Dienstag "); if (rtc.getDOWStr() == "Wednesday") client.print("Mittwoch "); if (rtc.getDOWStr() == "Thursday") client.print("Donnerstag "); if (rtc.getDOWStr() == "Friday") client.print("Freitag "); if (rtc.getDOWStr() == "Saturday") client.print("Samstag "); client.print(rtc.getDateStr()); client.print(' '); client.print(rtc.getTimeStr()); client.print("

"); client.print("
"); // Daten lesen dht22.read2(&Temperatur, &Luftfeuchtigkeit, NULL); // in Strings umwandeln, . durch , ersetzen String AnzeigeTemperatur = String(Temperatur); AnzeigeTemperatur.replace(".", ","); String AnzeigeLuftfeuchtigkeit = String(Luftfeuchtigkeit); AnzeigeLuftfeuchtigkeit.replace(".", ","); client.print("Temperatur:
"); client.print(AnzeigeTemperatur + " °C
"); client.print("
"); client.print("Luftfeuchtigkeit:
"); client.print(AnzeigeLuftfeuchtigkeit + " %

"); client.print("
"); // Button formatieren client.print(""); client.println("
"); client.println("
"); client.print("Eigene IP: "); client.print(client.remoteIP()); client.println(""); client.println(""); client.print(""); delay(1); client.stop(); } } } } }