Arduino Nano - Webserver
In deze handleiding laten we u zien hoe u een Arduino Nano bord programmeert met een Ethernet-module om te functioneren als een webserver. U kunt gegevens bekijken en de Arduino Nano bedienen via webpagina’s die toegankelijk zijn vanaf uw computer of smartphone. We beginnen met eenvoudige taken en werken toe naar meer geavanceerde toepassingen, zoals hieronder beschreven:
- Arduino Nano Webserver - Hello World!
- Arduino Nano Webserver - Sensorwaarden monitoren via een webpagina.
- Arduino Nano Webserver - Automatisch bijwerken van waarden op de webpagina.
- Arduino Nano Webserver - HTML, CSS en JavaScript scheiden van de Arduino-code.
- Arduino Nano Webserver - De Arduino Nano bedienen via een webpagina.

Hardware Benodigd
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Aansluitschema tussen Arduino Nano en W5500 Ethernet module

This image is created using Fritzing. Click to enlarge image
Arduino Nano Webserver - Hello World
Dit is relatief eenvoudig. De Arduino Nano code voert de volgende taken uit:
- Het aanmaken van een webserver die luistert naar HTTP-verzoeken van een webbrowser.
- Bij het ontvangen van een verzoek van een webbrowser, reageert de Arduino Nano met de volgende informatie:
- HTTP-header
- HTTP-body: bevat de tekst "Hello World!".
- Verbind de Arduino Nano met de Ethernet module volgens het bovenstaande aansluitschema.
- Sluit een Ethernetkabel aan op de Ethernet module.
- Verbind de Arduino Nano met een pc via een USB-kabel.
- Start de Arduino IDE op uw pc.
- Selecteer het board Arduino Nano en de bijbehorende COM-poort.
- Klik op het Libraries icoon in de linkerzijbalk van de Arduino IDE.
- Zoek op “Ethernet” en selecteer de Ethernet-library van Various.
- Klik op de Installeren knop om de Ethernet-library te installeren.
- Kopieer de bovenstaande code en open deze in de Arduino IDE.
- Klik op de Upload knop in de Arduino IDE om de code naar de Arduino Nano te uploaden.
- Open de Seriële Monitor.
- Controleer het resultaat in de Seriële Monitor.
- Noteer het IP-adres dat wordt getoond en voer dit in de adresbalk van een webbrowser op uw smartphone of pc in.
- U ziet dan de volgende output in de Seriële Monitor.
- Zodra u de webbrowser opent met het IP-adres, ziet u een eenvoudige webpagina die "Hello World!" weergeeft. De pagina ziet er als volgt uit:
Hieronder staat de Arduino Nano code die bovenstaande taken uitvoert:
Snelle Stappen


Arduino Nano Webserver - Sensorwaarden monitoren via een webpagina
De onderstaande Arduino Nano code voert de volgende taken uit:
- Het aanmaken van een webserver die luistert naar HTTP-verzoeken van een webbrowser.
- Bij het ontvangen van een verzoek van een webbrowser, reageert de Arduino Nano met de volgende informatie:
- HTTP-header
- HTTP-body: bevat HTML-, CSS-inhoud en de uitgelezen waarde van de sensor.
- Kopieer de bovenstaande code en open deze in de Arduino IDE.
- Klik op de Upload knop in de Arduino IDE om de code naar de Arduino Nano te uploaden.
- Vernieuw de eerdere webpagina (Ctrl + F5), en u ziet het onderstaande resultaat:
Snelle Stappen

