From 85ea4e995a75abe061f6fc375ea0481084dddd43 Mon Sep 17 00:00:00 2001 From: schererleander Date: Tue, 20 Jan 2026 08:34:54 +0100 Subject: initial commit --- webserver.ino/webserver/webserver.ino | 105 ++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 webserver.ino/webserver/webserver.ino (limited to 'webserver.ino') diff --git a/webserver.ino/webserver/webserver.ino b/webserver.ino/webserver/webserver.ino new file mode 100644 index 0000000..8f241eb --- /dev/null +++ b/webserver.ino/webserver/webserver.ino @@ -0,0 +1,105 @@ +#include + +const char* ssid = "FRITZ!Box 7590 QM"; +const char* password = "LillyUndLuna"; + +WiFiServer server(80); + +String header; +String outputState = "off"; + +const int output = 16; + +unsigned long currentTime = 0; +unsigned long previousTime = 0; +const long timeoutTime = 2000; + +void setup() { + Serial.begin(115200); + pinMode(output, OUTPUT); + digitalWrite(output, LOW); + + Serial.print("Connecting to "); + Serial.println(ssid); + WiFi.begin(ssid, password); + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + + Serial.println("\nWiFi connected."); + Serial.print("IP address: "); + Serial.println(WiFi.localIP()); + + server.begin(); +} + +void loop() { + WiFiClient client = server.available(); + + if (client) { + previousTime = millis(); + Serial.println("New client connected"); + String currentLine = ""; + + while (client.connected() && (millis() - previousTime <= timeoutTime)) { + if (client.available()) { + char c = client.read(); + Serial.write(c); + header += c; + + if (c == '\n') { + if (currentLine.length() == 0) { + + // ---------- HANDLE REQUEST ---------- + if (header.indexOf("GET /16/on") >= 0) { + Serial.println("GPIO 16 on"); + outputState = "on"; + digitalWrite(output, HIGH); + } else if (header.indexOf("GET /16/off") >= 0) { + Serial.println("GPIO 16 off"); + outputState = "off"; + digitalWrite(output, LOW); + } + + // ---------- SEND RESPONSE ---------- + client.println("HTTP/1.1 200 OK"); + client.println("Content-type:text/html"); + client.println("Connection: close"); + client.println(); + + client.println(""); + client.println(""); + client.println(""); + client.println(""); + + client.println("

ESP32 Web Server

"); + client.println("

GPIO 16 - State: " + outputState + "

"); + if (outputState == "off") { + client.println("

"); + } else { + client.println("

"); + } + client.println(""); + client.println(); + break; + } else { + currentLine = ""; + } + } else if (c != '\r') { + currentLine += c; + } + } + } + + header = ""; + client.stop(); + Serial.println("Client disconnected\n"); + } +} \ No newline at end of file -- cgit v1.3.1