Arduino – Steuert Servomotor über das Web
Dieses Tutorial zeigt Ihnen, wie Sie einen Arduino verwenden, um einen Servo-Motor von einem Webbrowser auf Ihrem Smartphone oder PC aus zu steuern. Wir verwenden WebSocket-Technologie, um eine reibungslose und dynamische Steuerung des Servo-Motors über eine grafische Web-Benutzeroberfläche zu ermöglichen.

Nun, warum sollten wir WebSocket verwenden? Hier ist der Grund:
- Ohne WebSocket müssten Sie jedes Mal, wenn Sie den Winkel des Servos einstellen müssen, die Webseite aktualisieren. Das ist nicht ideal.
- Mit WebSocket hingegen etablieren wir eine dedizierte Verbindung zwischen der Webseite und dem Arduino. Dieses Setup ermöglicht es uns, den Winkelwert im Hintergrund an den Arduino zu übertragen, ohne die Seite neu laden zu müssen. Dadurch läuft der Servo reibungslos und reagiert in Echtzeit. Ziemlich beeindruckend, oder?
Lass uns anfangen!
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables STEM V4 IoT Starter-Kit (Arduino enthalten) | |
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, zum Funktionsprinzip, zur Verdrahtung am Arduino, zum Arduino-Code... Erfahren Sie mehr darüber in den folgenden Links:
- Arduino - Servo Motor tutorial
- Arduino - WebSocket tutorial
Wie es funktioniert
Der Arduino-Code richtet sowohl einen Webserver als auch einen WebSocket-Server ein. Hier ist der Schritt-für-Schritt-Prozess:
- Wenn Sie die IP-Adresse des Arduino in einen Webbrowser eingeben, sendet der Arduino eine Anfrage für die Webseite (Benutzeroberfläche), die auf dem Arduino gehostet wird.
- Der Webserver des Arduino antwortet, indem er den Inhalt der Webseite (HTML, CSS, JavaScript) zurücksendet.
- Ihr Webbrowser zeigt dann die Webseite an.
- Der in der Webseite eingebettete JavaScript-Code initiiert eine WebSocket-Verbindung zum WebSocket-Server auf dem Arduino.
- Sobald die WebSocket-Verbindung aktiv ist, überträgt der JavaScript-Code im Hintergrund den Winkelwert an den Arduino über diese WebSocket-Verbindung, falls Sie den Regler auf der Webseite einstellen.
- Der WebSocket-Server auf dem Arduino passt den Servomotor entsprechend an, sobald er diesen Winkelwert empfängt.
Im Wesentlichen ermöglicht die WebSocket-Verbindung eine nahtlose Echtzeitsteuerung des Winkels des Servomotors.
Schaltplan zwischen Servomotor und Arduino

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Aus Gründen der Einfachheit wird das obige Verdrahtungsdiagramm für Test- oder Lernzwecke verwendet und auch für Servomotoren mit geringem Drehmoment. 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.

Arduino-Quellcode
Der Inhalt der Webseite (HTML, CSS, JavaScript) wird separat in einer index.h-Datei gespeichert. Also werden wir zwei Code-Dateien in der Arduino IDE haben:
- Eine .ino-Datei, die Arduino-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
- Wenn Sie Arduino Uno R4 zum ersten Mal verwenden, sehen Sie Wie richtet man die Umgebung für Arduino Uno R4 in der Arduino IDE ein.
- Verbinden Sie die Verkabelung wie im obigen Bild.
- Verbinden Sie das Arduino-Board über ein Micro-USB-Kabel mit Ihrem PC.
- Öffnen Sie die Arduino IDE auf Ihrem PC.
- Wählen Sie das richtige Arduino-Board (z. B. Arduino Uno R4 WiFi) und den COM-Port aus.
- Öffnen Sie den Bibliotheks-Manager, indem Sie auf das Symbol in der linken Navigationsleiste der Arduino IDE klicken.
- Suchen Sie nach Web Server for Arduino Uno R4 WiFi und finden Sie die von DIYables erstellte Web-Server-Bibliothek.
- Klicken Sie auf die Schaltfläche Installieren, um die Web-Server-Bibliothek zu installieren.

- In der Arduino-IDE erstelle eine neue Skizze, gib ihr einen Namen, zum Beispiel ArduinoGetStarted.com.ino
- Kopiere den untenstehenden Code und öffne ihn mit der Arduino-IDE
- Ändern Sie die WiFi-Informationen (SSID und Passwort) im Code, damit sie zu Ihren eigenen Netzwerkanmeldeinformationen passen.
- Erstellen Sie die index.h-Datei in der Arduino-IDE, indem Sie:
- Entweder klicken Sie auf die Schaltfläche direkt unter dem Symbol des seriellen Monitors und wählen New Tab, oder verwenden Sie die Tastenkombination Ctrl+Shift+N.
- 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: ArduinoGetStarted.com.ino und index.h
- Klicken Sie auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code auf Arduino hochzuladen.
- Öffnen Sie den Seriellen Monitor.
- Sehen Sie sich das Ergebnis im Seriellen Monitor an.
- Notieren Sie sich die angezeigte IP-Adresse und geben Sie diese Adresse in die Adresszeile 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.
- Jetzt können Sie den Winkel des Servomotors steuern, indem Sie den Griff des Motors in der Weboberfläche drehen.
- Überprüfen Sie das Ergebnis im Serial Monitor; Sie werden außerdem die Winkelwerte aus dem Web sehen.
- Wenn Sie den HTML-Inhalt in der index.h ändern und nichts in der ArduinoGetStarted.com.ino-Datei berühren, wird die Arduino IDE beim Kompilieren und Hochladen des Codes auf Arduino den HTML-Inhalt nicht aktualisieren.
- Um in diesem Fall den HTML-Inhalt der Arduino IDE zu aktualisieren, nehmen Sie eine Änderung in der ArduinoGetStarted.com.ino-Datei vor (z. B. eine leere Zeile hinzufügen, einen Kommentar hinzufügen....)



Um den Speicher des Arduinos zu schonen, werden die Bilder des Servomotors nicht auf dem Arduino gespeichert. Stattdessen werden sie im Internet gespeichert, daher benötigt Ihr Telefon oder PC eine Internetverbindung, um die Bilder für die Web-Steuerungsseite zu laden.
※ Notiz:
Zeilenweise Code-Erklärung
Der obige Arduino-Code enthält eine zeilenweise Erklärung. Bitte lesen Sie die Kommentare im Code!