ESP - WiFi und Web­ser­ver starten


Die Pro­zes­sor­fa­mi­li­en

  • ESP32
    ESP32-Wroom
    ESP32-C6
    XIAO-ESP32-C3
    Ardui­no Nano ESP32
  • ESP8266
    NodeM­CU
    Wemos D1 Mini

Das Pro­gramm star­tet die WiFi-Funk­ti­on der ESPs und erstellt eine Web­sei­te mit einer Über­schrift und einer hori­zon­ta­len Linie. Beach­te hier die Unter­schie­de beim Start von WiFi und Web­ser­ver der Pro­zes­sor­fa­mi­li­en ESP8266 und ESP32.

  • ESP8266
    #include "ESP8266WebServer.h"
    ESP8266WebServer Server(80);
  • ESP32
    #include "WiFi.h"
    #include "WebServer.h"
    Web­Ser­ver Server(80);

Im Pro­gramm kannst du ent­schei­den, ob du dem Rou­ter die Ver­ga­be der IP-Adres­­se über­las­sen willst (sta­tischeIP = fal­se) oder selbst eine IP-Adres­­se fest­le­gen willst (sta­tischeIP = true). 

Die IP-Adres­­se wird im Seri­el­len Moni­tor ange­zeigt, du musst sie in der Adress­zei­le eines Brow­sers dei­ner Wahl eingeben.

In der Funk­ti­on Sei­te­Bau­en() wird die Sei­te zusam­men­ge­setzt. Der String Sei­te ent­hält dabei die HTML-Ele­men­te. Jedes neue Ele­men­te wird dem String hinzugefügt (+=).

// ESP32
#include "WiFi.h"
#include "WebServer.h"
WebServer Server(80);

// ESP8266
// #include "ESP8266WebServer.h"
// ESP8266WebServer Server(80);

// Router-SSID/Passwort anpassen
char Router[] = "Router_SSID";
char Passwort[] = "xxxxxxxx";

// statischeIP = false -> IP-Adresse über DHCP vergeben
// statischeIP = true -> statische IP festlegen
bool statischeIP = false;

// ip und gateway müssen an das lokale Netz angepasst werden
IPAddress ip(192, 168, 1, 100);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);

void setup() 
{
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(9600);

  // auf serielle Verbindung warten
  while (!Serial);
  delay(1000);

  // WiFi starten
  WiFi.begin(Router, Passwort);

  // statische IP vergeben
  if (statischeIP) 
  {
    WiFi.config(ip, gateway, subnet);
    Serial.print("Verbunden mit ");
    Serial.println(Router);

    // IP anzeigen
    Serial.print("Statische IP: ");
  }

  // IP über DHCP ermitteln
  else 
  {
    while (WiFi.status() != WL_CONNECTED) 
    {
      delay(200);
      Serial.print(".");
    }
    Serial.println();
    Serial.print("Verbunden mit ");
    Serial.println(Router);
    Serial.print("IP über DHCP: ");
  }

  // IP anzeigen
  IPAdresse = String(WiFi.localIP());
  Serial.println(WiFi.localIP());

  // Webserver starten
  // / -> Aufruf der URL, SeiteBauen -> Aufruf der Funktion
  Server.begin();
  Server.on("/", SeiteBauen);
}

void loop() 
{
  // auf Anfragen warten
  Server.handleClient(); 
}

void SeiteBauen()
{
  // Seite "zusammenbauen"
  String Seite = "";
  Seite += "<h1>Webserver gestartet</h1>";
  Seite += "<hr>";

  // Seite anzeigen
  Server.send(200, "text/html", Seite);
}

Letzte Aktualisierung: Okt. 26, 2024 @ 10:13