Hallo ich möchte gerne mit einem ESP32 eine LED Strip Steuerung programmieren, die ich im Heimnetzwerk steuern kann. Hier zu habe ich auch schon ein fertiges und funktionierendes Skrech.
#include <WiFi.h>
const char* ssid = "";
const char* password = "";
WiFiServer server(80);
String header;
String output23State = "Aus";
const int output23 = 23;
unsigned long currentTime = millis();
unsigned long previousTime = 0;
const long timeoutTime = 2000;
void setup() {
Serial.begin(115200);
pinMode(output23, OUTPUT);
digitalWrite(output23, LOW);
Serial.print("Verbinden mit ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() !=WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi verbunden");
Serial.println("IP Adresse: ");
Serial.println(WiFi.localIP());
server.begin();
}
void loop() {
WiFiClient client = server.available();
if (client) {
currentTime = millis();
previousTime = currentTime;
Serial.println("Neue Sitzung.");
String currentLine = "";
while (client.connected() && currentTime - previousTime <= timeoutTime) {
currentTime = millis();
if (client.available()) {
char c = client.read();
Serial.write(c);
header +=c;
if (c == '\n') {
if (currentLine.length() ==0) {
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println("Connection: close");
client.println();
if (header.indexOf("GET /23/on") >=0) {
Serial.println("GPIO 23 an");
output23State = "an";
digitalWrite(output23, HIGH);
} else if (header.indexOf("GET /23/off") >= 0 {
Serial.println("GPIO 23 aus");
output23State = "aus";
digitalWrite(output23, LOW);
}
client.println("<!DOCTYPE html><html>");
client.println("");
}
}
}
}
}
}
Jetzt ist meine frage ob ich das Skrech so schreiben kann, das es auf eine andere Datei zugreift, wo die index.html die Webseite gestaltet oder muss ich das alles in die letzten zeilen eintragen.
client.println("<!DOCTYPE html><html>");
client.println("");
Danke schonmal in Vorraus