Wi-Servo: Servomotoren per WLAN über Webbrowser steuern
Komponenten und Zubehör
| Arduino UNO | × | 1 |
| Espressif ESP8266 ESP-01 | × | 1 |
| Arduino Proto Shield | × | 1 |
| SG90 Mikro-Servomotor | × | 1 |
| Jumper-Kabel (allgemein) | × | 1 |
Apps und Online-Dienste
- Arduino IDE
Über dieses Projekt
Dieses Projekt zeigt, wie man Servomotoren in einem WLAN-Netzwerk ferngesteuert, ganz einfach über einen normalen Internetbrowser (z. B. Firefox). Anwendungsbereiche: Spielzeug, Roboter, Drohnen, Kamera-Schwenk/Neige, u. v. m.
Die Motoren sind an einen Arduino Uno angebunden, der über ein ESP8266-Modul ins WLAN geht. Die Steueroberfläche wurde mit HTML und jQuery erstellt.
Miguels Tutorial (https://allaboutee.com/2015/01/02/esp8266-arduino-led-control-from-webpage/), das zeigt, wie man LEDs per ESP8266 über eine Webseite schaltet, diente als Inspiration.
Die hier gezeigte Technik wird in einem meiner Projekte genutzt: „Robô da Alegria“. Mehr dazu unter:
- https://hackaday.io/project/12873-rob-da-alegria-joy-robot
- https://www.facebook.com/robodaalegria/
- https://github.com/ferauche/RoboAlegria
Schritt 1: Elektronik



Benötigte Komponenten:
- Arduino Uno
- ESP8266
- Proto-Shield (für kompakte Bauweise) oder normales Steckbrett
- 10 kOhm Widerstand (×3)
- Einige Jumper-Kabel
- SG90 Servomotor (×2)
- Computer (zum Kompilieren und Hochladen)
SG90Servo.pdf
Spezielle Werkzeuge sind nicht nötig. Alle Teile sind online erhältlich. Die Stromversorgung erfolgt über den USB-Anschluss (Computer oder Handy-Ladegerät), optional auch über externes Netzteil oder Batterie an der Arduino-Strombuchse.
Schritt 2: Aufbau


Verbinden Sie alle Komponenten gemäß Schaltplan. Jumper-Kabel verbinden ESP8266 und Servomotoren. Nutzen Sie Proto-Shield, Steckbrett oder ein eigenes Arduino-Shield. Stecken Sie das USB-Kabel an den Arduino Uno und fahren Sie fort.
Schritt 3: Arduino-Code
Installieren Sie die aktuelle Arduino IDE. In diesem Projekt wurde die servo.h-Bibliothek für die Servosteuerung genutzt. Um Konflikte zwischen WLAN-Modul und USB-Port beim Code-Upload zu vermeiden, kam die softserial-Bibliothek zum Einsatz. Keine zusätzliche Bibliothek für die ESP8266-Kommunikation nötig. Prüfen Sie die Baudrate Ihres ESP8266 und passen Sie sie im Code an.
Manche Servos zittern oder machen Geräusche nahe der Endanschläge (0° und 180°). Um das zu vermeiden, wurde der Winkel im Arduino-Code und in der Steueroberfläche auf 10°–170° begrenzt.
Leider nutzen servo.h und softserial.h denselben Timer des Mikrocontrollers, was zu Jitter führen kann, wenn der Arduino mit dem ESP8266 kommuniziert. Lösung: Die Servos werden nach jedem Befehl vom Arduino getrennt (detach). Alternativ kann das Modul an die hardwaremäßigen Serial-Pins angeschlossen werden – dann muss es vor jedem Upload abgezogen werden.
Laden Sie den Arduino-Code (wi-servo.ino) herunter und ersetzen Sie XXXXX durch Ihre WLAN-SSID und YYYYY durch das Router-Passwort. Verbinden Sie den Arduino per USB und laden Sie den Code hoch.
FASLU1KIR9EDSUP.ino
Schritt 4: Benutzeroberfläche

Eine HTML-Oberfläche zur Servosteuerung wurde entworfen. Hier werden zwei Servos verwendet, aber am Arduino Uno lassen sich weitere hinzufügen (getestet bis vier).
Ein Textfeld dient zur Eingabe der IP-Adresse des ESP-Moduls. Laden Sie Wi-servo.html und jquery.js herunter und speichern Sie beide im selben Ordner.
FH67KRAIQSAB934.zip
Schritt 5: Nutzung



Nach Neustart verbindet sich der Arduino automatisch mit Ihrem WLAN. Nutzen Sie den Serial Monitor, um zu prüfen, ob die Verbindung klappte, und um die dem ESP8266 zugewiesene IP-Adresse zu erfahren.
Öffnen Sie die HTML-Datei in einem Browser (Firefox). Tragen Sie die IP-Adresse des ESP8266 in das Textfeld ein – schon kann es losgehen. Wählen Sie per Schieberegler den gewünschten Winkel für jeden Servo. Beim Loslassen der Maustaste sendet der Browser automatisch eine Anfrage an den Arduino, der die Servos bewegt.
Code
GitHub
https://github.com/ferauche/RoboAlegria
Schaltplan
Herstellungsprozess
- Bluetooth-gesteuerter Raspberry Pi Roboter mit Audio-Feedback bauen
- Arduino UNO WiFi Webserver: LED per Browser steuern
- Altes RC-Auto per Xbox-Controller & Arduino zum Joystick-Fahrzeug umbauen
- Einfacher Taschenrechner mit Arduino UNO – Einsteigerprojekt
- Arduino-basierter 6-DoF Roboterarm mit Nunchuk-Steuerung
- Sprachgesteuerter Roboter mit Arduino Nano bauen
- Tragbares Persistence-of-Vision-Display mit Arduino UNO und ATtiny85 bauen
- PiBot: Arduino-gesteuerter Klavierroboter für präzise Musikwiedergabe
- Kapazitiver Touch-LED-Schalter mit Arduino UNO – Einfaches DIY-Projekt
- DIY USB-Trackpad aus altem Laptop – Arduino Micro als HID-Schnittstelle