Arduino - Webserver
In deze tutorial leert u hoe u een Arduino Uno R4 WiFi verandert in een webserver. Door de webpagina’s die op de Arduino Webserver worden gehost te openen via een webbrowser op uw pc of smartphone, kunt u waarden uitlezen van de Arduino en deze zelfs bedienen. Hieronder vindt u een overzicht van wat we gaan leren programmeren op de Arduino Uno WiFi om dit te bereiken:
- Arduino Web Server - Enkelvoudige pagina: Hiermee kunt u sensorwaarden op de Arduino monitoren via een webinterface.
- Arduino Web Server - Enkelvoudige pagina: We voegen de mogelijkheid toe om de Arduino te bedienen via een webbrowser.
- Arduino Web Server - Enkelvoudige pagina: We leren hoe we HTML-inhoud (HTML, CSS en Javascript) in een apart bestand in de Arduino IDE kunnen plaatsen.
- Arduino Web Server - Meerdere pagina’s: In deze stap maken we meerdere pagina’s zoals index.html, temperature.html, led.html, error_404.html en error_405.html, en meer.

Benodigd Hardware
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Sensorwaarde uitlezen van Arduino via Web
Dit is relatief eenvoudig. De Arduino-code voert de volgende taken uit:
- Een webserver maken die luistert naar HTTP-verzoeken van een webbrowser.
- Bij ontvangst van een verzoek van een webbrowser reageert de Arduino met de volgende informatie:
- HTTP-header
- HTTP-lichaam: Dit bevat de HTML-inhoud en de uitgelezen waarde van de sensor.
- Als u voor het eerst een Arduino Uno R4 gebruikt, bekijk dan hoe u de omgeving instelt voor Arduino Uno R4 in de Arduino IDE.
- Open de Library Manager door te klikken op het Library Manager-icoon aan de linkerkant van de Arduino IDE.
- Zoek naar Web Server for Arduino Uno R4 WiFi en zoek de Web Server-bibliotheek gemaakt door DIYables.
- Klik op de Installeren-knop om de Web Server-bibliotheek toe te voegen.
- Kopieer de bovenstaande code en open deze met Arduino IDE.
- Pas de WiFi-gegevens (SSID en wachtwoord) in de code aan naar uw eigen gegevens.
- Klik op de Upload-knop in de Arduino IDE om de code naar de Arduino te uploaden.
- Open de Seriële Monitor.
- Bekijk het resultaat in de Seriële Monitor.
- Neem het weergegeven IP-adres in acht en voer dit adres in de adresbalk van een webbrowser op uw smartphone of pc in.
- Vervolgens ziet u de volgende uitvoer op de Seriële Monitor:
- Wanneer u het IP-adres in uw webbrowser opent, krijgt u een eenvoudige webpagina te zien met informatie over het Arduino-bord. De pagina lijkt op het volgende:
Hieronder staat de Arduino-code die deze taken uitvoert:
Snelle stappen