Met de aangeleverde code moet u om de temperatuur te vernieuwen de pagina in de webbrowser herladen. In de volgende sectie leert u hoe u de webpagina automatisch de temperatuurwaarde op de achtergrond laat vernieuwen zonder te herladen.
Arduino Nano Webserver - Automatisch bijwerken van waarden op de webpagina
Hoe Automatisch Bijwerken Werkt
- De gebruiker voert het IP-adres van de Arduino Nano in de webbrowser in.
- De webbrowser stuurt een HTTP-verzoek naar de homepage (/) van de Arduino Nano.
- De Arduino reageert met HTML, CSS en JavaScript.
- De webbrowser toont de webpagina met de ontvangen HTML en CSS.
- Elke 3 seconden voert de webbrowser het JavaScript uit, dat een HTTP-verzoek doet naar de /temperature endpoint.
- De Arduino leest de sensorwaarde uit en stuurt deze terug als antwoord.
- De webbrowser ontvangt de sensorwaarde en werkt de webpagina daar direct mee bij.

Hieronder staat de Arduino Nano code die bovenstaande taken uitvoert:
Snelle Stappen
- Kopieer de bovenstaande code en open deze in de Arduino IDE.
- Klik op de Upload knop in de Arduino IDE om de code naar de Arduino Nano te uploaden.
- Vernieuw de eerdere webpagina (Ctrl + F5), en u ziet het resultaat zoals hieronder:

U ziet dat de waarde elke 3 seconden automatisch wordt bijgewerkt.
HTML-inhoud scheiden in een apart bestand in de Arduino IDE
Als u een eenvoudige webpagina met minimale inhoud wilt maken, kunt u HTML direct in de Arduino Nano code opnemen, zoals eerder uitgelegd.
Voor complexere en functie-rijkere webpagina’s kan het omslachtig worden om alle HTML, CSS en JavaScript direct in de Arduino Nano code te verwerken. In dat geval is het beter een andere aanpak te gebruiken om de code te beheren:
- De Arduino Nano code blijft opgeslagen in een .ino bestand zoals gebruikelijk.
- De webpagina-inhoud (HTML, CSS, JavaScript) wordt geplaatst in een apart .h bestand. Deze scheiding maakt het eenvoudiger om de webpagina te beheren en bij te werken zonder de Arduino code onoverzichtelijk te maken.
Snelle Stappen
- Open de Arduino IDE en maak een nieuwe sketch aan. Geef deze een naam, bijvoorbeeld newbiely.com.ino.
- Kopieer de onderstaande code en plak deze in het gemaakte bestand.
- Maak het bestand index.h aan in de Arduino IDE door:

- Ofwel klikt u op de knop net onder het seriële monitor-icoon en kiest u New Tab, of gebruikt u de sneltoetsen Ctrl+Shift+N.
- Geef het bestand de naam index.h en klik op OK.

- Kopieer de onderstaande code en plak deze in index.h.
- Nu heeft u de code verdeeld over twee bestanden: newbiely.com.ino en index.h.
- Klik op de Upload knop in de Arduino IDE om de code naar de Arduino Nano te uploaden.
- Vernieuw de webpagina (met Ctrl + F5), deze ziet er hetzelfde uit als voorheen.
※ Notiz:
- Als u de HTML-inhoud in het index.h bestand wijzigt zonder iets in het newbiely.com.ino bestand aan te passen, zal de Arduino IDE de gewijzigde HTML-inhoud niet vernieuwen of meenemen bij het compileren en uploaden van de code naar de Arduino Nano.
- Om zeker te zijn dat de Arduino IDE de HTML-inhoud vernieuwt, moet u een kleine wijziging doorvoeren in het newbiely.com.ino bestand, bijvoorbeeld het toevoegen van een lege regel of een commentaarregel. Dit dwingt de IDE om veranderingen te detecteren, waardoor de vernieuwde HTML-inhoud bij het uploaden wordt meegenomen.
De Arduino Nano bedienen via het web
Iets bedienen dat verbonden is met de Arduino Nano is iets uitdagender dan alleen het lezen van een waarde. De Arduino Nano moet immers het binnenkomende verzoek van de webbrowser interpreteren om te weten welke actie moet worden uitgevoerd.
Voor meer uitgebreide en gedetailleerde voorbeelden raad ik aan de onderstaande tutorials te bekijken: