This commit is contained in:
Tower committed 2026-04-16 17:51:24 +02:00
1 parent 3da9f9f8ee
commit f3469572d0
1 file changed
+74
+74
View File
@@ -0,0 +1,74 @@
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
// --- Zugangsdaten ---
const char* ssid = "Wayne Manor";
const char* password = "einfach10zeichen!";
const char* hostname = "licht";
// --- Hardware ---
const int relayPin = 2; // Pin, an dem das Relais hängt
bool relayState = false;
ESP8266WebServer server(80);
// HTML Webseite
String getHTML() {
String html = "<!DOCTYPE html><html><head><meta charset='UTF-8'>";
html += "<title>Licht Steuerung</title>";
html += "<style>body { font-family: sans-serif; text-align: center; padding-top: 50px; }";
html += ".button { padding: 20px 40px; font-size: 24px; cursor: pointer; border: none; border-radius: 5px; color: white; }";
html += ".on { background-color: #4CAF50; } .off { background-color: #4CAF50; }</style></head>";
html += "<body><h1>Licht Steuerung</h1>";
if (relayState) {
html += "<a href='/toggle'><button class='button off'>schalten</button></a>";
} else {
html += "<a href='/toggle'><button class='button on'>schalten</button></a>";
}
html += "</body></html>";
return html;
}
void handleRoot() {
server.send(200, "text/html", getHTML());
}
void handleToggle() {
relayState = !relayState;
digitalWrite(relayPin, relayState ? LOW : HIGH); // Relais sind oft Low-Level-Triggered
server.sendHeader("Location", "/");
server.send(303);
}
void setup() {
Serial.begin(9600);
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, HIGH); // Standardmäßig aus (bei High-Trigger umkehren)
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
// mDNS (Hostname) starten
if (MDNS.begin(hostname)) {
Serial.println("mDNS Responder gestartet");
}
server.on("/", handleRoot);
server.on("/toggle", handleToggle);
server.begin();
Serial.print("Verbunden! IP-Adresse: ");
Serial.println(WiFi.localIP());
Serial.printf("Hostname: http://%s.local\n", hostname);
}
void loop() {
MDNS.update();
server.handleClient();
}