Deze handleiding laat zien hoe u met de ESP32 draadloos een robotauto bestuurt vanuit een webbrowser op uw smartphone of pc via WiFi. De bediening gebeurt via een grafische web interface met behulp van WebSocket, wat zorgt voor een vloeiende en dynamische besturing van de auto.
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.
Over 2WD RC Auto en WebSocket
Waarom kiezen we voor WebSocket? Hier is het verhaal:
Zonder WebSocket zou het veranderen van rijrichting elke keer de pagina moeten herladen. Niet ideaal!
Met WebSocket maken we een speciale verbinding tussen de webpagina en de ESP32. Dit maakt het mogelijk om commando’s op de achtergrond naar de ESP32 te sturen zonder dat de pagina hoeft te herladen. Het resultaat? De robotauto bestuurt soepel en in realtime. Heel gaaf, toch?
Kortom, de WebSocket verbinding maakt vloeiende, realtime besturing van de robot mogelijk.
We hebben specifieke tutorials over de 2WD RC Auto en WebSocket. Elke tutorial bevat gedetailleerde informatie en stapsgewijze instructies over hardware pinout, werkingsprincipe, wiring naar ESP32, ESP32 code… Lees er meer over via de volgende links:
De ESP32 code creëert zowel een webserver als een WebSocket Server. Zo werkt het:
Wanneer u het IP-adres van de ESP32 invoert in een webbrowser, vraagt deze de webpagina (gebruikersinterface) op bij de ESP32.
De webserver van de ESP32 reageert door de inhoud van de webpagina te verzenden (HTML, CSS, JavaScript).
Uw webbrowser toont vervolgens de webpagina.
De JavaScript code in de pagina maakt een WebSocket verbinding met de WebSocket server op de ESP32.
Zodra deze WebSocket verbinding is gelegd, zal de JavaScript code bij het indrukken of loslaten van buttons op de webpagina stilletjes commando’s versturen naar de ESP32 via deze WebSocket verbinding op de achtergrond.
De WebSocket server op de ESP32 ontvangt de commando’s en bestuurt vervolgens de robotauto overeenkomstig.
De onderstaande tabel toont de lijst met commando’s die de webpagina naar de ESP32 stuurt op basis van de acties van de gebruiker:
Gebruikersactie
Knop
Commando
Auto Actie
INSDRUKKEN
UP
1
VOORUIT RIJDEN
INSDRUKKEN
DOWN
2
ACHTERUIT RIJDEN
INSDRUKKEN
LEFT
4
LINKS DRAAIEN
INSDRUKKEN
RIGHT
8
RECHTS DRAAIEN
INSDRUKKEN
STOP
0
STOPPEN
LOSLATEN
UP
0
STOPPEN
LOSLATEN
DOWN
0
STOPPEN
LOSLATEN
LEFT
0
STOPPEN
LOSLATEN
RIGHT
0
STOPPEN
LOSLATEN
STOP
0
STOPPEN
Bedradingsschema tussen 2WD RC Auto en ESP32
Deze afbeelding is gemaakt met Fritzing. Klik om de afbeelding te vergroten.
Gewoonlijk heeft u twee stroombronnen nodig:
Eén voor de motor via de L298N module.
Een andere voor de ESP32 bord en L298N module (motor driver).
Maar u kunt het vereenvoudigen door slechts één stroombron te gebruiken – vier 1.5V batterijen (totaal 6V). Zo werkt het:
Verbind de batterijen met de L298N module zoals weergegeven.
Verwijder twee jumpers van de ENA en ENB pinnen naar de 5 volts op de L298N module.
Voeg een jumper toe met label 5VEN (gele cirkel op het schema).
Verbind de 12V pin op de L298N module met de Vin pin op de ESP32 om deze direct van de batterijen te voeden.
Omdat de 2WD RC auto een aan/uit-schakelaar heeft, kunt u optioneel de batterij via deze schakelaar aansluiten om de voeding van de auto in- of uit te schakelen. Wilt u het simpel houden, dan kunt u de schakelaar negeren.
ESP32 Code
De inhoud van de webpagina (HTML, CSS, JavaScript) is apart opgeslagen in een index.h bestand. U gebruikt dus twee codebestanden in Arduino IDE:
Een .ino bestand met de ESP32 code, die een webserver en een WebSocket Server creëert en de auto bestuurt
Een .h bestand dat de inhoud van de webpagina bevat
Nu heeft u de code in twee bestanden: newbiely.com.ino en index.h.
Klik op de knop Upload in Arduino IDE om de code naar de ESP32 te uploaden.
Open de Serial Monitor.
Bekijk het resultaat in de Serial Monitor.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
Connecting to WiFi...
Connected to WiFi
ESP32 Web Server's IP address IP address: 192.168.0.2
Ln 11, Col 1
ESP32 Dev Module on COM15
2
Noteer het IP-adres dat wordt weergegeven en voer dit adres in de adresbalk van een webbrowser op uw smartphone of pc in.
U ziet dan de volgende webpagina:
De JavaScript code van de webpagina maakt automatisch de WebSocket-verbinding met de ESP32.
Nu kunt u via de webinterface de auto vooruit/achteruit laten rijden, en links/rechts laten draaien.
Om het geheugen van de ESP32 te sparen, zijn de afbeeldingen van de bedieningsknoppen NIET opgeslagen op de ESP32. In plaats daarvan worden ze van het internet geladen, dus uw telefoon of pc moet verbonden zijn met internet om deze afbeeldingen te kunnen laden voor de webbediening.
※ Notiz:
Als u de HTML-inhoud in het index.h bestand wijzigt en het newbiely.com.ino bestand ongemoeid laat, zal Arduino IDE bij compileren en uploaden de HTML-inhoud niet bijwerken.
Om Arduino IDE in dit geval de HTML-inhoud te laten updaten, maak dan een kleine wijziging in het newbiely.com.ino bestand (bijvoorbeeld een lege regel toevoegen, een commentaar toevoegen...).
Regel-voor-Regel Code-uitleg
De bovenstaande ESP32 code bevat een regel-voor-regel uitleg in de comments. Lees de opmerkingen in de code goed door!
U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!