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:

Arduino Ethernet

Hardware Benodigd

1×Arduino Uno R3
1×USB 2.0 kabel type A/B
1×W5500 Ethernet Module
1×Ethernet Kabel
1×Jumperdraden (man-man)
1×Breadboard (experimenteerprint)
1×(Aanbevolen) Schroefklem Block Shield voor Arduino Uno
1×(Aanbevolen) Breadboard-Shield voor Arduino Uno
1×(Aanbevolen) Behuizing voor Arduino Uno
1×(Aanbevolen) Prototyping Basisplaat & Breadboard Kit voor Arduino Uno

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.
    Ethernet module pinout
    image source: diyables.io

Aansluitschema tussen Arduino en W5500 Ethernet module

Arduino Ethernet module Aansluitschema

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.
Arduino Ethernet bibliotheek
  • 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
Send
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 Show timestamp
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
Send
Arduino - Ethernet Tutorial Arduino - Web Server IP Address: 192.168.0.2
Autoscroll Show timestamp
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.
Arduino Ethernet Web Server

※ ONZE BERICHTEN

  • 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!