void loop() { // auf Clienten warten ... EthernetClient Client = Server.available(); // neue Anfrage if (Client) { // solange der Client verbunden ist ... while (Client.connected()) { if (Client.available()) { // Anforderung vom Clienten lesen ... char Zeichen = Client.read(); // ... und dem String hinzufügen // SchaltungLesen beinhaltet den Befehl zum Schalten der LED SchaltungLesen += Zeichen; // return gesendet if (Zeichen == '\n') { /* 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 " -> \" */ Client.println(F("HTTP/1.1 200 OK")); Client.println(F("Content-Type: text/html")); // Leerzeile zwingend erforderlich Client.println(); Client.println(F("")); Client.println(F("")); Client.println(F("")); Client.println(F("

Ampel mit Ethernet-Shield schalten

")); Client.println(F("
")); Client.println(F("")); // Button rot ein Client.print(F("")); // Button rot aus Client.print(F("")); // Button gelb ein Client.print(F("")); // Button gelb aus Client.print(F("")); // Button grün ein Client.print(F("")); // Button grün aus Client.print(F("")); Client.println(F("
")); Client.println(F("")); Client.println(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 des Ethernet-Shields: ")); Client.print(Ethernet.localIP()); Client.print(F("")); Client.println(F("")); Client.println(F("")); delay(1); Client.stop(); /* ein Klick auf einen der Buttons erzeugt eine GET-Anweisung in der Form GET /RotEin HTTP/1.1 -> Button rot ein auswerten GET /RotAus HTTP/1.1 -> Button rot aus auswerten indexOf durchsucht den String nach diesen Zeichen (> 0 = Zeichen gefunden) */ if (SchaltungLesen.indexOf("RotEin") > 0) digitalWrite(ROT, HIGH); if (SchaltungLesen.indexOf("RotAus") > 0) digitalWrite(ROT, LOW); if (SchaltungLesen.indexOf("GelbEin") > 0) digitalWrite(GELB, HIGH); if (SchaltungLesen.indexOf("GelbAus") > 0) digitalWrite(GELB, LOW); if (SchaltungLesen.indexOf("GruenEin") > 0) digitalWrite(GRUEN, HIGH); if (SchaltungLesen.indexOf("GruenAus") > 0) digitalWrite(GRUEN, LOW); // String SchaltungLesen leeren SchaltungLesen = ""; } } } } }