Módulo Ethernet shield W5100 Arduino
Publicado por Victor Arrieta en
El módulo W5100 es un shield para el Arduino UNO o Leonardo, que te permitirá conectar tu aplicación con una red ethernet. El módulo incluye un sócalo para conector RJ45, lo cual te permitirá realizar la conexión por medio de un cable común a tu router o switch, está basado en el chip Wiznet W5100 que provee una pila de red IP capaz de soportar protocolos TCP y UDP.
Una de las mayores facilidades que te provee este módulo es que para utilizarlo con Arduino UNO o Leonardo, no tienes que realizar ninguna conexión particular, sólo debes montarlo encima de tu placa Arduino, conectarlo a la red y subir tu programa al microcontrolador, todo esto con la ventaja que el módulo permite que los pines de la placa Arduino pasen a través de él dejándolos disponibles para su uso encima. Sin embargo, algo muy importante a tener en cuenta es que el módulo se comunica con el microcontrolador por comunicación SPI por medio de los pines 10, 11, 12 y 13; por lo tanto esos pines no podrán ser utilizados para otros propósitos.
El módulo cuenta con los siguientes leds para indicación:
- ON: Indica que hay alimentación
- LINK: Indicador de enlace de red
- 100M: Conexión de 100 Mb/s
- RX: Indicación de recepción de datos
- TX: Indicación de emisión de datos
A continuación te mostramos un ejemplo sencillo de un proyecto utilizando este módulo para conectar tu proyecto Arduino a tu red ethernet. En esta aplicación se verifica el estado del digital 7 y el voltaje presente en el pin digital A0. Este proyecto está basado en el análogo de "el Profe Garcia".
Estema de conexión con Arduino UNO
Sólo monta el shield sobre tu placa!
Y conecta el cable utp con conector RJ45 desde tu router o switch.
Código Arduino:
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
IPAddress ip(192, 168, 0, 52); // Debe ser la dirección IP de tu red
EthernetServer server(80);
void setup() {
Ethernet.begin(mac, ip);
server.begin();
}
void loop() {
EthernetClient client = server.available();
if (client) {
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (c == '\n' && currentLineIsBlank) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println("Refresh: 5");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<HEAD>");
client.println("<TITLE>Ethernet Monitor</TITLE>");
client.println("</HEAD>");
client.println("<BODY>");
client.println("<hr />");
client.println("<H1>Ejemplo de uso W5100</H1>");
client.println("<br />");
client.println("<H2>Monitoreo de pin digital</H2>");
client.println("<br />");
client.println("");
client.println("<br />");
client.println("<br />");
int lecturaSensor = digitalRead(7);
float lecturanaloga = analogRead(A0);
client.print("Estado de Pin digital D7: ");
client.print((lecturaSensor)?"ALTO":"BAJO");
client.println("<br />");
client.println(" ");
client.println("<br />");
client.print("Voltaje en el Pin A0: ");
client.print(lecturanaloga*5/1023);
client.print(" V");
client.println("<br />");
client.println(" ");
client.println("<br />");
client.println("Ma's tutoriales en nuestro blog Arca electro'nica");
client.println("</html>");
break;
}
if (c == '\n') {
currentLineIsBlank = true;
}
else if (c != '\r') {
currentLineIsBlank = false;
}
}
}
delay(15); // Da tiempo al Servidor para que reciba los datos 15ms
client.stop(); // cierra la conexion
}
}
Una vez subido el código, pon en la barra de direcciones de tu navegador la siguiente dirección: 192.168.0.52, presiona "Enter" y verás en tu pantalla el estado de estos dos pines, lo cuales puedes conectar a GND, 3.3V o 5V de tu Arduino, para que compruebes su funcionamiento.
FIN DEL POST