Arduino Nano ESP32 - Webserver
In dieser Schritt-für-Schritt-Anleitung zeigen wir dir, wie du so programmierst, dass ein Arduino Nano ESP32-Board zu einem Webserver wird. Du kannst mit einem Webbrowser auf deinem Computer oder Smartphone auf Webseiten zugreifen, die auf dem Arduino Nano ESP32 gehostet werden, wodurch du Daten vom Arduino Nano ESP32 anzeigen und ihn steuern kannst. Um es einfach zu machen, gehen wir in den folgenden Schritten von einfachen zu zunehmend anspruchsvolleren Aufgaben über:
- Arduino Nano ESP32 Web Server - Eine einfache Textanzeige auf der Webseite.
- Arduino Nano ESP32 Web Server - Sensorwerte vom Arduino Nano ESP32 über das Web überwachen.
- Arduino Nano ESP32 Web Server - Den Arduino Nano ESP32 über das Web steuern.
- Arduino Nano ESP32 Web Server - HTML-Inhalte (HTML, CSS und JavaScript) vom Arduino Nano ESP32-Code trennen und in separate Dateien in der Arduino IDE ablegen.
- Arduino Nano ESP32 Web Server - Mehrere Seiten erstellen, wie z. B. index.html, temperature.html, led.html, error_404.html und error_405.html, und mehr.

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Arduino Nano ESP32 - Webserver Hallo Welt
Das ist relativ einfach. Der Arduino Nano ESP32-Code erledigt die folgenden Aufgaben:
- Einen Webserver erstellen, der auf HTTP-Anfragen von einem Webbrowser hört.
- Beim Empfang einer Anfrage von einem Webbrowser antwortet der Arduino Nano ESP32 mit den folgenden Informationen:
- HTTP-Header
- HTTP-Body: Dies enthält HTML-Inhalt mit der Nachricht "Hello World!"
- Wenn Sie neu bei Arduino Nano ESP32 sind, lesen Sie das Tutorial wie man die Umgebung für Arduino Nano ESP32 in der Arduino IDE einrichtet.
- Schließen Sie das Arduino Nano ESP32-Board mit einem USB-Kabel an Ihren Computer an.
- Öffnen Sie die Arduino IDE auf Ihrem Computer.
- Wählen Sie das Arduino Nano ESP32-Board und den entsprechenden COM-Port aus.
- Öffnen Sie den Library Manager, indem Sie auf das Bibliotheks-Verwaltung-Symbol in der linken Navigationsleiste der Arduino IDE klicken.
- Suchen Sie “ESPAsyncWebServer”, dann finden Sie den ESPAsyncWebServer.
- Klicken Sie auf die Schaltfläche Installieren, um die ESPAsyncWebServer-Bibliothek von lacamera zu installieren.
- Sie werden aufgefordert, die Abhängigkeit zu installieren. Klicken Sie auf die Schaltfläche Alle installieren.
- Kopiere den obigen Code und öffne ihn in der Arduino IDE
- Ändere die WLAN-Informationen (SSID und Passwort) im Code auf deine eigenen WLAN-Daten
- Klicke auf die Schaltfläche Hochladen in der Arduino IDE, um den Code auf den Arduino Nano ESP32 hochzuladen
- Öffne den seriellen Monitor
- Sieh dir das Ergebnis im seriellen Monitor an
- Notieren Sie die angezeigte IP-Adresse und geben Sie diese Adresse in die Adresszeile eines Webbrowsers auf Ihrem Smartphone oder PC ein.
- In der Folge sehen Sie die folgende Ausgabe im Serial Monitor.
- Wenn Sie den Webbrowser mit der IP-Adresse aufrufen, wird Ihnen eine sehr einfache Webseite angezeigt, die "Hello, ESP32!" anzeigt. Die Seite wird wie folgt aussehen:
Unten ist der Arduino Nano ESP32-Code, der die oben genannten Aufgaben ausführt:
Schnelle Schritte
Um mit dem Arduino Nano ESP32 zu beginnen, befolgen Sie diese Schritte:



Auslesen des Sensorwerts vom Arduino Nano ESP32 über das Web
Unten ist der Arduino Nano ESP32-Code, der den Temperaturwert auf einer Webseite ausgibt:
Schnelle Schritte
- Kopiere den obigen Code und öffne ihn in der Arduino IDE.
- Passe die WLAN-Informationen (SSID und Passwort) im Code an deine eigenen an.
- Lade den Code auf den Arduino Nano ESP32 hoch.
- Sobald du den Webbrowser über die IP-Adresse aufrufst, wird dir eine sehr einfache Webseite angezeigt, die Informationen über das Arduino Nano ESP32-Board enthält. Die Seite wird wie folgt aussehen:

Um die Webseite mit einer grafischen Benutzeroberfläche (GUI) fantastisch aussehen zu lassen, schauen Sie sich den letzten Abschnitt dieses Tutorials an.
※ Notiz:
Mit dem oben bereitgestellten Code müssen Sie die Webseite im Browser neu laden, um die Temperaturaktualisierung zu erhalten. Im nächsten Teil werden wir lernen, wie man die Webseite dazu bringt, den Temperaturwert im Hintergrund zu aktualisieren, ohne die Seite neu zu laden.
Steuerung des Arduino Nano ESP32 über das Web
Etwas, das mit dem Arduino Nano ESP32 verbunden ist, zu steuern, ist etwas anspruchsvoller als nur einen Wert auszulesen. Das liegt daran, dass der Arduino Nano ESP32 die Anfrage verstehen muss, die er vom Webbrowser erhält, um zu wissen, welche Aktion er ausführen soll.
Für ein umfassenderes und detaillierteres Beispiel empfehle ich, die unten aufgeführten Tutorials anzuschauen:
HTML-Inhalt in eine andere Datei in der Arduino-IDE aufteilen
Wenn Sie eine einfache Webseite mit minimalem Inhalt erstellen möchten, können Sie das HTML direkt in den Arduino Nano ESP32-Code einbetten, wie bereits erläutert.
Allerdings wird es unpraktisch, den gesamten HTML-, CSS- und JavaScript-Code direkt in den Arduino Nano ESP32-Code einzubetten, wenn Sie eine anspruchsvollere und beeindruckendere Webseite mit größerem Inhalt erstellen möchten. In diesem Fall können Sie einen anderen Ansatz verwenden, um den Code zu verwalten:
- Der Arduino Nano ESP32-Code wird in einer .ino-Datei abgelegt, genauso wie zuvor.
- Der HTML-Code (HTML, CSS, JavaScript) wird in einer separaten .h-Datei abgelegt. Dies ermöglicht es Ihnen, den Inhalt der Webseite getrennt vom Arduino Nano ESP32-Code zu halten, was die Verwaltung und Änderung erleichtert.
Um dies zu erreichen, müssen wir zwei große Schritte durchführen:
- HTML-Inhalt vorbereiten
- Arduino Nano ESP32 programmieren
HTML-Inhalte vorbereiten
- Erstellen Sie eine HTML-Datei auf Ihrem lokalen PC, die den HTML-Inhalt (HTML, CSS und JavaScript) für Ihr UI-Design enthält.
- In der HTML-Datei verwenden Sie dort, wo Daten vom Arduino Nano ESP32 angezeigt werden sollen, einen beliebigen Wert.
- Testen Sie es und ändern Sie es, bis Sie zufrieden sind.
- Wir werden den HTML-Inhalt in die .h-Datei in der Arduino IDE legen. Siehe den nächsten Schritt.
Arduino Nano ESP32 programmieren
- Öffne die Arduino-IDE und erstelle einen neuen Sketch. Gib ihm einen Namen, zum Beispiel newbiely.com.ino.
- Kopiere den unten bereitgestellten Code und füge ihn in die erstellte Datei ein.
- Ändere die WiFi-Informationen (SSID und Passwort) im Code auf deine eigenen
- Erstelle die index.h-Datei in der Arduino-IDE, indem:

- Klicken Sie entweder auf die Schaltfläche direkt unter dem Symbol des seriellen Monitors und wählen Sie Neuer Tab, oder verwenden Sie die Tasten Ctrl+Shift+N.
- Geben Sie den Dateinamen index.h ein und klicken Sie auf die Schaltfläche OK.

- Kopieren Sie den untenstehenden Code und fügen Sie ihn in die index.h ein.
- Ersetzen Sie die Zeile REPLACE_YOUR_HTML_CONTENT_HERE durch Ihren HTML-Inhalt, den Sie zuvor vorbereitet haben. Es gibt kein Problem mit dem Zeilenumbruchszeichen. Nachfolgend ist ein Beispiel der Datei index.h:
- Jetzt haben Sie den Code in zwei Dateien: newbiely.com.ino und index.h
- Klicken Sie auf die Schaltfläche Hochladen in der Arduino IDE, um den Code auf den Arduino Nano ESP32 hochzuladen
- Greifen Sie wie zuvor über Ihren Webbrowser auf die Webseite des Arduino Nano ESP32-Boards zu. Sie sehen sie wie unten dargestellt:

※ Notiz:
In den oben gezeigten Codes:
- Der HTML-Code ist so konzipiert, dass die Temperatur im Hintergrund in regelmäßigen Abständen aktualisiert wird, derzeit im Code auf alle 4 Sekunden festgelegt. Das bedeutet, dass der Temperaturwert automatisch aktualisiert wird, ohne dass die Webseite manuell neu geladen werden muss. Sie können das Aktualisierungsintervall im Code an Ihre Vorlieben anpassen.
- Der Arduino Nano ESP32-Code bedient zwei Anfragen vom Webbrowser.
- Eine Anfrage, den HTML-Inhalt der Webseite zurückzugeben
- Die andere Anfrage gibt den von der Webseite angeforderten Temperaturwert im Hintergrund zurück
Für eine umfassendere und detailliertere Darstellung verweisen Sie bitte auf das Arduino Nano ESP32 - DS18B20-Temperatursensor über das Web Tutorial.
※ Notiz:
- Wenn Sie Änderungen am HTML-Inhalt in der index.h-Datei vornehmen, aber nichts in der newbiely.com.ino-Datei ändern, wird die Arduino IDE den HTML-Inhalt beim Kompilieren und Hochladen des Codes auf den Arduino Nano ESP32 nicht neu laden oder aktualisieren.
- Um die Arduino IDE in dieser Situation dazu zu zwingen, den HTML-Inhalt zu aktualisieren, müssen Sie eine Änderung in der newbiely.com.ino-Datei vornehmen. Zum Beispiel können Sie eine leere Zeile hinzufügen oder einen Kommentar einfügen. Diese Aktion veranlasst die IDE dazu zu erkennen, dass Änderungen im Projekt vorgenommen wurden, wodurch sichergestellt wird, dass Ihr aktualisierter HTML-Inhalt in den Upload aufgenommen wird.
Arduino Nano ESP32-Webserver – Mehrere Seiten
Schau dir dieses Arduino Nano ESP32 - Web Server Multiple Pages Tutorial an.