Arduino - Ethernet
Deze handleiding leert u hoe u de Arduino verbindt met internet of uw lokale netwerk via de W5500 Ethernet-module. We behandelen de volgende onderwerpen:
- Verbinden van Arduino met W5500 Ethernet Module
- Arduino programmeren voor HTTP-verzoeken via Ethernet
- Een eenvoudige webserver opzetten op Arduino met Ethernet

Hardware Benodigd
Of u kunt de volgende kits kopen:
| 1 | × | DIYables STEM V3 Starterskit (Arduino inbegrepen) | |
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
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 de W5500 Ethernet module
De W5500 Ethernet module heeft twee soorten aansluitingen:
- RJ45 interface: Gebruik deze om met een router of switch te verbinden via een Ethernet kabel.
- SPI interface: Gebruik deze om te verbinden met een Arduino board. Deze heeft 10 pinnen:
- NC pin: Verbind deze pin niet.
- INT pin: Verbind deze pin niet.
- RST pin: Dit is de reset-pin, verbind deze met de EN-pin van de Arduino.
- GND pin: Verbind deze pin met de GND-pin van de Arduino.
- 5V pin: Verbind deze pin niet.
- 3.3V pin: Verbind deze pin met de 3.3V-pin van de Arduino.
- MISO pin: Verbind deze pin met de SPI MISO-pin van de Arduino.
- MOSI pin: Verbind deze pin met de SPI MOSI-pin van de Arduino.
- SCS pin: Verbind deze pin met de SPI CS-pin van de Arduino.
- SCLK pin: Verbind deze pin met de SPI SCK-pin van de Arduino.

image source: diyables.io
Aansluitschema tussen Arduino en W5500 Ethernet module

This image is created using Fritzing. Click to enlarge image
image source: diyables.io
Arduino code voor Ethernet Module - HTTP-verzoek via Ethernet maken
Deze code fungeert als webclient door HTTP-verzoeken te sturen naar de webserver op http://example.com/.
/*
* Deze Arduino code is ontwikkeld door newbiely.nl
* Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld.
* Voor volledige instructies en schema's, bezoek:
* https://newbiely.nl/tutorials/arduino/arduino-ethernet
*/
#include <SPI.h>
#include <Ethernet.h>
// replace the MAC address below by the MAC address printed on a sticker on the Arduino Shield 2
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
EthernetClient client;
int HTTP_PORT = 80;
String HTTP_METHOD = "GET"; // or POST
char HOST_NAME[] = "example.com";
String PATH_NAME = "/";
void setup() {
Serial.begin(9600);
delay(1000);
Serial.println("Arduino - Ethernet Tutorial");
// initialize the Ethernet shield using DHCP:
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to obtaining an IP address");
// check for Ethernet hardware present
if (Ethernet.hardwareStatus() == EthernetNoHardware)
Serial.println("Ethernet shield was not found");
// check for Ethernet cable
if (Ethernet.linkStatus() == LinkOFF)
Serial.println("Ethernet cable is not connected.");
while (true)
;
}
// connect to web server on port 80:
if (client.connect(HOST_NAME, HTTP_PORT)) {
// if connected:
Serial.println("Connected to server");
// make a HTTP request:
// send HTTP header
client.println(HTTP_METHOD + " " + PATH_NAME + " HTTP/1.1");
client.println("Host: " + String(HOST_NAME));
client.println("Connection: close");
client.println(); // end HTTP header
while (client.connected()) {
if (client.available()) {
// read an incoming byte from the server and print it to serial monitor:
char c = client.read();
Serial.print(c);
}
}
// the server's disconnected, stop the client:
client.stop();
Serial.println();
Serial.println("disconnected");
} else { // if not connected:
Serial.println("connection failed");
}
}
void loop() {
}
Snelle Stappen
- Bent u nieuw met Arduino? Begin met het installeren van de omgeving in de Arduino IDE door de handleiding hier te volgen.
- Verbind de Ethernet module met de Arduino volgens het gegeven aansluitschema.
- Verbind de Arduino met uw computer via een USB-kabel.
- Sluit de Ethernet module aan op uw router of switch met een Ethernet kabel.
- Start de Arduino IDE op uw computer.
- Kies het juiste Arduino board, bijvoorbeeld het Arduino Dev Module, en selecteer de juiste COM-poort.
- Klik op het Libraries icoon in de linker balk van de Arduino IDE.
- Zoek op “Ethernet” en vind de Ethernet bibliotheek van Various.
- Klik op de Installeren knop om de Ethernet bibliotheek te installeren.

