ESP32 - Temperatur über das Web
In diesem Leitfaden befassen wir uns mit dem Prozess, den ESP32 so zu programmieren, dass er als Webserver fungiert, sodass Sie über eine Weboberfläche auf Temperaturdaten zugreifen können. Mit einem angeschlossenen DS18B20-Temperatursensor können Sie die aktuelle Temperatur ganz einfach überprüfen, indem Sie die vom ESP32 bereitgestellte Webseite mit Ihrem Smartphone oder PC aufrufen. Hier ist eine kurze Übersicht darüber, wie es funktioniert:
- Der ESP32 ist als Webserver programmiert.
- Geben Sie die IP-Adresse des ESP32 in einen Webbrowser auf Ihrem Smartphone oder PC ein.
- Der ESP32 antwortet auf die Anfrage des Webbrowsers mit einer Webseite, die die Temperatur enthält, die vom DS18B20-Sensor ausgelesen wurde.

Wir werden zwei Beispielcodes durchgehen:
- ESP32-Code, der eine sehr einfache Webseite bereitstellt, die die Temperatur des DS18B20-Sensors anzeigt. Dadurch fällt es Ihnen leichter, zu verstehen, wie es funktioniert. HTML-Inhalt ist im ESP32-Code eingebettet.
- ESP32-Code, der eine grafische Webseite bereitstellt, die die Temperatur des DS18B20-Sensors anzeigt. Der HTML-Inhalt ist vom ESP32-Code getrennt.
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables ESP32 Starter-Kit (ESP32 enthalten) | |
1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Kaufhinweis: Viele DS18B20-Sensoren auf dem Markt sind von geringer Qualität. Wir empfehlen dringend den Kauf des Sensors von der Marke DIYables über den obigen Link. Wir haben ihn getestet und er funktionierte gut.
Über ESP32-Webserver und DS18B20-Temperatursensor
Wenn Sie nichts über den ESP32-Webserver und den DS18B20-Temperatursensor wissen (Pinbelegung, Funktionsweise, Programmierung ...), erfahren Sie in den folgenden Tutorials mehr darüber:
Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Wenn Sie nicht wissen, wie Sie ESP32 und andere Komponenten mit Strom versorgen, finden Sie Anleitungen im folgenden Tutorial: Wie man ESP32 mit Strom versorgt.
ESP32 Code - einfache Webseite
Schnelle Schritte
- Wenn du ESP32 zum ersten Mal verwendest, sieh dir Anleitung zur Einrichtung der ESP32-Umgebung in der Arduino IDE an.
- Verlege die Verkabelung gemäß dem obigen Bild.
- Verbinde die ESP32-Platine über ein Micro-USB-Kabel mit deinem PC.
- Öffne die Arduino IDE auf deinem PC.
- Wähle das richtige ESP32-Board (z. B. ESP32 Dev Module) und den COM-Port aus.
- Öffne den Library Manager, indem du auf das Library Manager-Symbol in der linken Navigationsleiste der Arduino IDE klickst.
- Suche “ESPAsyncWebServer”, finde dann den von lacamera erstellten ESPAsyncWebServer.
- Klicke auf die Install-Schaltfläche, um die ESPAsyncWebServer-Bibliothek zu installieren.

- Sie werden aufgefordert, die Abhängigkeit zu installieren. Klicken Sie auf die Schaltfläche Alle installieren.

- Suchen Sie im Suchfeld nach “DallasTemperature”, und suchen Sie anschließend nach der DallasTemperature-Bibliothek von Miles Burton.
- Klicken Sie auf die Schaltfläche Installieren, um die DallasTemperature-Bibliothek zu installieren.

- Sie werden aufgefordert, die Abhängigkeit zu installieren. Klicken Sie auf die Alle installieren-Schaltfläche, um die OneWire-Bibliothek zu installieren.

- Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE.
- Passen Sie im Code die WLAN-Informationen (SSID und Passwort) an Ihre eigenen an.
- Klicken Sie auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code auf den ESP32 hochzuladen.
- Öffnen Sie den seriellen Monitor.
- Schauen Sie sich das Ergebnis im seriellen Monitor an.
- Sie werden eine IP-Adresse finden. Geben Sie diese IP-Adresse in die Adressleiste eines Webbrowsers auf Ihrem Smartphone oder PC ein.
- Sie werden die folgende Ausgabe im seriellen Monitor sehen.
- Sie werden eine sehr einfache Webseite des ESP32-Boards im Webbrowser wie unten sehen:

※ Notiz:
Mit dem oben bereitgestellten Code muss die Seite im Webbrowser neu geladen werden, 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 Webseite neu zu laden.
ESP32-Code - Grafische Webseite
Da eine grafische Webseite eine große Menge HTML-Inhalte enthält, wird das Einbetten in den ESP32-Code wie bisher unpraktisch. Um dies zu lösen, müssen der ESP32-Code und der HTML-Code in verschiedene Dateien aufgeteilt werden:
- Der ESP32-Code wird in einer .ino-Datei platziert.
- Der HTML-Code (einschließlich HTML, CSS und JavaScript) wird in einer .h-Datei platziert.
Für Details dazu, wie man den HTML-Code vom ESP32-Code trennt, siehe das ESP32 - Web Server Tutorial.
Schnelle Schritte
- Öffne die Arduino-IDE und erstelle einen neuen Sketch. Gib ihm einen Namen, zum Beispiel newbiely.com.ino.
- Kopiere den untenstehenden Code und öffne ihn in der Arduino-IDE.
- Ändern Sie die WiFi-Informationen (SSID und Passwort) im Code auf Ihre eigenen.
- Erstellen Sie die Datei index.h im Arduino-IDE durch:
- 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 Strg+Umschalt+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 index.h ein.
- Jetzt hast du den Code in zwei Dateien: newbiely.com.ino und index.h
- Klicke auf die Upload-Schaltfläche in der Arduino IDE, um den Code auf den ESP32 hochzuladen.
- Greife wie zuvor mit dem Webbrowser auf deinem PC oder Smartphone auf die Webseite des ESP32-Boards zu. Du wirst sie unten sehen:
- Wenn Sie den HTML-Inhalt in der index.h ändern und nichts in der newbiely.com.ino-Datei berühren, wird die Arduino IDE beim Kompilieren und Hochladen des Codes auf den ESP32 den HTML-Inhalt nicht aktualisieren.
- Um die Arduino IDE dazu zu bringen, den HTML-Inhalt in diesem Fall zu aktualisieren, nehmen Sie eine Änderung in der newbiely.com.ino-Datei vor (z. B. eine leere Zeile hinzufügen, einen Kommentar hinzufügen ...)



※ Notiz: