Ce didacticiel vous explique comment utiliser le module Ethernet W5500 pour connecter ESP32 à Internet ou à votre réseau LAN. En détail, nous apprendrons :
Comment connecter ESP32 au module Ethernet W5500
Comment programmer ESP32 pour faire une requête HTTP via Ethernet
Comment programmer ESP32 pour créer un serveur web simple via Ethernet
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 possède deux interfaces :
Interface RJ45 : pour se connecter au routeur/switch via un câble Ethernet
Interface SPI : pour se connecter à la carte ESP32, comprenant 10 broches :
Broche NC : laissez cette broche non connectée.
Broche INT : laissez cette broche non connectée.
Broche RST : broche de réinitialisation, connectez cette broche à la broche EN de l'ESP32.
Broche GND : connectez cette broche à la broche GND de l'ESP32.
Broche 5V : laissez cette broche non connectée.
Broche 3.3V : connectez cette broche à la broche 3.3V de l'ESP32.
Broche MISO : connectez cette broche à la broche SPI MISO de l'ESP32.
Broche MOSI : connectez cette broche à la broche SPI MOSI de l'ESP32.
Broche SCS : connectez cette broche à la broche SPI CS de l'ESP32.
Broche SCLK : connectez cette broche à la broche SPI SCK de l'ESP32.
image source: diyables.io
Schéma de câblage entre le module Ethernet ESP32 et W5500
Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, consultez les instructions dans le tutoriel suivant : Comment alimenter l'ESP32..
image source: diyables.io
Code ESP32 pour module Ethernet - Faire une requête HTTP via Ethernet
Le code suivant fonctionne comme un client web, effectuant des requêtes HTTP au serveur web à l'adresse http://example.com/.
/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 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/esp32/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 2byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xEF };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("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 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() {}
Effectuez le câblage entre le module Ethernet et l'ESP32 comme indiqué dans le schéma de câblage ci-dessus
Connectez l'ESP32 au PC via un câble USB
Connectez le module Ethernet à votre routeur/switch via un câble Ethernet
Ouvrez Arduino IDE sur votre PC.
Sélectionnez la bonne carte ESP32 (par exemple, ESP32 Dev Module) et le bon port COM.
Cliquez sur l'icône Libraries dans la barre de gauche de l'Arduino IDE.
Recherchez “Ethernet”, puis trouvez la bibliothèque Ethernet par Various
Cliquez sur le bouton Install pour installer la bibliothèque Ethernet.
Ouvrir le Port Série dans Arduino IDE
Copier le code ci-dessus et le coller dans Arduino IDE
Cliquer sur le bouton Upload dans Arduino IDE pour télécharger le code vers l'ESP32
Vérifier le résultat dans le Moniteur Série, cela ressemble à ce qui suit :
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
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
Ln 11, Col 1
ESP32 Dev Module on COM15
2
※ Note:
S'il y a un autre appareil sur le même réseau local avec la même adresse MAC, cela pourrait ne pas fonctionner.
Code ESP32 pour module Ethernet - Serveur Web
Le code suivant transforme l'ESP32 en un serveur web qui répond aux navigateurs web avec une page web simple.
/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 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/esp32/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 2byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xEF };EthernetServer server(80);voidsetup() {Serial.begin(9600);delay(1000);Serial.println("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 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("ESP32 - 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>ESP32 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"); }}
É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 sur l'ESP32
Consultez le résultat sur le Moniteur série, il ressemble à ceci :
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
ESP32 - Ethernet Tutorial
ESP32 - Web Server IP Address: 192.168.0.2
Ln 11, Col 1
ESP32 Dev Module on COM15
2
Copiez l'adresse IP ci-dessus et collez-la dans la barre d'adresse d'un navigateur web, vous verrez une page web simple servie par ESP32 comme suit :
Tutoriels connexes
※ NOS MESSAGES
N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !