Arduino Nano ESP32 - Ethernet

Dieser Leitfaden zeigt Ihnen, wie Sie den Arduino Nano ESP32 mit dem Internet oder Ihrem lokalen Netzwerk unter Verwendung des W55010-Ethernet-Moduls verbinden. Sie werden Folgendes lernen:

Arduino Nano ESP32 Ethernet

Erforderliche Hardware

1×Arduino Nano ESP32
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
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 ESP32

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 W550io-Ethernet-Modul hat zwei Arten von Anschlüssen:

  • RJ45-Schnittstelle: Verbinden Sie diese mit einem Router oder Switch über ein Ethernet-Kabel.
  • SPI-Schnittstelle: Verwenden Sie diese, um eine Verbindung zu einem Arduino Nano ESP32-Board herzustellen. Sie umfasst 10 Pins:
    • NC-Pin: Lassen Sie diesen Pin unverbunden.
    • INT-Pin: Lassen Sie diesen Pin unverbunden.
    • RST-Pin: Dies ist der Reset-Pin; schließen Sie ihn an den EN-Pin des Arduino Nano ESP32 an.
    • GND-Pin: Schließen Sie ihn an den GND-Pin des Arduino Nano ESP32 an.
    • 5V-Pin: Verbinden Sie diesen Pin nicht.
    • 3,3V-Pin: Verbinden Sie ihn mit dem 3,3V-Pin des Arduino Nano ESP32.
    • MISO-Pin: Verbinden Sie ihn mit dem SPI MISO-Pin des Arduino Nano ESP32.
    • MOSI-Pin: Verbinden Sie ihn mit dem SPI MOSI-Pin des Arduino Nano ESP32.
    • SCS-Pin: Verbinden Sie ihn mit dem SPI CS-Pin des Arduino Nano ESP32.
    • SCLK-Pin: Verbinden Sie ihn mit dem SPI SCK-Pin des Arduino Nano ESP32.
    Pinbelegung des Ethernet-Moduls
    image source: diyables.io

Verdrahtungsdiagramm zwischen Arduino Nano ESP32 und W5500-Ethernet-Modul

Arduino Nano ESP32 Ethernet-Modul Verdrahtungsdiagramm

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

image source: diyables.io

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

Dieser Code funktioniert wie ein Web-Client. Er sendet HTTP-Anfragen an den Webserver unter http://example.com/.

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano ESP32 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-esp32/arduino-nano-esp32-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 ESP32 - 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

Um mit dem Arduino Nano ESP32 zu beginnen, befolgen Sie diese Schritte:

  • Falls Sie neu bei Arduino Nano ESP32 sind, lesen Sie das Tutorial wie man die Umgebung für Arduino Nano ESP32 in der Arduino IDE einrichtet.
  • Verbinden Sie das Arduino Nano ESP32-Board gemäß dem bereitgestellten Diagramm mit dem Ethernet-Modul.
  • Verbinden Sie das Ethernet-Modul mit Ihrem Router oder Switch mithilfe eines Ethernet-Kabels.
  • Verbinden Sie das Arduino Nano ESP32-Board mit Ihrem Computer mithilfe eines USB-Kabels.
  • Öffnen Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das Arduino Nano ESP32-Board und seinen entsprechenden COM-Port aus.
  • Klicken Sie auf das Bibliotheken-Symbol in der linken Leiste der Arduino IDE.
  • Suchen Sie nach „Ethernet“, finden Sie dann die Ethernet-Bibliothek von Various.
  • Klicken Sie auf die Installieren-Schaltfläche, um die Ethernet-Bibliothek zu installieren.
Arduino Nano ESP32 Ethernet-Bibliothek
  • Öffne den seriellen Monitor in der Arduino-IDE.
  • Kopiere den angegebenen Code und füge ihn in die Arduino-IDE ein.
  • Drücke in der Arduino-IDE den Upload-Button, um den Code an den ESP25 zu senden.
  • Öffne den seriellen Monitor in der Arduino-IDE, der die Ausgabe wie unten angezeigt wird.
COM6
Send
Arduino Nano ESP32 - 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, könnte das Probleme verursachen.

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

Der untenstehende Code verwandelt den Arduino Nano ESP32 in einen Webserver. Dieser Server sendet Webbrowsern eine einfache Webseite.

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano ESP32 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-esp32/arduino-nano-esp32-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 ESP32 - 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 ESP32 - 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 ESP32 - 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 bereitgestellten 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 an Ihr Arduino Nano ESP32-Board zu senden.
  • Öffnen Sie den seriellen Monitor, um die Ergebnisse wie gezeigt zu sehen.
COM6
Send
Arduino Nano ESP32 - Ethernet Tutorial Arduino Nano ESP32 - Web Server IP Address: 192.168.0.2
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Geben Sie die angegebene IP-Adresse in die Adresszeile Ihres Webbrowsers ein. Sie sehen eine einfache Webseite, die vom Arduino Nano ESP32 angezeigt wird.
Arduino Nano ESP32 Ethernet Webserver

Verwandte Tutorials

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