ESP8266 - Ethernet

Dieses Handbuch zeigt Ihnen, wie Sie den ESP8266 mit dem Internet oder Ihrem lokalen Netzwerk über das W5500-Ethernet-Modul verbinden. Folgendes wird besprochen:

ESP8266 NodeMCU Ethernet

Erforderliche Hardware

1×ESP8266 NodeMCU
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 ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

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 hat zwei Arten von Verbindungen:

  • RJ45-Schnittstelle: Verbinden Sie diese mit einem Netzwerkteilnehmer wie einem Router oder Switch mithilfe eines Ethernet-Kabels.
  • SPI-Schnittstelle: Verbinden Sie dies mit einem ESP8266-Board unter Verwendung der folgenden Verbindungen für seine 10 Pins:
    • NC-Pin: Lassen Sie diesen Pin unverbunden.
    • INT-Pin: Lassen Sie diesen Pin unverbunden.
    • RST-Pin: Verbinden Sie diesen mit dem Reset- (EN)-Pin am ESP8266.
    • GND-Pin: Verbinden Sie diesen Pin mit dem GND-Pin am ESP8266.
    • 5V-Pin: Diesen Pin nicht anschließen.
    • 3,3V-Pin: Verbinden Sie diesen mit dem 3,3V-Pin am ESP8266.
    • MISO-Pin: Verbinden Sie diesen mit dem SPI-MISO-Pin am ESP8266.
    • MOSFi-Pin: Verbinden Sie diesen mit dem SPI-MOSI-Pin am ESP8266.
    • SCS-Pin: Verbinden Sie diesen mit dem SPI CS (Chip Select)-Pin am ESP8266.
    • SCLK-Pin: Verbinden Sie diesen mit dem SPI SCK (Clock)-Pin am Arauthenticated.
    Pinbelegung des Ethernet-Moduls
    image source: diyables.io

Verdrahtungsdiagramm zwischen ESP8266 und W5500-Ethernet-Modul

ESP8266 NodeMCU-Ethernet-Modul Schaltplan

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

Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.

image source: diyables.io

ESP8266-Code für Ethernet-Modul - Eine HTTP-Anfrage über Ethernet senden

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

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-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("ESP8266 - 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 ESP8266 in der Arduino-IDE zu beginnen, befolgen Sie diese Schritte:

  • Schau dir das Tutorial zur Einrichtung der ESP8266-Umgebung in der Arduino-IDE an, falls du ESP8266 zum ersten Mal verwendest.
  • Schließe das Ethernet-Modul wie im Verdrahtungsdiagramm gezeigt an das ESP8266-Board an.
  • Verwende ein Ethernet-Kabel, um das Ethernet-Modul mit deinem Router oder Switch zu verbinden.
  • Schließe das ESP8266-Board mit einem USB-Kabel an deinen Computer an.
  • Öffne die Arduino-IDE auf deinem Computer.
  • Wähle das richtige ESP8266-Board aus, z. B. (z. B. NodeMCU 1.0 (ESP-12E Modul)), und den jeweiligen COM-Port.
  • 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 Schaltfläche Installieren, um die Ethernet-Bibliothek zu installieren.
ESP8266 NodeMCU Ethernet-Bibliothek
  • Öffnen Sie den seriellen Monitor in der Arduino-IDE.
  • Kopieren Sie den gegebenen Code und fügen Sie ihn in die Arduino-IDE ein.
  • Drücken Sie im Arduino-IDE die Upload-Schaltfläche, um den Code an den ESP25 zu senden.
  • Überprüfen Sie das Ergebnis im seriellen Monitor, das unten angezeigt wird.
COM6
Send
ESP8266 - 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 ordnungsgemäß.

ESP8266-Code für Ethernet-Modul – Webserver

Der untenstehende Code verwandelt den ESP8266 in einen Webserver. Dieser Server liefert eine einfache Webseite an Internetbrowsern.

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-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("ESP8266 - 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("ESP8266 - 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>ESP8266 - 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 auf den ESP8266 zu übertragen.
  • Überprüfen Sie die Ergebnisse im Serial Monitor; sie werden wie beschrieben angezeigt.
COM6
Send
ESP8266 - Ethernet Tutorial ESP8266 - Web Server IP Address: 192.168.0.2
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Kopieren Sie die oben angegebene IP-Adresse und geben Sie sie in die Adresszeile Ihres Webbrowsers ein. Sie sehen eine einfache Webseite, die vom ESP8266 bereitgestellt wird.
ESP8266 NodeMCU 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!