Deze tutorial laat u zien hoe u een Arduino gebruikt om een servo motor te besturen vanuit een webbrowser op uw smartphone of pc. We maken gebruik van WebSocket-technologie om een vloeiende en dynamische besturing van de servo motor te realiseren via een grafische webgebruikersinterface.
Waarom gebruiken we WebSocket? Dit is waarom:
Zonder WebSocket moet u telkens de webpagina vernieuwen om de hoek van de servo aan te passen. Dit is niet ideaal.
Met WebSocket creëren we echter een vaste verbinding tussen de webpagina en de Arduino. Hierdoor kunnen we de hoekwaarde op de achtergrond naar de Arduino sturen zonder de pagina te herladen. Dit zorgt voor een soepele werking en realtime respons van de servo. Indrukwekkend, toch?
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.
Aankoopadvies: Als u meerdere servomotoren gebruikt, raden we aan de PCA9685 16 Channel PWM Servo Driver Module te gebruiken om MCU-pinnen te besparen en de bedrading te vereenvoudigen.
Over Servo Motor en WebSocket
We hebben specifieke tutorials over servo motor en WebSocket. Elke tutorial bevat gedetailleerde informatie en stapsgewijze instructies over hardware pinout, werkingsprincipe, bedrading naar Arduino, Arduino code,... Leer meer over deze onderwerpen via de volgende links:
De Arduino code richt zowel een webserver als een WebSocket-server in. Dit is het stappenplan:
Wanneer u het IP-adres van de Arduino in een webbrowser invoert, vraagt de browser de webpagina (gebruikersinterface) op die op de Arduino wordt gehost.
De webserver van de Arduino reageert door de inhoud van de webpagina (HTML, CSS, JavaScript) terug te sturen.
Uw webbrowser toont vervolgens de webpagina.
De JavaScript-code in de webpagina maakt een WebSocket-verbinding met de WebSocket-server op de Arduino.
Zodra de WebSocket-verbinding actief is, wordt bij het aanpassen van de schuifregelaar op de pagina de hoekwaarde via deze verbinding stilletjes naar de Arduino gestuurd, op de achtergrond.
De WebSocket-server op de Arduino ontvangt deze hoekwaarde en stelt de servo motor hierop in.
Kortom, de WebSocket-verbinding zorgt voor een vloeiende en realtime besturing van de hoek van de servo motor.
Bedradingsschema tussen Servo Motor en Arduino
Deze afbeelding is gemaakt met Fritzing. Klik om de afbeelding te vergroten.
Voor de eenvoud is bovenstaand bedradingsschema bedoeld voor test- en leerdoeleinden en voor servo’s met geringe kracht. In de praktijk raden wij sterk aan om een externe voeding voor de servo motor te gebruiken. Het onderstaande bedrading schema toont hoe u de servo motor op een externe voedingsbron aansluit.
Arduino Code
De inhoud van de webpagina (HTML, CSS, JavaScript) wordt apart opgeslagen in een index.h bestand. Daardoor hebt u twee codebestanden in de Arduino IDE:
Een .ino bestand met de Arduino code die de webserver, WebSocket-server opzet en de servo motor aanstuurt
U hebt nu code in twee bestanden: ArduinoGetStarted.com.ino en index.h.
Klik op de Upload knop in Arduino IDE om de code naar de Arduino te uploaden.
Open de Serial Monitor
Bekijk het resultaat in de Serial Monitor.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
Arduino Uno R4 WiFi - WebSocket Server controls Servo Motor
Connected! IP Address: 192.168.0.254
SSID: YOUR_WIFI_SSID
IP Address: 192.168.0.254
Signal strength (RSSI): -44 dBm
WebSocket server started on port 81
WebSocket URL: ws://192.168.0.254:81
WebSocket server enabled successfully
Ln 11, Col 1
Arduino Uno on COM15
2
Noteer het getoonde IP-adres en voer dit adres in de adresbalk van een webbrowser in op uw smartphone of pc.
U ziet nu de volgende webpagina:
De JavaScript-code van de pagina maakt automatisch de WebSocket-verbinding met de Arduino.
Nu kunt u de hoek van de servo motor aanpassen door de schuifregelaar op de webinterface te draaien.
Kijk ook in de Serial Monitor, u ziet daar de hoekwaarden die vanaf het web binnenkomen.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
WebSocket server enabled successfully
WebSocket client connected from: 192.168.0.7
New WebSocket connection
Rotate Servo Motor to 90
Rotate Servo Motor to 89
Rotate Servo Motor to 88
Rotate Servo Motor to 87
Ln 11, Col 1
Arduino Uno on COM15
2
Om geheugen op de Arduino te besparen, worden de afbeeldingen van de servo motor NIET op de Arduino opgeslagen. In plaats daarvan zijn ze online opgeslagen, waardoor uw telefoon of pc een internetverbinding nodig heeft om de afbeeldingen op de webbesturingspagina te laden.
※ Notiz:
Wanneer u alleen de HTML-inhoud in index.h wijzigt en niks aan het ArduinoGetStarted.com.ino bestand, zal Arduino IDE bij compileren en uploaden NIET de HTML-inhoud bijwerken.
Om Arduino IDE het HTML-bestand toch te laten updaten, voert u een kleine wijziging door in het ArduinoGetStarted.com.ino bestand (bijvoorbeeld een lege regel toevoegen of een commentaarregel toevoegen).
Regelsgewijze Code Uitleg
De bovenstaande Arduino code bevat al een regel-voor-regel uitleg in de commentaarregels. Lees deze a.u.b. 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!