Created
February 22, 2020 14:26
-
-
Save polluxlabs/f18295cfa8009e9037176a134748d303 to your computer and use it in GitHub Desktop.
ESP8266 Web Server
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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