Arduino - Servo Motor Besturen via Web
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?
Laten we aan de slag gaan!
Hardware Benodigd
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
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:
- Arduino - Servo Motor tutorial
- Arduino - WebSocket tutorial
Hoe Werkt Het
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
- Een .h bestand met de inhoud van de webpagina
Snelle Stappen
- Gebruikt u voor het eerst de Arduino Uno R4? Bekijk dan hoe u de omgeving instelt voor Arduino Uno R4 in Arduino IDE.
- Voer de bedrading uit zoals op de bovenstaande afbeelding.
- Sluit de Arduino aan op uw pc via een micro USB-kabel.
- Open de Arduino IDE op uw pc.
- Selecteer het juiste Arduino board (bijvoorbeeld Arduino Uno R4 WiFi) en de juiste COM-poort.
- Open de Library Manager door te klikken op het Library Manager icoon in de linker navigatiebalk van Arduino IDE.
- Zoek naar Web Server for Arduino Uno R4 WiFi en vind de door DIYables gemaakte Web Server library.
- Klik op de Install knop om de Web Server library te installeren.

- Maak in Arduino IDE een nieuw sketch aan, geef het een naam, bijvoorbeeld ArduinoGetStarted.com.ino
- Kopieer onderstaande code en open deze met Arduino IDE
- Pas de WiFi-gegevens (SSID en wachtwoord) in de code aan naar uw eigen netwerkgegevens.
- Maak het index.h bestand aan in Arduino IDE door:
- Te klikken op de knop net onder het serial monitor icoon en kies New Tab, of gebruik de toetsencombinatie Ctrl+Shift+N.
- Geef het bestand de naam index.h en klik op OK.
- Kopieer de onderstaande code en plak deze in index.h.
- 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.
- 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.
- 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).



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:
Regelsgewijze Code Uitleg
De bovenstaande Arduino code bevat al een regel-voor-regel uitleg in de commentaarregels. Lees deze a.u.b. goed door!