Arduino - Ethernet

Ce guide vous apprend à connecter l'Arduino à Internet ou à votre réseau local en utilisant le module Ethernet W5500. Nous aborderons les détails suivants :

Arduino Ethernet

Préparation du matériel

1×Arduino Uno
1×USB 2.0 cable type A/B (for USB-A PC)
1×USB 2.0 cable type C/B (for USB-C PC)
1×W5500 Ethernet Module
1×Ethernet Cable
1×Jumper Wires
1×Breadboard
1×(Recommended) Screw Terminal Block Shield for Arduino Uno
1×(Recommended) Breadboard Shield For Arduino Uno
1×(Recommended) Enclosure For Arduino Uno

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du module Ethernet W5500

Le module Ethernet W5500 dispose de deux types de connexions :

  • Interface RJ45 : Utilisez-la pour vous connecter à un routeur ou un commutateur avec un câble Ethernet.
  • Interface SPI : Utilisez-la pour vous connecter à une carte Arduino. Elle a 10 broches :
    • Broche NC : Ne connectez pas cette broche.
    • Broche INT : Ne connectez pas cette broche.
    • Broche RST : C'est la broche de réinitialisation, connectez-la à la broche EN de l'Arduino.
    • Broche GND : Connectez cette broche à la broche GND de l'Arduino.
    • Broche 5V : Ne connectez pas cette broche.
    • Broche 3.3V : Connectez cette broche à la broche 3.3V de l'Arduino.
    • Broche MISO : Connectez cette broche à la broche SPI MISO de l'Arduino.
    • Broche MOSI : Connectez cette broche à la broche SPI MOSI de l'Arduino.
    • Broche SCS : Connectez cette broche à la broche SPI CS de l'Arduino.
    • Broche SCLK : Connectez cette broche à la broche SPI SCK de l'Arduino.
    Brochage du module Ethernet
    image source: diyables.io

Schéma de câblage entre Arduino et module Ethernet W5500

Schéma de câblage du module Ethernet Arduino

This image is created using Fritzing. Click to enlarge image

image source: diyables.io

Code Arduino pour module Ethernet - Effectuer une requête HTTP via Ethernet

Ce code agit comme un client web en envoyant des requêtes HTTP au serveur web situé à l'adresse http://example.com/.

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-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, 0xED }; 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 - 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() { }

Étapes rapides

  • Si vous êtes nouveau sur Arduino, commencez par configurer l'environnement sur l'IDE Arduino en suivant le guide Installation du logiciel Arduino..
  • Connectez le module Ethernet à l'Arduino selon le schéma de câblage fourni.
  • Reliez l'Arduino à votre ordinateur à l'aide d'un câble USB.
  • Connectez le module Ethernet à votre routeur ou switch à l'aide d'un câble Ethernet.
  • Lancez l'IDE Arduino sur votre ordinateur.
  • Choisissez la carte Arduino correcte, comme le module de développement Arduino, et sélectionnez le port COM.
  • Cliquez sur l'icône Libraries dans la barre de gauche de l'IDE Arduino.
  • Recherchez “Ethernet”, puis trouvez la bibliothèque Ethernet par Various.
  • Cliquez sur le bouton Install pour installer la bibliothèque Ethernet.
Bibliothèque Ethernet Arduino
  • Ouvrez le Moniteur Série dans l'IDE Arduino.
  • Copiez le code fourni et collez-le dans l'IDE Arduino.
  • Cliquez sur le bouton Télécharger dans l'IDE Arduino pour charger le code sur l'ESP25.
  • Pour voir le résultat, vérifiez le Moniteur Série qui devrait afficher le résultat comme indiqué.
COM6
Send
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
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Note:

Si un autre appareil sur le même réseau a la même adresse MAC, cela pourrait ne pas fonctionner.

Code Arduino pour le module Ethernet - Serveur Web

Le code ci-dessous transforme l'Arduino en serveur web. Ce serveur envoie une page web simple aux navigateurs web.

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-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, 0xED }; EthernetServer server(80); void setup() { 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 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 - 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 - 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"); } }

Étapes rapides

  • Copiez le code ci-dessus et collez-le dans l'IDE Arduino
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code vers Arduino
  • Observez le résultat sur le Moniteur Série, il apparaît comme suit :
COM6
Send
Arduino - Ethernet Tutorial Arduino - Web Server IP Address: 192.168.0.2
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Copiez l'adresse IP ci-dessus et collez-la dans la barre d'adresse de votre navigateur web. Vous verrez une page web simple que l'Arduino affiche.
Serveur Web Ethernet Arduino

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!