Deze handleiding laat u zien hoe u de Arduino en een Ethernet-module gebruikt om verbinding te maken met het internet of uw LAN-netwerk. We behandelen de volgende onderwerpen:
Het aansluiten van de Arduino op een W5500 Ethernet Module
Het programmeren van de Arduino om HTTP-verzoeken over Ethernet te verzenden
Het programmeren van de Arduino om een webserver te maken via Ethernet
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 verbindingsmogelijkheden:
RJ45 Ethernet Interface: Gebruik een Ethernetkabel om verbinding te maken met een router of switch.
SPI Interface: Hiermee sluit u de module aan op een Arduino board. De module heeft 10 pins. Deze pins moeten worden aangesloten op de Arduino volgens onderstaande tabel:
Ethernet Module Pins
Arduino Pins
NC pin
NIET aangesloten
INT pin
NIET aangesloten
RST pin
Reset pin
GND pin
GND pin
5V pin
5V pin
3.3V pin
NIET aangesloten
MISO pin
12 (MISO)
MOSI pin
11 (MOSI)
SCS pin
10 (SS)
SCLK pin
13 (SCK)
image source: diyables.io
Bekabelingsschema tussen Arduino en W5500 Ethernet module
Deze afbeelding is gemaakt met Fritzing. Klik om de afbeelding te vergroten.
Hieronder ziet u de daadwerkelijke verbinding tussen Arduino en W5500 Ethernet module:
Arduino code voor Ethernet Module - HTTP-verzoek verzenden via Ethernet
Deze code fungeert als een webclient. Het verzendt HTTP-verzoeken naar de webserver die te vinden is 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-module*/#include <SPI.h>#include <Ethernet.h>// replace the MAC address below by the MAC address printed on a sticker on the Arduino Shield 2byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };EthernetClient client;int HTTP_PORT = 80;String HTTP_METHOD = "GET"; // or POSTchar HOST_NAME[] = "example.com";String PATH_NAME = "/";voidsetup() {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 presentif (Ethernet.hardwareStatus() == EthernetNoHardware)Serial.println("Ethernet shield was not found");// check for Ethernet cableif (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 headerwhile (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"); }}voidloop() {}
Snelle Stappen
Volg deze stappen één voor één:
Verbind de Ethernet module met uw Arduino zoals weergegeven in het schema.
Gebruik een Ethernetkabel om de Ethernet module met uw router of switch te verbinden.
Verbind de Arduino met uw computer via een USB-kabel.
Open de Arduino IDE op uw computer.
Selecteer het juiste Arduino board en de juiste COM-poort.
Klik op het Libraries icoon aan de linkerzijde van de Arduino IDE.
Typ in de zoekbalk “Ethernet” en zoek de Ethernet library van Various.
Klik op de Installeren knop om de Ethernet library toe te voegen.
Open de Seriële Monitor in de Arduino IDE.
Kopieer de meegeleverde code en plak deze in de Arduino IDE.
Klik op de Upload knop in de Arduino IDE om de code naar de Arduino te sturen.
Bekijk het resultaat in de Seriële Monitor, waar de output als volgt verschijnt.
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 - 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
Ln 11, Col 1
Arduino Uno on COM15
2
※ Notiz:
Als een ander apparaat op hetzelfde netwerk hetzelfde MAC-adres gebruikt, kunnen er problemen ontstaan.
Arduino code voor Ethernet Module - Webserver
De onderstaande code maakt een webserver op de Arduino. Deze webserver 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-module*/#include <SPI.h>#include <Ethernet.h>// replace the MAC address below by the MAC address printed on a sticker on the Arduino Shield 2byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };EthernetServer server(80);voidsetup() {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 presentif (Ethernet.hardwareStatus() == EthernetNoHardware)Serial.println("Ethernet shield was not found");// check for Ethernet cableif (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());}voidloop() {// listen for incoming clientsEthernetClient client = server.available();if (client) {Serial.println("new client");// an HTTP request ends with a blank linebool 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 replyif (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; } elseif (c != '\r') {// you've gotten a character on the current line currentLineIsBlank = false; } } }// give the web browser time to receive the datadelay(1);// close the connection: client.stop();Serial.println("client disconnected"); }}
Snelle Stappen
Kopieer de bovenstaande code en plak deze in de Arduino IDE.
Klik op de Upload knop in de Arduino IDE om de code naar de Arduino te uploaden.
Bekijk het resultaat in de Seriële Monitor, dit wordt als volgt weergegeven:
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 - Ethernet Tutorial
Arduino - Web Server IP Address: 192.168.0.2
Ln 11, Col 1
Arduino Uno on COM15
2
Kopieer het hierboven vermelde IP-adres en plak dit in de adresbalk van uw webbrowser. U ziet dan een eenvoudige webpagina afkomstig van de Arduino.
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!