void loop() { // auf Clienten warten ... client = server.available(); if (client) { String SchaltungLesen; // solange der Client verbunden ist ... while (client.connected()) { if (client.available()) { // Anforderung vom Clienten lesen ... char Zeichen = client.read(); // return (\n) gesendet if (Zeichen == '\n') { // wenn der String SchaltungLesen leer ist if (SchaltungLesen == "") { /* HTML-Seite aufbauen die folgenden Anweisungen müssen mit print oder println gesendet werden println "verschönert" den Quelltext (erzeugt einen Zeilenumbruch im Quelltext) " müssen mit \ maskiert werden " -> \" */ // HTML-Seite aufbauen client.println("HTTP/1.1 200 OK"); client.println("Content-type:text/html"); // Leerzeile zwingend erforderlich client.println(); client.println(F("")); client.println(F("")); client.println(F("")); client.println(F("

Ampel mit WiFi-Modul schalten

")); client.println(F("
")); client.println(F("")); // Button rot schalten client.print(F("")); // Button gelb schalten client.print(F("")); // Button grün schalten client.print(F("")); client.println(F("
")); client.println(F("
")); client.println(F("
")); client.println(F("
")); client.println(F("
")); // 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(F("")); client.println(F("")); // HTTP-Antwort endet mit neuer Zeile client.println(); // Seite vollständig geladen -> loop verlassen break; } // wenn SchaltungLesen nicht leer ist -> Inhalt löschen else { SchaltungLesen = ""; } } // bei einem anderen Zeichen als return (\r) // -> Zeichen dem String SchaltungLesen hinzufügen else if (Zeichen != '\r') { SchaltungLesen += Zeichen; } // endsWith überprüft, ob der String SchaltungLesen mit dem // entsprechenden Schaltbefehl endet // R = rot, GE = gelb, GR = grün if (SchaltungLesen.endsWith("GET /R")) { // wenn ROT an -> ROT ausschalten if (!digitalRead(ROT)) digitalWrite(ROT, HIGH); else digitalWrite(ROT, LOW); } if (SchaltungLesen.endsWith("GET /GE")) { if (!digitalRead(GELB)) digitalWrite(GELB, HIGH); else digitalWrite(GELB, LOW); } if (SchaltungLesen.endsWith("GET /GR")) { if (!digitalRead(GRUEN)) digitalWrite(GRUEN, HIGH); else digitalWrite(GRUEN, LOW); } } } // delay(100); client.stop(); } }