HTML Index als zweite Datei

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

Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden. Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.

mfg ein Moderator.

oh ok danke war noch dort drinnen sry

Du kannst Webseiten und CSS-Dateien im SPIFFS ablegen.
Schau Dir mal die Seiten von Fips an, da findest Du Beispiele.

Gruß Tommy

du kannst die Daten auch im Filesystem halten aber wichtig - deine Ausgangsbasis ist falsch.
Am ESP32 beginnst du mit dem Beispiel

IDE Example Webserver / HelloServer

es gibt keinen Grund am ESP den HTTP Header selber zu schreiben!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.