- Open de Seriële Monitor in de Arduino IDE.
- Kopieer de meegeleverde code en plak die in de Arduino IDE.
- Klik op de Upload knop in de Arduino IDE om de code naar de Arduino te verzenden.
- Bekijk de uitvoer in de Seriële Monitor; het zou het volgende moeten weergeven:
COM6
Arduino - Ethernet Tutorial
Connected to server
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 208425
Cache-Control: max-age=604800
Content-Type: text/html; charset=UTF-8
Date: Fri, 12 Jul 2024 07:08:42 GMT
Etag: "3147526947"
Expires: Fri, 19 Jul 2024 07:08:42 GMT
Last-Modified: Thu, 17 Oct 2019 07:18:26 GMT
Server: ECAcc (lac/55B8)
Vary: Accept-Encoding
X-Cache: HIT
Content-Length: 1256
Connection: close
<!doctype html>
<html>
<head>
<title>Example Domain</title>
<meta charset="utf-8" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
<div>
<h1>Example Domain</h1>
<p>This domain is for use in illustrative examples in documents. You may use this
domain in literature without prior coordination or asking for permission.</p>
<p><a href="https://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>
disconnected
Autoscroll
Clear output
9600 baud
Newline
※ Notiz:
Als een ander apparaat op hetzelfde netwerk hetzelfde MAC-adres gebruikt, werkt het mogelijk niet.
Arduino code voor Ethernet Module - Webserver
De onderstaande code verandert de Arduino in een webserver. Deze server stuurt een eenvoudige webpagina naar webbrowsers.
/*
* Deze Arduino code is ontwikkeld door newbiely.nl
* Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld.
* Voor volledige instructies en schema's, bezoek:
* https://newbiely.nl/tutorials/arduino/arduino-ethernet
*/
#include <SPI.h>
#include <Ethernet.h>
// replace the MAC address below by the MAC address printed on a sticker on the Arduino Shield 2
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
EthernetServer server(80);
void setup() {
Serial.begin(9600);
delay(1000);
Serial.println("Arduino - Ethernet Tutorial");
// initialize the Ethernet shield using DHCP:
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to obtaining an IP address");
// check for Ethernet hardware present
if (Ethernet.hardwareStatus() == EthernetNoHardware)
Serial.println("Ethernet shield was not found");
// check for Ethernet cable
if (Ethernet.linkStatus() == LinkOFF)
Serial.println("Ethernet cable is not connected.");
while (true)
;
}
server.begin();
Serial.print("Arduino - Web Server IP Address: ");
Serial.println(Ethernet.localIP());
}
void loop() {
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
// an HTTP request ends with a blank line
bool currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
// if you've gotten to the end of the line (received a newline
// character) and the line is blank, the HTTP request has ended,
// so you can send a reply
if (c == '\n' && currentLineIsBlank) {
// send a standard HTTP response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close"); // the connection will be closed after completion of the response
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<body>");
client.println("<h1>Arduino - Web Server with Ethernet</h1>");
client.println("</body>");
client.println("</html>");
break;
}
if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
} else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(1);
// close the connection:
client.stop();
Serial.println("client disconnected");
}
}
Snelle Stappen
- Kopieer de code hierboven en plak deze in de Arduino IDE.
- Klik op de Upload knop in de Arduino IDE om de code naar de Arduino te uploaden.
- Zie het resultaat in de Seriële Monitor; deze toont het volgende:
COM6
Arduino - Ethernet Tutorial
Arduino - Web Server IP Address: 192.168.0.2
Autoscroll
Clear output
9600 baud
Newline
- Kopieer het IP-adres hierboven en plak het in de adresbalk van uw webbrowser. U ziet een eenvoudige webpagina die door de Arduino wordt weergegeven.
