Arduino - Ethernet-Shield
Die Verwendung des Arduino Ethernet Shields ist eine der einfachsten Möglichkeiten, Arduino mit dem Internet zu verbinden. Weitere Optionen, Arduino über Ethernet mit dem Internet zu verbinden, finden Sie im Arduino - Ethernet-Tutorial.
In diesem Tutorial werden wir lernen:
- Grundlegende Netzwerkkenntnisse für Anfänger
- Wie man das Arduino Ethernet Shield verwendet
- Grundgerüst-Code für das Arduino Ethernet Shield bei Verwendung der dynamischen IP-Adresse (über DHCP)
- Grundgerüst-Code für das Arduino Ethernet Shield bei Verwendung der statischen IP-Adresse

Erforderliche Hardware
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) |
Grundlegende Kenntnisse der Netzwerktechnik für Anfänger
Dieser Abschnitt bietet Grundwissen für Anfänger, die nichts über Netzwerke wissen.
Wenn ein Gerät eine Verbindung zum Internet herstellt (über Ethernet oder WiFi), muss es sich mit einem Router oder einem Access Point verbinden. Router und Access Point sind Geräte, die die Rolle des Gateways zum Internet übernehmen. Alle Daten zwischen einem Gerät und dem Internet werden durch den Router oder Access Point weitergeleitet.
Wenn sich ein Gerät mit dem Internet verbindet, muss es:
- Eine MAC-Adresse haben
- Eine IP-Adresse haben
- Die Subnetzmaske des Netzwerks kennen
- Die IP-Adresse des Gateways kennen (IP-Adresse des Routers oder des Access Points)
- Die IP-Adresse des DNS-Servers kennen (falls eine Verbindung zu einem Domainnamen hergestellt wird)
Das Gerät funktioniert nicht, wenn entweder:
- Im selben Netzwerk gibt es ein oder mehrere weitere Geräte, die dieselbe MAC-Adresse des Geräts verwenden (als Konflikt-MAC-Adresse bezeichnet).
- Im selben Netzwerk gibt es ein oder mehrere weitere Geräte, die dieselbe IP-Adresse des Geräts verwenden (als Konflikt-IP-Adresse bezeichnet).
Dieses Tutorial überfordert Sie nicht mit dem Wissen über Netzwerke. Deshalb erklärt das Tutorial diese Konzepte nicht. Es liegt außerhalb des Umfangs dieses Tutorials. Stattdessen zeigt das Tutorial, wie man sie verwendet.
Die MAC-Adresse ist bei Geräten normalerweise fest eingebaut. Daran müssen wir uns nicht kümmern. Allerdings hat das Arduino Ethernet Shield keine integrierte MAC-Adresse. Die MAC-Adresse ist auf einem Aufkleber auf dem Shield aufgedruckt. Wir müssen sie ablesen und die MAC-Adresse für das Arduino Shield im Arduino-Code festlegen.
Es gibt zwei Methoden, um einem Gerät (einschließlich Arduino) die IP-Adresse, die Subnetzmaske, die IP-Adresse des Gateways und die IP-Adresse des DNS-Servers zuzuweisen:
- Verwenden Sie die statische IP-Adresse:
- Man muss die IP-Adresse, Subnetzmaske, Gateway-IP-Adresse und DNS-Server-IP-Adresse verwalten
- Man muss die IP-Adresse, Subnetzmaske, Gateway-IP-Adresse und DNS-Server-IP-Adresse manuell festlegen (für den Arduino Ethernet Shield legt man diese Informationen im Arduino-Code fest)
- Es funktioniert NICHT, wenn:
- Eine IP-Adresse festgelegt wird, die von anderen Geräten im selben LAN-Netzwerk verwendet wird → IP-Konflikt
- Eine falsche Subnetzmaske, Gateway-IP-Adresse und DNS-Server-IP-Adresse festlegen
- Das Gerät bezieht automatisch die IP-Adresse, Subnetzmaske, Gateway-IP-Adresse und DNS-Server-IP-Adresse vom Router oder Access Point mittels DHCP. Wir müssen die IP-Adresse, Subnetzmaske, Gateway-IP-Adresse und DNS-Server-IP-Adresse nicht verwalten. Der Router/Access Point erledigt dies für uns.
Wenn Sie Ihr Smartphone mit Ihrem Heim-WLAN verbinden, wird die zweite Methode verwendet.
Wenn man Arduino verwendet, ist die erste Methode für Anfänger schwierig. Die zweite Methode ist einfach und wird Anfängern empfohlen, die nichts über Netzwerke wissen.
So verwenden Sie das Arduino Ethernet Shield
Arduino kommuniziert über die SPI-Schnittstelle mit dem Ethernet Shield. Folgendes zeigt, wie man das Arduino Ethernet Shield verwendet.
- Stecke das Ethernet-Shield auf den Arduino Uno oder Mega
- Verbinde den PC mit dem Arduino Uno/Mega über ein USB-Kabel
- Verbinde das Ethernet-Shield über ein Ethernet-Kabel mit dem Router oder Access Point
- Öffne die Arduino-IDE und schreibe Code
- Lade den Code auf den Arduino Uno/Mega hoch
Es ist völlig einfach.
Grundgerüstcode für Arduino Ethernet Shield bei Verwendung einer dynamischen IP-Adresse
Voraussetzung
- Wir müssen die MAC-Adresse des Ethernet-Shields kennen (aus einem vom Hersteller bereitgestellten Aufkleber)
Wie programmiert man Schritt für Schritt
- Bibliothek einbinden
- MAC-Adresse deklarieren
- Deklariere weitere Objekte, je nach Anwendung.
- Starte das Ethernet-Shield
*(Optional) Geben Sie die IP-Adresse des Arduino, die Subnetzmaske, die Gateway-IP-Adresse und die DNS-Server-IP-Adresse aus.
Beachten Sie, dass Arduino in den folgenden Fällen keine IP-Adresse erhalten kann:
- Der Router oder Access Point unterstützt kein DHCP
- Das Ethernet-Kabel ist nicht richtig eingesteckt oder defekt
Um diese Probleme zu erkennen, können wir Ethernet.begin(mac); wie folgt ändern:
※ Notiz:
Wenn Sie die MAC-Adresse nicht ändern, kann sie trotzdem funktionieren. Allerdings kann sie nicht funktionieren, wenn sie mit der MAC-Adresse eines anderen Geräts im selben LAN-Netzwerk in Konflikt geraten. Falls der MAC-Aufkleber verloren geht, verwenden Sie einfach die oben genannte MAC-Adresse zum Testen.
Der vollständige Skelettcode bei Verwendung der dynamischen IP-Adresse
Lade den obigen Code auf Arduino hoch. Wenn es gelingt, zeigt der serielle Monitor Folgendes an:
Wenn der serielle Monitor nicht so angezeigt wird wie oben, überprüfe dein Ethernet-Kabel. Wenn es immer noch nicht funktioniert, gehe zum nächsten Teil, um die statische IP-Adresse zu verwenden.
Skelettcode für das Arduino Ethernet Shield bei Verwendung der statischen IP-Adresse
Voraussetzung
- Du musst die MAC-Adresse bekommen (vom Aufkleber ablesen)
- Du musst eine noch nicht verwendete IP-Adresse bekommen (siehe wie man eine noch nicht verwendete IP-Adresse erhält)
- Du musst die Subnetzmaske deines Netzwerks erhalten (siehe wie man die Subnetzmaske erhält)
- Du musst die IP-Adresse des Gateways erhalten (siehe wie man die IP-Adresse des Gateways erhält)
- Du musst die IP-Adresse des DNS-Servers erhalten (siehe wie man die IP-Adresse des DNS-Servers erhält)
Wie man Schritt für Schritt programmiert
- Bibliothek einbinden
- MAC-Adresse deklarieren
- Deklarieren Sie eine ungenutzte IP-Adresse, eine Subnetzmaske, die IP-Adresse des Gateways und die IP-Adresse des DNS-Servers.
- Deklarieren Sie weitere Objekte, je nach Ihrer Anwendung.
- Starten Sie das Ethernet-Shield
- Optional: Netzwerkverbindungsstatus prüfen.
※ Notiz:
Wenn Sie die MAC-Adresse NICHT ändern, kann es trotzdem funktionieren. Allerdings kann es NICHT funktionieren, wenn sie mit der MAC-Adresse eines anderen Geräts im selben LAN-Netzwerk kollidiert. Falls der MAC-Aufkleber verloren geht, verwenden Sie einfach die oben genannte MAC-Adresse zum Testen.
Der vollständige Skelettcode bei der Verwendung der statischen IP-Adresse
Lade den obigen Code auf den Arduino hoch. Wenn der Upload erfolgreich war, zeigt der serielle Monitor Folgendes:
Wenn der Serial Monitor nicht wie oben angezeigt wird:
- Prüfen Sie Ihr Ethernetkabel
- Stellen Sie sicher, dass die IP-Adresse zu Ihrem Netzwerk gehört
- Stellen Sie sicher, dass die IP-Adresse nicht mit anderen Geräten im selben Netzwerk kollidiert
- Stellen Sie sicher, dass die Subnetzmaske, die IP-Adresse des Gateways und die IP-Adresse des DNS-Servers korrekt eingestellt sind
Zusätzliches Wissen über Netzwerke für Anfänger
Wenn Sie eine statische IP verwenden, müssen Sie eine ungenutzte IP-Adresse, eine Subnetzmaske, die IP-Adresse des Gateways und die IP-Adresse des DNS-Servers erhalten. Unten wird gezeigt, wie man sie erhält.
Wenn Arduino und Ihr PC sich mit demselben Netzwerk verbinden.
- Öffnen Sie die Eingabeaufforderung auf Ihrem PC
- Geben Sie den folgenden Befehl in der Eingabeaufforderung ein:
- Aus dem Obigen können Sie die Subnetzmaske und die IP-Adresse des Gateways erhalten.
- Aus der obigen Ausgabe können Sie die IP-Adresse Ihres PCs sehen. Wir werden versuchen, basierend auf der IP-Adresse Ihres PCs eine ungenutzte IP-Adresse zu finden.
- Erhöhen oder verringern Sie die IP-Adresse schrittweise, beginnend mit der IP-Adresse des PCs.
- Senden Sie den ping-Befehl an diese IP-Adresse in der Eingabeaufforderung. Wiederholen Sie diese beiden Schritte, bis die IP-Adresse nicht erreichbar ist. Falls die Adresse nicht erreichbar ist, handelt es sich um eine unbenutzte IP-Adresse und wir können sie für Arduino verwenden. Zum Beispiel:
- Für DNS-Server-IP-Adresse, können wir einfach 8.8.8.8 verwenden
※ Notiz:
In einigen Fällen kann die IP-Adresse, auch wenn sie nicht erreichbar ist, von einem anderen Gerät verwendet werden. Dieser Fall tritt jedoch in Ihrem Heimnetzwerk in der Regel nicht auf.
Jetzt können Sie diese Shields verwenden, um Arduino mit dem Internet zu verbinden. Siehe auch ein weiteres Beispiel im Abschnitt 'Siehe Auch'.
WARNING
Bitte beachten Sie, dass dieses Tutorial unvollständig ist. Wir werden auf unserer Facebook-Seite posten, wenn das Tutorial vollständig ist. Liken Sie sie, um auf dem Laufenden zu bleiben.