Om de webpagina er fantastisch uit te laten zien met een grafische gebruikersinterface (UI), bekijk dan de laatste sectie van deze tutorial.
Arduino bedienen via Web
Iets aansturen wat aan een Arduino is verbonden is iets uitdagender dan alleen een waarde uitlezen. Dit komt doordat de Arduino het verzoek dat het ontvangt van de webbrowser moet begrijpen om te weten welke actie het moet uitvoeren. De Arduino-code doet in dit geval het volgende:
- Een webserver maken die luistert naar HTTP-verzoeken van een webbrowser.
- Het afhandelen van het ontvangen verzoek van de webbrowser door het volgende te doen:
- Leest de HTTP-verzoek-header.
- Analyseert de HTTP-verzoek-header om te bepalen welk specifieke bedieningscommando nodig is.
- Stuurt het apparaat of object dat aan de Arduino is verbonden aan op basis van het ontvangen bedieningscommando.
- Stuurt een HTTP-respons terug.
- Kan bovendien een HTTP-antwoordlichaam met HTML-inhoud sturen om informatie over de bedieningsstatus te tonen (indien nodig).
Voor uitgebreide en gedetailleerde voorbeelden raad ik u aan de volgende tutorials te bekijken:
HTML-inhoud scheiden in een apart bestand in Arduino IDE
Als u een eenvoudige webpagina met minimale inhoud wilt maken, kunt u het HTML direct in de Arduino-code insluiten, zoals eerder uitgelegd.
Echter, als u een meer geavanceerde en indrukwekkende webpagina met grotere inhoud wilt maken, wordt het onhandig om alle HTML, CSS en Javascript direct in de Arduino-code te plaatsen. In dit geval kunt u deze alternatieve aanpak gebruiken om de code beter te beheren:
- De Arduino-code wordt geplaatst in een .ino-bestand, zoals voorheen.
- De HTML-code (HTML, CSS, Javascript) wordt geplaatst in een apart .h-bestand. Dit maakt het mogelijk om de webpagina-inhoud gescheiden te houden van de Arduino-code en vergemakkelijkt beheer en aanpassing.
Hiervoor moeten we twee grote stappen uitvoeren:
- HTML-inhoud voorbereiden
- Arduino programmeren
HTML-inhoud voorbereiden
- Maak een HTML-bestand op uw lokale pc met de HTML-inhoud (HTML, CSS en Javascript) voor uw UI-ontwerp.
- Gebruik in het HTML-bestand waar Arduino-gegevens moeten verschijnen een willekeurige tijdelijke waarde.
- Test en pas het bestand aan totdat u tevreden bent.
- Vervang vervolgens op de plaatsen waar Arduino-gegevens moeten komen in het HTML-bestand die tijdelijke waarde door een speciale naam, bijvoorbeeld TEMPERATURE_MARKER. In de Arduino-code zullen we later de functie String.replace("TEMPERATURE_MARKER", real_value); gebruiken om deze waarde te vervangen door de werkelijke waarde uit de Arduino.
- We plaatsen de HTML-inhoud in het .h-bestand binnen de Arduino IDE. Dit volgen we in de volgende stap.
Arduino programmeren
- Open de Arduino IDE en maak een nieuwe sketch aan. Geef deze een naam, bijvoorbeeld ArduinoGetStarted.com.ino.
- Kopieer de onderstaande code en plak deze in het gemaakte bestand.
- Pas de WiFi-gegevens (SSID en wachtwoord) in de code aan naar uw eigen gegevens.
- Maak het index.h-bestand aan in de Arduino IDE door:

- Klik op de knop net onder het seriële monitor icoon en kies Nieuw tabblad, of gebruik de toetscombinatie Ctrl+Shift+N.
- Geef het bestand de naam index.h en klik op OK.

- Kopieer de onderstaande code en plak deze in index.h.
- Vervang de regel REPLACE_YOUR_HTML_CONTENT_HERE door uw eerder voorbereide HTML-inhoud. Nieuwe regel-tekens zijn geen probleem. Hieronder een voorbeeld van een index.h-bestand:
- Nu heeft u de code verdeeld over twee bestanden: ArduinoGetStarted.com.ino en index.h.
- Klik op de Upload-knop in de Arduino IDE om de code naar de Arduino te uploaden.
- Open in de webbrowser de webpagina van de Arduino, zoals eerder gedaan. U ziet het volgende:

Voor een uitgebreidere en meer gedetailleerde uitleg, zie de tutorial Arduino - DS18B20 Temperatuursensor via Web.
※ Notiz:
- Als u de HTML-inhoud in het index.h-bestand wijzigt zonder iets aan te passen in het ArduinoGetStarted.com.ino-bestand, dan wordt de HTML-inhoud niet bijgewerkt bij het compileren en uploaden van de Arduino IDE.
- Om de Arduino IDE te dwingen de HTML-inhoud in dit geval te updaten, moet u een kleine wijziging in het ArduinoGetStarted.com.ino-bestand doorvoeren. Bijvoorbeeld een lege regel toevoegen of een commentaarregel invoegen. Dit zorgt ervoor dat de IDE de wijziging herkent en de nieuwe HTML-inhoud meeneemt bij het uploaden.
Arduino Webserver - Meerdere pagina’s
Bekijk de tutorial Arduino - Web Server Meerdere Pagina’s.