Arduino Nano ESP32 – Steuert Servomotor über das Web
Dieses Tutorial zeigt Ihnen, wie Sie den Arduino Nano ESP32 verwenden, um einen Servomotor über das Web von einem Browser auf Ihrem Smartphone oder PC aus zu steuern. Wir verwenden etwas namens WebSocket, um den Servomotor sanft und dynamisch über eine grafische Web-Benutzeroberfläche zu steuern.

Nun, warum WebSocket verwenden? Hier ist die Idee:
- Ohne WebSocket musst du jedes Mal, wenn du den Winkel des Servos ändern willst, die Seite neu laden. Nicht so gut!
- Aber mit WebSocket richten wir eine spezielle Verbindung zwischen der Webseite und dem Arduino Nano ESP32 ein. Das bedeutet, dass wir den Winkelwert im Hintergrund an den Arduino Nano ESP32 senden können, ohne die Seite neu zu laden. Das Servo bewegt sich flüssig und in Echtzeit. Ganz schön cool, oder?
Lass uns anfangen!
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über Servomotor und WebSocket
Wir haben spezifische Tutorials zu Servomotoren und WebSocket. Jedes Tutorial enthält detaillierte Informationen und Schritt-für-Schritt-Anleitungen zur Hardware-Pinbelegung, dem Funktionsprinzip, der Verdrahtung zum ESP32, dem Arduino Nano ESP32-Code... Erfahren Sie mehr darüber in den folgenden Links:
- Arduino Nano ESP32 - Servo Motor tutorial
- Arduino Nano ESP32 - WebSocket tutorial
Wie es funktioniert
Der Arduino Nano ESP32-Code erstellt sowohl einen Webserver als auch einen WebSocket-Server. So funktioniert es:
- Wenn Sie die IP-Adresse des ESP32 in einem Webbrowser eingeben, fordert der ESP32 die Webseite (Benutzeroberfläche) vom Arduino Nano ESP32 an.
- Der Webserver des ESP32 antwortet, indem er den Inhalt der Webseite (HTML, CSS, JavaScript) sendet.
- Ihr Webbrowser zeigt dann die Webseite an.
- Der JavaScript-Code auf der Webseite stellt eine WebSocket-Verbindung zum WebSocket-Server auf dem Arduino Nano ESP32 her.
- Sobald diese WebSocket-Verbindung hergestellt ist, sendet der JavaScript-Code den Winkelwert über diese WebSocket-Verbindung im Hintergrund an den Arduino Nano ESP32, wenn Sie den Regler auf der Webseite drehen.
- Der WebSocket-Server auf dem ESP32 steuert entsprechend dem empfangenen Winkelwert den Servomotor.
Kurz gesagt ermöglicht die WebSocket-Verbindung eine nahtlose Echtzeitsteuerung des Winkels des Servomotors.
Verdrahtungsdiagramm zwischen Servomotor und Arduino Nano ESP32
- Beim Betrieb des Arduino Nano ESP32-Boards über den USB-Anschluss.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
- Beim Betrieb des Arduino Nano ESP32-Boards über den VIN-Pin.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
※ Notiz:
Wenn das Arduino Nano ESP32-Board über den USB-Anschluss mit Strom versorgt wird, sollte der Servo-Motor nicht über den Vin- bzw. den VBUS-Pin mit Strom versorgt werden. Wenn Sie den Servo-Motor über diesen Pin mit Strom versorgen, kann Ihr Board beschädigt werden.
Arduino Nano ESP32 Code
Der Inhalt der Webseite (HTML, CSS, JavaScript) wird separat in einer index.h-Datei gespeichert. Daher werden wir zwei Code-Dateien in der Arduino-IDE haben:
- Eine .ino-Datei, die Arduino Nano ESP32-Code enthält, der einen Webserver und WebSocket-Server erstellt und einen Servomotor steuert.
- Eine .h-Datei, die den Inhalt der Webseite enthält.
Schnelle Schritte
Um mit dem Arduino Nano ESP32 zu beginnen, befolgen Sie diese Schritte:
- 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.
- Verbinden Sie die Bauteile gemäß dem bereitgestellten Diagramm.
- 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 Library Manager-Symbol in der linken Navigationsleiste der Arduino IDE klicken.
- Suchen Sie “DIYables ESP32 WebServer”, und finden Sie dann den DIYables ESP32 WebServer, der von DIYables erstellt wurde.
- Klicken Sie auf die Install-Schaltfläche, um die DIYables ESP32 WebServer-Bibliothek zu installieren.

- Geben Sie ESP32Servo in das Suchfeld ein, suchen Sie anschließend nach der Servo-Bibliothek von Kevin Harrington,John K. Bennett.
- Klicken Sie auf die Schaltfläche Installieren, um die Servo-Bibliothek für Arduino Nano ESP32 zu installieren.

- In der Arduino-IDE erstelle ein neues Sketch, gib ihm einen Namen, zum Beispiel newbiely.com.ino
- Kopiere den folgenden Code und öffne ihn mit der Arduino-IDE
- Erstelle die index.h-Datei in der Arduino IDE, indem du:
- Entweder klickst du auf den Button direkt unter dem Symbol des seriellen Monitors und wählst New Tab, oder verwende die Tasten Ctrl+Shift+N.
- Geben Sie den Dateinamen index.h ein und klicken Sie auf die OK Schaltfläche
- Kopieren Sie den folgenden Code und fügen Sie ihn in die index.h ein.
- Nun haben Sie den Code in zwei Dateien: newbiely.com.ino und index.h
- Klicken Sie in der Arduino IDE auf die Schaltfläche Hochladen, um den Code auf den Arduino Nano ESP32 hochzuladen.
- Öffnen Sie den seriellen Monitor.
- Schauen Sie sich das Ergebnis im seriellen Monitor an.
- Notieren Sie sich die angezeigte IP-Adresse und geben Sie diese Adresse in die Adressleiste eines Webbrowsers auf Ihrem Smartphone oder PC ein.
- Sie sehen die Webseite wie unten dargestellt:
- Der JavaScript-Code der Webseite erstellt automatisch die WebSocket-Verbindung zum Arduino Nano ESP32.
- Jetzt können Sie den Winkel des Servomotors über die Weboberfläche steuern.
- Wenn Sie den HTML-Inhalt in der index.h ändern und nichts in der newbiely.com.ino-Datei berühren, wird beim Kompilieren und Hochladen des Codes auf den ESP32 der HTML-Inhalt von der Arduino IDE nicht aktualisiert.
- Um die Arduino IDE in diesem Fall dazu zu bringen, den HTML-Inhalt zu aktualisieren, nehmen Sie eine Änderung in der newbiely.com.ino-Datei vor (z. B. eine leere Zeile hinzufügen, einen Kommentar hinzufügen....)



Um den Speicher des ESP32 zu schonen, werden die Bilder des Servomotors NICHT auf dem Arduino Nano ESP32 gespeichert. Stattdessen werden sie im Internet gespeichert, daher muss Ihr Telefon oder PC eine Internetverbindung haben, um Bilder für die Websteuerungsseite laden zu können.
※ Notiz:
Zeilenweise Code-Erklärung
Der obige Arduino Nano ESP32-Code enthält eine zeilenweise Erklärung. Bitte lesen Sie die Kommentare im Code!