Arduino - Ethernet

Dieses Tutorial zeigt Ihnen, wie Sie den Arduino und das Ethernet-Modul verwenden, um eine Verbindung zum Internet oder zu Ihrem LAN-Netzwerk herzustellen. Folgendes werden wir behandeln:

Arduino Ethernet

Erforderliche Hardware

1×Arduino Uno R3
1×USB 2.0 Kabel Typ A/B (für USB-A PC)
1×USB 2.0 Kabel Typ C/B (für USB-C PC)
1×W5500 Ethernet Module
1×Ethernet Cable
1×Verbindungskabel
1×Breadboard
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables STEM V3 Starter-Kit (Arduino enthalten)
1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über das W5500-Ethernet-Modul

Das W5500-Ethernet-Modul hat zwei Anschlussmöglichkeiten:

  • RJ45-Ethernet-Schnittstelle: Verwenden Sie ein Ethernet-Kabel, um eine Verbindung zu einem Router oder Switch herzustellen.
  • SPI-Schnittstelle: Verwenden Sie dies, um eine Verbindung zu einem Arduino-Board herzustellen. Es hat 10 Pins. Diese Pins müssen wie in der untenstehenden Tabelle mit dem Arduino verbunden werden:
Ethenet Module Pins Arduino Pins
NC pin NOT connected
INT pin NOT connected
RST pin Reset pin
GND pin GND pin
5V pin 5V pin
3.3V pin NOT connected
MISO pin 12 (MISO)
MOSI pin 11 (MOSI)
SCS pin 10 (SS)
SCLK pin 13 (SCK)
Pinbelegung des Ethernet-Moduls
image source: diyables.io

Verdrahtungsdiagramm zwischen Arduino und dem W5500-Ethernet-Modul

Arduino-Ethernet-Modul Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Die untenstehende Verbindung ist eine echte Verbindung zwischen Arduino und dem W5500-Ethernet-Modul.

Verbindung des Arduino-Ethernet-Moduls

Arduino-Code für Ethernet-Modul - Eine HTTP-Anfrage über Ethernet erstellen

Dieser Code fungiert als Web-Client. Er sendet HTTP-Anfragen an den Webserver, der sich unter http://example.com/ befindet.

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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 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() { }

Schnelle Schritte

Bitte befolgen Sie diese Schritte der Reihe nach:

  • Verbinde das Ethernet-Modul mit deinem Arduino, wie im bereitgestellten Diagramm gezeigt.
  • Verwende ein Ethernet-Kabel, um das Ethernet-Modul mit deinem Router oder Switch zu verbinden.
  • Verwende ein USB-Kabel, um das Arduino-Board mit deinem Computer zu verbinden.
  • Öffne die Arduino-IDE auf deinem Computer.
  • Wähle das richtige Arduino-Board und den COM-Port aus.
  • Klicke auf das Bibliotheken-Symbol auf der linken Seite der Arduino-IDE.
  • Gib in das Suchfeld “Ethernet” ein und finde die Ethernet-Bibliothek von Various.
  • Klicke auf die Installieren-Schaltfläche, um die Ethernet-Bibliothek hinzuzufügen.
Arduino-Ethernet-Bibliothek
  • Öffnen Sie den seriellen Monitor in der Arduino IDE.
  • Kopieren Sie den bereitgestellten Code und fügen Sie ihn in die Arduino IDE ein.
  • Klicken Sie in der Arduino IDE auf die Schaltfläche Hochladen, um den Code auf den Arduino zu übertragen.
  • Schauen Sie im Serial Monitor nach, dort erscheinen die Ergebnisse wie unten.
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:

Wenn ein anderes Gerät im selben Netzwerk Ihre MAC-Adresse verwendet, kann es zu Problemen kommen.

Arduino-Code für Ethernet-Modul – Webserver

Der unten stehende Code erstellt einen Webserver auf dem Arduino. Dieser Webserver sendet eine einfache Webseite an die Webbrowser.

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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 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"); } }

Schnelle Schritte

  • Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino-IDE ein.
  • Klicken Sie auf die Schaltfläche Hochladen in der Arduino-IDE, um den Code auf den Arduino hochzuladen.
  • Überprüfen Sie das Ergebnis im Serial Monitor; es wird wie folgt angezeigt:
COM6
Send
Arduino - Ethernet Tutorial Arduino - Web Server IP Address: 192.168.0.2
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Kopieren Sie die oben erwähnte IP-Adresse und fügen Sie sie in die Adressleiste Ihres Webbrowsers ein. Sie werden eine einfache Webseite von Arduino sehen.
Arduino Ethernet Webserver

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!