ESP32 Multi-Page Webserver Voorbeeld
WebServer Voorbeeld - Multi-Page Webserver
Overzicht
Dit voorbeeld laat zien hoe u een multi-page webserver maakt op de ESP32 met meerdere onderling verbonden pagina’s voor de startpagina, temperatuurmonitoring en LED-besturing.
Kenmerken
- Multi-page navigatie met naadloze overgang tussen pagina’s
- Startpagina met navigatiemenu en systeeminformatie
- Temperatuurmonitoringpagina met realtime temperatuuraanzeige en mogelijkheid tot verversen
- LED-besturingspagina met functie om LED aan/uit te schakelen
- Template-gebaseerde HTML met dynamische inhoudsvervanging
- Hulpfuncties voor overzichtelijke, onderhoudbare code
Benodigde Hardware
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Bibliotheek Installatie
Volg deze stappen nauwkeurig:
- Als u voor het eerst met de ESP32 werkt, raadpleeg dan de tutorial over het opzetten van de omgeving voor ESP32 in de Arduino IDE.
- Verbind de ESP32 met uw computer via een USB-kabel.
- Start de Arduino IDE op uw computer.
- Selecteer de juiste ESP32 board (bijvoorbeeld ESP32) en COM-poort.
- Open de Library Manager door op het icoon Library Manager te klikken aan de linkerkant van de Arduino IDE.
- Zoek op Web Server for ESP32 en vind de mWebSockets door DIYables.
- Klik op de knop Install om de mWebSockets-library toe te voegen.

Webserver Voorbeeld
- In de Arduino IDE, ga naar File Examples Web Server for ESP32 WebServer om de voorbeeldcode te openen
Circuitschema Aansluiting
Geen externe componenten nodig - dit voorbeeld gebruikt de ingebouwde LED op pin 13.
Code Structuur
- home.h: HTML-template voor de startpagina
- temperature.h: Template voor de temperatuurmonitoringpagina
- led.h: Template voor de LED-besturingspagina
- WebServer.ino: Hoofdserver logica
Installatie-instructies
1. Netwerkconfiguratie
Pas de WiFi-inloggegevens direct aan in het WebServer.ino bestand:
2. Code Uploaden en Uitvoer Monitoren
- Verbind uw ESP32 met uw computer
- Selecteer het juiste board en de juiste poort in de Arduino IDE
- Upload de sketch WebServer.ino
- Open de Seriële Monitor (9600 baud)
- Wacht tot de WiFi verbinding tot stand is gebracht
- Noteer het IP-adres dat getoond wordt
- Mocht u het IP-adres niet zien in de Seriële Monitor, druk dan op de resetknop van de ESP32
Gebruik
Open uw webbrowser en voer het IP-adres dat in de Seriële Monitor werd weergegeven in om toegang te krijgen tot de ESP32 Webserver.

Test de Temperatuurmonitoring:
- Klik op het menu "Temperature".
- Bekijk de temperatuurweergave.

Test de LED-besturing:
- Klik op het menu "LED Control". U ziet dan de webinterface zoals hieronder:

- Schakel de LED aan en uit met de knoppen.
- Zie hoe de status van de ingebouwde LED op de ESP32 direct bijgewerkt wordt.
Beschikbare Pagina’s
Startpagina (`/`)
- URL: http://your-esp32-ip/
- Kenmerken:
- Welkomstbericht met systeeminformatie
- Navigatiemenu naar alle pagina’s
- Schone, professionele lay-out
- URL: http://your-esp32-ip/temperature
- Kenmerken:
- Realtime temperatuurweergave in graden Celsius
- Automatisch verversen elke 5 seconden
- Handmatige verversknop
- Navigatie terug naar startpagina
- URL: http://your-esp32-ip/led
- ON URL: http://your-esp32-ip/led/on
- OFF URL: http://your-esp32-ip/led/off
- Kenmerken:
- Weergave van huidige LED-status
- Aparte routes voor aan- en uit-acties
- Directe statusupdates na statusverandering
- Navigatie terug naar startpagina
- %TEMP_C%: Wordt vervangen door de huidige temperatuurwaarde in graden Celsius
- %LED_STATUS%: Wordt vervangen door de huidige LED-status ("ON" of "OFF")
- Maak een nieuwe HTML-template in een nieuw headerbestand
- Voeg een routehandler toe in de hoofdloop
- Werk het navigatiemenu van bestaande pagina’s bij
- Controleer SSID en wachtwoord in het WebServer.ino bestand
- Controleer de beschikbaarheid van het WiFi-netwerk
- Zorg dat de ESP32 binnen het bereik van het WiFi-netwerk is
- Controleer de Seriële Monitor op het IP-adres
- Controleer of de URL in de browser overeenkomt met het IP-adres van de ESP32
- Probeer de pagina te verversen
- Controleer of de LED is aangesloten op pin 13
- Bekijk debugberichten in de Seriële Monitor
- Controleer of de routehandlers geregistreerd zijn
- Verken het voorbeeld WebServerJson.ino voor REST API-ontwikkeling
- Probeer WebServerQueryStrings.ino voor geavanceerde parameterverwerking
- Bekijk WebServerWithWebSocket.ino voor realtime communicatie
Temperatuurpagina (`/temperature`)
LED-besturingspagina (`/led`)
Code Uitleg
Server Routes
Template Systeem
Het voorbeeld maakt gebruik van een placeholder-systeem om dynamische inhoud te vervangen:
Hulpfuncties
Aanpassingen
Nieuwe Pagina’s Toevoegen
Styling
Pas de CSS aan in de HTML-templates om het uiterlijk te wijzigen:
Sensoren Toevoegen
Vervang de gesimuleerde temperatuurwaarde door werkelijke sensorwaarden:
Problemen Oplossen
Veelvoorkomende Problemen
WiFi Verbinding Mislukt
Pagina’s Laden Niet
LED Reageert Niet
Debug Output
Activeer extra debugging door Serial.println() statements toe te voegen: