Arduino - Ethernet

Dieser Leitfaden zeigt Ihnen, wie Sie den Arduino mit dem Internet oder Ihrem lokalen Netzwerk über das W5500-Ethernet-Modul verbinden. Wir werden die folgenden Details 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 bietet zwei Arten von Verbindungen:

  • RJ45-Schnittstelle: Verwenden Sie diese Schnittstelle, um eine Verbindung zu einem Router oder Switch mit einem Ethernet-Kabel herzustellen.
  • SPI-Schnittstelle: Verwenden Sie diese, um eine Verbindung zu einem Arduino-Board herzustellen. Sie verfügt über 10 Pins:
    • NC-Pin: Diesen Pin nicht anschließen.
    • INT-Pin: Diesen Pin nicht anschließen.
    • RST-Pin: Dies ist der Reset-Pin; verbinden Sie ihn mit dem EN-Pin des Arduino.
    • GND-Pin: Verbinden Sie diesen Pin mit dem GND-Pin des Arduino.
    • 5V-Pin: Diesen Pin nicht anschließen.
    • 3,3V-Pin: Verbinden Sie diesen Pin mit dem 3,3V-Pin des Arduino.
    • MISO-Pin: Verbinden Sie diesen Pin mit dem SPI-MISO-Pin des Arduino.
    • MOSI-Pin: Verbinden Sie diesen Pin mit dem SPI-MOSI-Pin des Arduino.
    • SCS-Pin: Verbinden Sie diesen Pin mit dem SPI-CS-Pin des Arduino.
    • SCLK-Pin: Verbinden Sie diesen Pin mit dem SPI-SCK-Pin des Arduino.
    Ethernet-Modul-Pinbelegung
    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.

image source: diyables.io

Arduino-Code für Ethernet-Modul – HTTP-Anfrage über Ethernet senden

Dieser Code fungiert als Web-Client, indem er HTTP-Anfragen an den Webserver sendet, 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 */ #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

  • Wenn Sie neu bei Arduino sind, beginnen Sie damit, die Umgebung in der Arduino-IDE einzurichten, indem Sie der Anleitung hier folgen.
  • Schließen Sie das Ethernet-Modul gemäß dem bereitgestellten Verdrahtungsdiagramm an den Arduino an.
  • Verbinden Sie den Arduino mit Ihrem Computer über ein USB-Kabel.
  • Schließen Sie das Ethernet-Modul mit einem Ethernet-Kabel an Ihren Router oder Switch an.
  • Starten Sie die Arduino-IDE auf Ihrem Computer.
  • Wählen Sie das richtige Arduino-Board, z. B. das Arduino Dev Module, und wählen Sie den COM-Port aus.
  • Klicken Sie auf das Bibliotheken-Symbol in der linken Leiste der Arduino IDE.
  • Suchen Sie „Ethernet“, und finden Sie dann die Ethernet-Bibliothek von Various
  • Klicken Sie auf die Install-Schaltfläche, um die Ethernet-Bibliothek zu installieren.
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 Upload-Schaltfläche, um den Code auf den ESP25 hochzuladen.
  • Um die Ausgabe zu sehen, öffnen Sie den seriellen Monitor, der das Ergebnis wie gezeigt anzeigt.
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 dieselbe MAC-Adresse hat, funktioniert es möglicherweise nicht.

Arduino-Code für Ethernet-Modul – Webserver

Der unten stehende Code verwandelt den Arduino in einen Webserver. Dieser Webserver sendet Webbrowsern eine einfache Webseite.

/* * 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 */ #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 Hochladen-Schaltfläche in der Arduino IDE, um den Code auf den Arduino hochzuladen.
  • Sehen Sie das Ergebnis im Serial Monitor; es sieht wie folgt aus:
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 angezeigte IP-Adresse und fügen Sie sie in die Adresszeile Ihres Webbrowsers ein. Sie werden eine einfache Webseite sehen, die vom Arduino angezeigt wird.
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!