Skip to content

Instantly share code, notes, and snippets.

@polluxlabs
Created February 22, 2020 14:26
Show Gist options
  • Save polluxlabs/f18295cfa8009e9037176a134748d303 to your computer and use it in GitHub Desktop.
Save polluxlabs/f18295cfa8009e9037176a134748d303 to your computer and use it in GitHub Desktop.
ESP8266 Web Server
// Library für WiFi-Verbindung
#include <ESP8266WiFi.h>
// Daten des WiFi-Netzwerks
const char* ssid = "Dein Netzwerkname";
const char* password = "Dein Passwort";
// Port des Web Servers auf 80 setzen
WiFiServer server(80);
// Variable für den HTTP Request
String header;
void setup() {
Serial.begin(115200);
// Mit dem WiFi-Netzwerk verbinden
Serial.print("Connecting to WiFi");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
// Lokale IP-Adresse im Seriellen Monitor ausgeben und Server starten
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
server.begin();
}
void loop() {
WiFiClient client = server.available(); // Auf Clients (Server-Aufrufe) warten
if (client) { // Bei einem Aufruf des Servers
Serial.println("Client available");
String currentLine = ""; // String definieren für die Anfrage des Clients
while (client.connected()) { // Loop, solange Client verbunden ist
if (client.available()) {
char c = client.read(); // Ein (1) Zeichen der Anfrage des Clients lesen
Serial.write(c); // und es im Seriellen Monitor ausgeben
header += c;
if (c == '\n') { // bis eine Neue Zeile ausgegeben wird
// Wenn der Client eine Leerzeile sendet, ist das Ende des HTTP Request erreicht
if (currentLine.length() == 0) {
// Der Server sendet nun eine Antwort an den Client
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println("Connection: close");
client.println();
// Die Webseite anzeigen
client.println("<!DOCTYPE html><html>");
client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">");
client.println("<link rel=\"icon\" href=\"data:,\"></head>");
client.println("<body><h1 align=\"center\">Hier spricht dein Server! :)</h1></body></html>");
// Die Antwort mit einer Leerzeile beenden
client.println();
// Den Loop beenden
break;
} else { // Bei einer Neuen Zeile, die Variable leeren
currentLine = "";
}
} else if (c != '\r') { // alles andere als eine Leerzeile wird
currentLine += c; // der Variable hinzugefüht
}
}
}
// Variable für den Header leeren
header = "";
// Die Verbindung beenden
client.stop();
Serial.println("Client disconnected");
Serial.println("");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment