Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.
Acerca del módulo Ethernet W5500
El módulo Ethernet W5500 tiene dos interfaces:
Interfaz RJ45: para conectar al router/switch mediante cable Ethernet
Interfaz SPI: para conectar a la placa ESP32, incluyendo 10 pines:
Pin NC: dejar este pin sin conexión.
Pin INT: dejar este pin sin conexión.
Pin RST: pin de reset, conectar este pin al pin EN del ESP32.
Pin GND: conectar este pin al pin GND del ESP32.
Pin 5V: dejar este pin sin conexión.
Pin 3.3V: conectar este pin al pin 3.3V del ESP32.
Pin MISO: conectar este pin al pin MISO SPI del ESP32.
Pin MOSI: conectar este pin al pin MOSI SPI del ESP32.
Pin SCS: conectar este pin al pin CS SPI del ESP32.
Pin SCLK: conectar este pin al pin SCK SPI del ESP32.
image source: diyables.io
Diagrama de cableado entre ESP32 y el módulo Ethernet W5500
This image is created using Fritzing. Click to enlarge image
Si no sabe c\u00f3mo alimentar ESP32 y otros componentes, encuentre instrucciones en el siguiente tutorial: C\u00f3mo alimentar ESP32.
image source: diyables.io
Código ESP32 para el módulo Ethernet - Realizar una solicitud HTTP a través de Ethernet
El código siguiente funciona como un cliente web, realizando solicitudes HTTP al servidor web en http://example.com/.
/* * Este código de ESP32 fue desarrollado por es.newbiely.com * Este código de ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/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() {}
Realiza el cableado entre el módulo Ethernet y ESP32 tal como el diagrama de cableado anterior.
Conecta el ESP32 al PC mediante un cable USB.
Conecta el módulo Ethernet a tu router/switch mediante un cable Ethernet.
Abre Arduino IDE en tu PC.
Selecciona la placa ESP32 correcta (p. ej. ESP32 Dev Module) y el puerto COM.
Haz clic en el icono Bibliotecas en la barra izquierda del IDE de Arduino.
Busca “Ethernet”, luego encuentra la biblioteca Ethernet de Various.
Haz clic en el botón Instalar para instalar la biblioteca Ethernet.
Abre Serial en el IDE de Arduino
Copia el código anterior y pégalo en el IDE de Arduino
Haz clic en el botón Subir en el IDE de Arduino para subir el código al ESP32
Consulta el resultado en el Monitor Serial; se muestra a continuación
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
※ Nota:
Si hay otro dispositivo en la misma red local con la misma dirección MAC, podría no funcionar.
Código ESP32 para el módulo Ethernet - Servidor web
El siguiente código transforma el ESP32 en un servidor web que responde a los navegadores web con una página web simple.
/* * Este código de ESP32 fue desarrollado por es.newbiely.com * Este código de ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/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"); }}
Pasos R\u00e1pidos
Copia el código anterior y pégalo en el IDE de Arduino.
Haz clic en el botón Subir en el IDE de Arduino para cargar el código en ESP32.
Consulta el resultado en el Monitor Serial; se muestra a continuación.
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
Copia la dirección IP anterior mencionada arriba y pégala en la barra de direcciones de un navegador web; verás una página simple servida por ESP32 como se muestra a continuación:
Tutoriales Relacionados
※ NUESTROS MENSAJES
No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!