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(""));
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();
}
}