Arduino Nano - Ethernet

Dieser Leitfaden zeigt Ihnen, wie Sie den Arduino Nano mit dem Internet oder Ihrem lokalen Netzwerk verbinden, mithilfe des W5500-Ethernet-Moduls. Wir werden die folgenden Details erläutern:

Arduino Nano Ethernet

Erforderliche Hardware

1×Official Arduino Nano
1×Alternativ: DIYables ATMEGA328P Nano Development Board
1×USB-A-zu-Mini-B-Kabel
1×W5500 Ethernet Module
1×Ethernet Cable
1×Verbindungskabel
1×Breadboard
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano

Oder Sie können die folgenden Kits kaufen:

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, um eine Verbindung zu einem Router oder Switch mit einem Ethernet-Kabel herzustellen.
  • SPI-Schnittstelle: Verwenden Sie diese, um eine Verbindung zu einem Arduino Nano-Board herzustellen. Sie umfasst 10 Pins:
    • NC-Pin: Lassen Sie diesen Pin unbelegt.
    • INT-Pin: Lassen Sie diesen Pin unbelegt.
    • RST-Pin: Dies ist der Reset-Pin. Verbinden Sie ihn mit dem EN-Pin des Arduino Nano.
    • GND-Pin: Verbinden Sie diesen Pin mit dem GND-Pin des Arduino Nano.
    • 5V-Pin: Verbinden Sie diesen Pin mit dem 5V-Pin des Arduino Nano.
    • 3,3V-Pin: Lassen Sie diesen Pin unbelegt.
    • MISO-Pin: Verbinden Sie diesen Pin mit dem SPI-MISO-Pin des Arduino Nano.
    • MOSI-Pin: Verbinden Sie diesen Pin mit dem SPI-MOSI-Pin des Arduino Nano.
    • SCS-Pin: Verbinden Sie diesen Pin mit dem SPI-CS-Pin des Arduino Nano.
    • SCLK-Pin: Verbinden Sie diesen Pin mit dem SPI-SCK-Pin des Arduino Nano.
    Pinbelegung des Ethernet-Moduls
    image source: diyables.io

Verdrahtungsdiagramm zwischen Arduino Nano und W5500-Ethernet-Modul

Schaltplan des Ethernet-Moduls für Arduino Nano

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

Siehe Der beste Weg, den Arduino Nano und andere Komponenten mit Strom zu versorgen.

image source: diyables.io

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

Dieser Code funktioniert als Web-Client. Er sendet HTTP-Anfragen an den Webserver, der unter http://example.com/ zu finden ist.

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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-nano/arduino-nano-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, 0xEF }; 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 Nano - 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

  • Verbinde das Ethernet-Modul wie im Schaltplan gezeigt mit dem Arduino Nano.
  • Verbinde das Arduino Nano mit deinem Computer über ein USB-Kabel.
  • Verwende ein Ethernet-Kabel, um das Ethernet-Modul mit deinem Router oder Switch zu verbinden.
  • Öffne die Arduino-IDE auf deinem Computer.
  • Wähle das richtige Arduino Nano-Board und den COM-Port aus.
  • Klicke auf das Bibliotheken-Symbol in der linken Leiste der Arduino IDE.
  • Suche „Ethernet“, und finde dann die Ethernet-Bibliothek von Various.
  • Klicke auf die Installieren-Schaltfläche, um die Ethernet-Bibliothek zu installieren.
Arduino Nano Ethernet-Bibliothek
  • Öffnen Sie den seriellen Monitor in der Arduino-IDE.
  • Kopieren Sie den angegebenen Code und fügen Sie ihn in die Arduino-IDE ein.
  • Drücken Sie den Upload-Button in der Arduino-IDE, um den Code an den ESP25 zu senden.
  • Schauen Sie in den seriellen Monitor, um die Ausgabe zu sehen, die das Ergebnis wie angegeben anzeigen sollte.
COM6
Send
Arduino Nano - 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 verwendet, funktioniert es möglicherweise nicht ordnungsgemäß.

Arduino Nano-Code für Ethernet-Modul - Webserver

Der untenstehende Code verwandelt das Arduino Nano in einen Webserver. Dieser Server liefert eine einfache Webseite an Internetbrowsern.

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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-nano/arduino-nano-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, 0xEF }; EthernetServer server(80); void setup() { Serial.begin(9600); delay(1000); Serial.println("Arduino Nano - 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 Nano - 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 Nano - 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 in der Arduino IDE auf die Hochladen-Schaltfläche, um den Code an Ihren Arduino Nano zu senden
  • Überprüfen Sie die Ergebnisse im seriellen Monitor; sie werden wie folgt angezeigt:
COM6
Send
Arduino Nano - Ethernet Tutorial Arduino Nano - Web Server IP Address: 192.168.0.2
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Kopieren Sie die IP-Adresse von oben und fügen Sie sie in die Adresszeile Ihres Webbrowsers ein. Sie werden eine einfache Webseite sehen, die vom Arduino Nano angezeigt wird.
Arduino Nano 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!