Arduino - steuert Auto über das Web
Dieses Tutorial zeigt dir, wie du ein Roboterauto drahtlos mit einem Arduino von einem Webbrowser auf deinem Smartphone oder PC über WLAN steuern kannst. Die Steuerung erfolgt über eine grafische Web-Benutzeroberfläche, die WebSocket-Technologie verwendet und einen reibungslosen und dynamischen Betrieb des Autos ermöglicht.

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 2WD RC-Auto und WebSocket
Warum WebSocket wählen? Hier sind die Gründe:
- Ohne WebSocket müsstest du die Seite jedes Mal neu laden, wenn du die Fahrtrichtung des Autos ändern möchtest. Das ist nicht effizient!
- Mit WebSocket wird eine spezielle Verbindung zwischen der Webseite und dem Arduino hergestellt. Dadurch kannst du Befehle an den Arduino im Hintergrund senden, ohne die Seite neu laden zu müssen. Das Ergebnis? Das Roboterauto reagiert reibungslos und sofort. Ziemlich beeindruckend, oder?
Zusammenfassend ermöglicht WebSocket die reibungslose Echtzeitsteuerung des Roboters.
Wir haben spezielle Tutorials zu einem 2WD-RC-Auto und WebSocket. Jedes Tutorial enthält detaillierte Informationen und Schritt-für-Schritt-Anleitungen zur Hardware-Pinbelegung, Funktionsweise, Verkabelung zum Arduino, Arduino-Code... Mehr dazu finden Sie in den folgenden Links:
- Arduino - 2WD RC Car tutorial
- Arduino - WebSocket tutorial
Wie es funktioniert
Der Arduino-Code richtet sowohl einen Webserver als auch einen WebSocket-Server ein. So funktioniert es:
- Wenn Sie die IP-Adresse des Arduino in einen Webbrowser eingeben, sendet der Webbrowser eine Anfrage für die Webseite (Benutzeroberfläche) an den Arduino.
- Der Webserver des Arduino antwortet, indem er den Inhalt der Webseite (HTML, CSS, JavaScript) liefert.
- Ihr Webbrowser zeigt diese Webseite dann an.
- Innerhalb der Webseite initiiert der JavaScript-Code eine WebSocket-Verbindung zum WebSocket-Server auf dem Arduino.
- Sobald diese WebSocket-Verbindung aktiv ist, bewirken Betätigungen oder das Loslassen von Knöpfen auf der Webseite, dass der JavaScript-Code unauffällig Befehle an den Arduino über diese Verbindung sendet.
- Der WebSocket-Server auf dem Arduino empfängt diese Befehle und steuert entsprechend das Roboterauto.
Im Folgenden finden Sie eine Tabelle, die die Liste der Befehle zeigt, die die Webseite basierend auf den Benutzeraktionen an den Arduino sendet:
| User's Action | Button | Command | Car Action |
|---|---|---|---|
| PRESS | UP | 1 | MOVE FORWARD |
| PRESS | DOWN | 2 | MOVE BACKWARD |
| PRESS | LEFT | 4 | TURN LEFT |
| PRESS | RIGHT | 8 | TURN RIGHT |
| PRESS | STOP | 0 | STOP |
| RELEASE | UP | 0 | STOP |
| RELEASE | DOWN | 0 | STOP |
| RELEASE | LEFT | 0 | STOP |
| RELEASE | RIGHT | 0 | STOP |
| RELEASE | STOP | 0 | STOP |
Verdrahtungsdiagramm zwischen 2WD RC-Auto und Arduino

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Normalerweise benötigt man zwei separate Stromquellen:
- Eine für den Motor.
- Eine weitere für sowohl das Arduino-Board als auch das L298N-Modul (das als Motortreiber dient).
Sie können diese Einrichtung jedoch vereinfachen, indem Sie nur eine Stromquelle verwenden – vier 1,5-Volt-Batterien, um insgesamt 6 V zu erhalten. So geht's:
- Schließen Sie die Batterien gemäß den Anweisungen an das L298N-Modul an.
- Entfernen Sie die beiden Jumper von den ENA- und ENB-Pins zu den 5-Volt-Pins am L298N-Modul.
- Setzen Sie einen Jumper ein, der mit 5VEN beschriftet ist (im Diagramm durch einen gelben Kreis gekennzeichnet).
- Verbinden Sie den 12-V-Anschluss am L298N-Modul mit dem Vin-Pin am Arduino. Diese Verbindung versorgt den Arduino direkt aus den Batterien.
Das 2WD-RC-Auto verfügt über einen Ein/Aus-Schalter, der Ihnen die Möglichkeit bietet, die Batterie über den Schalter anzuschließen. Diese Anordnung ermöglicht es Ihnen, die Stromversorgung des Autos bei Bedarf ein- und auszuschalten. Wenn Sie eine einfachere Lösung bevorzugen, können Sie den Schalter ganz umgehen.
Arduino-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 mit Arduino-Code, die einen Webserver und einen WebSocket-Server erstellt und ein Auto steuert
- Eine .h-Datei, die den Inhalt der Webseite enthält
Schnelle Schritte
- Wenn Sie zum ersten Mal Arduino Uno R4 verwenden, sehen Sie wie man die Entwicklungsumgebung für Arduino Uno R4 in der Arduino IDE einrichtet.
- Verkabeln Sie gemäß dem 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 (Arduino Uno R4 WiFi) und den 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 nach Web Server for Arduino Uno R4 WiFi und finden Sie die von DIYables erstellte Webserver-Bibliothek.
- Klicken Sie auf die Install-Schaltfläche, um die Webserver-Bibliothek zu installieren.

- In der Arduino-IDE erstellen Sie ein neues Sketch, geben Sie ihm einen Namen, zum Beispiel ArduinoGetStarted.com.ino
- Kopieren Sie den untenstehenden Code und öffnen Sie ihn in der Arduino-IDE
- Ändern Sie die WiFi-Informationen (SSID und Passwort) im Code, damit sie mit Ihren eigenen Netzwerkanmeldeinformationen übereinstimmen.
- 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 Sie New Tab, oder verwenden Sie die Tasten 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-Datei ein.
- Jetzt haben Sie den Code in zwei Dateien: ArduinoGetStarted.com.ino und index.h
- Klicken Sie auf die Upload-Schaltfläche in der Arduino IDE, um den Code auf den Arduino 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 Adresszeile eines Webbrowsers auf Ihrem Smartphone oder PC ein.
- Sie sehen die unten gezeigte Webseite:
- Klicken Sie auf die CONNECT-Schaltfläche, um die Webseite über WebSocket mit dem Arduino zu verbinden.
- Jetzt können Sie das Auto über die Weboberfläche nach links/rechts drehen und vorwärts/rückwärts bewegen.
- 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 den HTML-Inhalt nicht aktualisieren.
- Um die Arduino-IDE in diesem Fall dazu zu bringen, den HTML-Inhalt 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 Arduino zu schonen, werden die Bilder der Steuertasten nicht auf dem Arduino gespeichert. Stattdessen werden sie im Internet gespeichert, daher muss Ihr Telefon oder PC eine Internetverbindung haben, um die Bilder für die Web-Steuerungsseite zu laden.
※ Notiz:
Zeile für Zeile Code-Erklärung
Der obige Arduino-Code enthält eine Zeile-für-Zeile-Erklärung. Bitte lesen Sie die Kommentare im Code!