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 mit einem W5500-Ethernet-Modul verbinden
Arduino programmieren, HTTP-Anfragen über Ethernet zu senden
Arduino programmieren, einen Webserver über Ethernet zu erstellen
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)
image source: diyables.io
Verdrahtungsdiagramm zwischen Arduino und dem W5500-Ethernet-Modul
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.
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 2byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };EthernetClient client;int HTTP_PORT = 80;String HTTP_METHOD = "GET"; // or POSTchar HOST_NAME[] = "example.com";String PATH_NAME = "/";voidsetup() {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 presentif (Ethernet.hardwareStatus() == EthernetNoHardware)Serial.println("Ethernet shield was not found");// check for Ethernet cableif (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 headerwhile (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"); }}voidloop() {}
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.
Ö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.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
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
Ln 11, Col 1
Arduino Uno on COM15
2
※ 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 2byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };EthernetServer server(80);voidsetup() {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 presentif (Ethernet.hardwareStatus() == EthernetNoHardware)Serial.println("Ethernet shield was not found");// check for Ethernet cableif (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());}voidloop() {// listen for incoming clientsEthernetClient client = server.available();if (client) {Serial.println("new client");// an HTTP request ends with a blank linebool 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 replyif (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; } elseif (c != '\r') {// you've gotten a character on the current line currentLineIsBlank = false; } } }// give the web browser time to receive the datadelay(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:
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
Arduino - Ethernet Tutorial
Arduino - Web Server IP Address: 192.168.0.2
Ln 11, Col 1
Arduino Uno on COM15
2
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.
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!