ESP8266 - Steuert einen Servomotor über das Web
Dieses Tutorial erklärt Ihnen, wie Sie den ESP8266 verwenden, um einen Servomotor über das Web von einem Browser auf Ihrem Smartphone oder PC aus zu steuern. Wir verwenden WebSocket, um den Servomotor reibungslos 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 ESP8266 ein. Das bedeutet, wir können den Winkelwert im Hintergrund an den ESP8266 senden, ohne die Seite neu zu laden. Dadurch bewegt sich der Servo flüssig und in Echtzeit. Ziemlich 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 spezielle Tutorials zu Servomotoren und WebSocket. Jedes Tutorial enthält detaillierte Informationen und Schritt-für-Schritt-Anleitungen zur Hardware-Pinbelegung, zur Funktionsweise, zur Verkabelung des ESP8266, zum ESP8266-Code... Erfahren Sie mehr darüber unter den folgenden Links:
- ESP8266 - Servo Motor tutorial
- ESP8266 - WebSocket tutorial
Wie es funktioniert
Der ESP8266-Code erstellt sowohl einen Webserver als auch einen WebSocket-Server. So funktioniert es:
- Wenn Sie die IP-Adresse des ESP8266 in einem Webbrowser eingeben, fordert er die Webseite (Benutzeroberfläche) vom ESP8266 an.
- Der Webserver des ESP8266 antwortet, indem er den Inhalt der Webseite (HTML, CSS, JavaScript) sendet.
- Ihr Webbrowser zeigt dann die Webseite an.
- Der JavaScript-Code innerhalb der Webseite baut eine WebSocket-Verbindung zum WebSocket-Server auf dem ESP8266 auf.
- Sobald diese WebSocket-Verbindung hergestellt ist, sendet der JavaScript-Code, wenn Sie den Regler auf der Webseite betätigen, den Winkelwert über diese WebSocket-Verbindung im Hintergrund an den ESP8266.
- Der WebSocket-Server auf dem ESP8266 steuert entsprechend dem empfangenen Winkelwert den Servo-Motor.
Kurz gesagt ermöglicht die WebSocket-Verbindung die reibungslose Echtzeitsteuerung des Winkels des Servomotors.
Schaltplan zwischen Servomotor und ESP8266

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.
Der Einfachheit halber wird das oben gezeigte Verdrahtungsdiagramm für Test- oder Lernzwecke sowie für Servomotoren mit geringem Drehmoment verwendet. In der Praxis empfehlen wir dringend die Verwendung einer externen Stromversorgung für den Servomotor. Das unten gezeigte Verdrahtungsdiagramm zeigt, wie der Servomotor an eine externe Stromquelle angeschlossen wird.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
ESP8266-Quellcode
Der Inhalt der Webseite (HTML, CSS und JavaScript) wird separat in einer index.h-Datei gespeichert. Daher werden wir zwei Code-Dateien in der Arduino IDE haben:
- Eine .ino-Datei, die ESP8266-Code enthält und einen Webserver sowie WebSocket-Server erstellt und einen Servomotor steuert
- Eine .h-Datei, die den Inhalt der Webseite enthält
Schnelle Schritte
Um mit dem ESP8266 in der Arduino-IDE zu beginnen, folgen Sie diesen Schritten:
- Schauen Sie sich das Tutorial So richten Sie die ESP8266-Umgebung in der Arduino-IDE ein an, falls dies Ihr erster Einsatz mit ESP8266 ist.
- Verbinden Sie die Komponenten, wie im Diagramm gezeigt.
- Schließen Sie das ESP8266-Board über ein USB-Kabel an Ihren Computer an.
- Öffnen Sie die Arduino IDE auf Ihrem Computer.
- Wählen Sie das richtige ESP8266-Board aus, zum Beispiel (z. B. NodeMCU 1.0 (ESP-12E-Modul)), und den entsprechenden COM-Port.
- Öffnen Sie den Bibliotheks-Manager, indem Sie auf das Bibliotheks-Manager-Symbol in der linken Navigationsleiste der Arduino IDE klicken.
- Suchen Sie “WebSockets”, und finden Sie anschließend die von Markus Sattler erstellte WebSockets-Bibliothek.
- Klicken Sie auf die Schaltfläche Installieren, um die WebSockets-Bibliothek zu installieren.

- In der Arduino-IDE erstelle ein neues Sketch, gib ihm einen Namen, zum Beispiel newbiely.com.ino
- Kopiere den untenstehenden Code und öffne ihn mit der Arduino-IDE
- Erstellen Sie die index.h Datei in der Arduino IDE durch:
- Entweder klicken Sie auf die Schaltfläche direkt unter dem Symbol des Seriellen Monitors und wählen Neue Registerkarte, oder verwenden Sie Ctrl+Shift+N Tastenkombinationen.
- Geben Sie den Dateinamen index.h ein und klicken Sie auf die OK-Schaltfläche.
- Kopieren Sie den untenstehenden Code und fügen Sie ihn in die index.h ein.
- Jetzt haben Sie den Code in zwei Dateien: newbiely.com.ino und index.h
- Klicken Sie auf die Hochladen-Schaltfläche in der Arduino-IDE, um den Code auf den ESP8266 hochzuladen.
- Öffnen Sie den Seriellen Monitor.
- Überprüfen Sie das Ergebnis im Seriellen Monitor.
- 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 ESP8266.
- Jetzt können Sie den Winkel des Servomotors über die Weboberfläche steuern.
- Wenn Sie den HTML-Inhalt in der index.h-Datei ändern und dabei nichts in der newbiely.com.ino-Datei berühren, wird beim Kompilieren und Hochladen des Codes auf den ESP8266 der HTML-Inhalt 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 ESP8266 zu schonen, werden die Bilder des Servomotors NICHT im ESP8266 gespeichert. Stattdessen befinden sie sich im Internet, daher benötigen Ihr Telefon oder Ihr PC eine Internetverbindung, um die Bilder für die Websteuerungsseite zu laden.
※ Notiz:
Zeile für Zeile Code-Erklärung
Der obige ESP8266-Code enthält eine zeilenweise Erklärung. Bitte lesen Sie die Kommentare im Code!