Panama Hitek Logo
Panama Hitek Logo

Control de un LED desde un servidor WEB con el Ethernet Shield W5100

El Ethernet Shield W5100 es un dispositivo que nos permite conectar nuestro Arduino a internet. Esto se logra a través de un puerto Ethernet de un router WiFi. Con este dispositivo, nuestro Arduino puede funcionar como un servidor web.

El servidor web puede ser accesible solamente desde la red WiFi en la que está conectado el router (llamado servidor web local) o puede ser accesible desde cualquier red externa (llamado servidor web global). De esta manera, podemos interactuar con él, tanto enviando como recibiendo datos.

El Ethernet Shield W5100 está basado en el chip Ethernet Wiznet W5100, que es el que permite esta conexión a internet. Este chip soporta los protocolos de transporte de datos TCP y UDP, y permite hasta cuatro conexiones simultáneas de sockets. Esto hace que el Ethernet Shield W5100 sea muy versátil como servidor web.

Para poder utilizar el Ethernet Shield junto con nuestro Arduino, es necesario trabajar con la librería que viene incluida por defecto en cualquiera de los IDE existentes en la página web del fabricante. De esta manera, podemos controlar el Ethernet Shield y utilizarlo para conectar nuestro Arduino a internet.

Ethernet Shield W5100

El Ethernet Shield es un dispositivo que se conecta a nuestro Arduino para permitirle acceder a internet. Este shield cuenta con conectores hembra que permiten conectar otros shields apilados sobre nuestro Arduino. Sin embargo, es importante tener en cuenta que los pines digitales 10, 11, 12, y 13 no pueden ser utilizados como entradas/salidas genéricas, ya que son utilizados por la comunicación SPI entre el Arduino y el Ethernet Shield W5100.

El Ethernet Shield también cuenta con un conector Ethernet estándar RJ45 para conectarse a un puerto Ethernet de un router o a una tarjeta Ethernet de un PC. Además, incluye un jumper soldado marcado como «INT» que puede ser conectado para permitir a nuestro Arduino recibir notificaciones de eventos por interrupción desde el W5100.

Otra característica del Ethernet Shield es su slot SD, que permite guardar información en una tarjeta micro SD. Por último, también tiene un botón de reset que es capaz de reiniciar todo el conjunto, incluido nuestro Arduino.

El Ethernet Shield cuenta con una serie de LEDS que informan al usuario sobre el estado y funcionamiento del sistema. Estos LEDS incluyen:

    • PWR: que indica que el Arduino y el Ethernet Shield están recibiendo energía
    • LINK: que indica la presencia de una conexión de red y parpadea cuando el Ethernet Shield envía o recibe datos
    • 100M: que indica la presencia de una conexión de red de 100 Mb/s
    • FULLD: que indica que la conexión de red es full dúplex
    • COLL: que parpadea cuando se detectan colisiones en la red
    • RX: que parpadea cuando el Ethernet Shield recibe datos
    • TX: que parpadea cuando el Ethernet Shield envía datos

Para configurar el servidor web de manera correcta, es necesario asignar una dirección MAC única e global a cada dispositivo conectado a la red local. Esta dirección MAC puede ser obtenida de manera programática, y no es necesario modificar la dirección MAC incluida por defecto en el programa.Además, para asignar una dirección MAC al Ethernet Shield, es necesario obtener unas cuantas direcciones más desde un PC con Windows. Esto se puede hacer accediendo a Inicio -> Ejecutar -> cmd -> ipconfig.

Al hacer esto, se obtendrá un resultado en pantalla.

Configuración de la direcciones del adaptador de LAN inalámbrico

De los datos obtenidos a través de Inicio -> Ejecutar -> cmd -> ipconfig, nos interesan los datos resaltados en amarillo. Para configurar el Ethernet Shield, es necesario abrir el programa y modificar las siguientes líneas de código:

  • IPAddress ip (192,168,1,14): Es necesario asignar una dirección IP al Ethernet Shield para que sea reconocido dentro de la red local. Esta dirección IP debe ser del estilo 192.168.XX, donde XX es un número comprendido entre 1 y 254. La dirección IP asignada al Ethernet Shield debe estar disponible en la red local. En este ejemplo, se ha utilizado la dirección IP 14.
  • IPAddress gateway (192, 168, 1, 1): Debe coincidir exactamente con la dirección de la puerta de enlace predeterminada de la LAN inalámbrica.
  • IPAddress subnet (255, 255, 255, 0): Debe coincidir exactamente con la dirección de la máscara de subred de la LAN inalámbrica.

Estas modificaciones permiten configurar correctamente el Ethernet Shield y asegurar que sea reconocido en la red local.

Para comprobar si la dirección IP que le asignamos al Ethernet Shield está libre, tenemos que hacer un ping desde el “cmd” de Windows a esa dirección, en mi caso a la dirección 192.168.1.14, y si nos devuelve “Host de destino inaccesible” significa que podemos utilizar esa dirección para la IP del Ethernet Shield puesto que está libre.

Ping a la dirección IP 192.168.1.14 desde el “cmd” de Windows

Para asegurarse de que la dirección IP asignada al Ethernet Shield no sea ocupada por otro dispositivo en el futuro, es necesario cerciorarse de que la dirección IP no pertenece a las direcciones que tienen DHCP (un protocolo de red que permite a los clientes de una red IP obtener sus parámetros de configuración automáticamente). Por norma general, el DHCP se aplica a la mitad de las direcciones posibles de la red, es decir, de la dirección 192.168.1.128 a la 192.168.1.254. Por lo tanto, si se utilizan direcciones IP inferiores a 128, no debería haber problemas. Sin embargo, es recomendable utilizar direcciones IP cercanas a la dirección de la puerta de enlace predeterminada para evitar problemas.

Para asegurarse al 100% de que la dirección IP no cambiará, es posible acceder al router escribiendo en el navegador la dirección de la puerta de enlace predeterminada. Por ejemplo, en este caso es http://192.168.1.1. Sin embargo, se solicitará un usuario y una contraseña para acceder al router, que deberían haber sido proporcionados por el proveedor de internet (ISP) durante la instalación.

Una vez dentro del menú del router, es necesario buscar la configuración DHCP, comprobar los rangos de direcciones a los que afecta el DHCP y vincular las direcciones MAC e IP del Ethernet Shield, para que siempre que se conecte al router, se le asigne la misma dirección IP. Cada router es diferente, por lo que si no se encuentra la opción, se recomienda buscar información sobre el modelo de router en línea.

Enlace de las direcciones MAC e IP del Ethernet Shield

Para acceder al servidor web desde una red externa, es necesario conocer la IP pública del router. La forma de acceder a ella es a través de un puerto abierto previamente para la comunicación HTTP. En este caso, el puerto 80 es el utilizado por defecto.

Para abrir el puerto 80, es necesario acceder al router y buscar la opción «Port Forwarding». Aquí, se debe enlazar el puerto (con protocolos TCP y UDP) a la dirección IP del Ethernet Shield. En este ejemplo, la dirección IP es 192.168.1.14. Cada router es diferente, por lo que es importante investigar cómo abrir los puertos en el modelo específico.

Puerto 80 (HTTP) abierto y enlazado a la IP 192.168.1.14 en router modelo ZXHN H218N

Para utilizar el Ethernet Shield, primero se debe colocar sobre la placa Arduino y cargar el programa (sketch) a través del cable USB desde el PC. Luego, se debe desconectar el sistema del PC y alimentarlo con una fuente externa, como una batería de Litio-ion de 12V/3000mAh. Además, se debe conectar el Ethernet Shield a un router WIFI mediante un cable Ethernet estándar (CAT5 o CAT6 con conectores RJ45).

Es recomendable reiniciar tanto el Arduino como el Ethernet Shield mediante el botón de reset una vez que todo esté instalado. Para conocer la IP pública y verificar si el puerto 80 (HTTP) está abierto, se puede seguir un enlace específico. Sin embargo, es importante tener en cuenta que, a menos que se tenga una IP fija, la IP pública puede cambiar cada vez que se reinicia el router o incluso en algunos casos, la compañía la cambia periódicamente (IP dinámica).

El Ethernet Shield nos permite conectar nuestro Arduino a Internet y controlar un LED o cualquier otro elemento electrónico desde cualquier lugar, ya sea desde una red local o externa. Para hacer esto, creamos un servidor web en el Ethernet Shield, que proporcionará el código HTML para ser visualizado en un navegador y permitirnos interactuar con él. Es necesario tener conocimientos básicos de HTML para personalizar la página web.

Un servidor es un dispositivo remoto que provee información a los dispositivos que se conecten a él. En la web, un servidor es un dispositivo que usa el protocolo HTTP para enviar páginas web al dispositivo de un usuario cuando éste las solicita. Con el Ethernet Shield, creamos un servidor web que puede ser accedido desde cualquier dispositivo conectado a Internet.

Página WEB vista en el navegador del PC

Para acceder al “Servidor WEB” desde la red local (red WIFI donde tenemos conectamos el Ethernet Shield), tenemos que acceder a la siguiente dirección WEB desde el navegador del PC por ejemplo, que coincide con la dirección IP que hemos asignado en un principio al Ethernet Shield.

http://192.168.1.14

Para acceder al “Servidor WEB” desde una red externa (red 4G de un Smartphone u otra red WIFI diferente por ejemplo) tenemos que acceder a la siguiente dirección WEB desde el navegador del Smartphone (ojo siempre que estemos conectados a la red 4G y no a la WIFI), que coincide con la dirección IP pública que tiene asignada nuestro router, seguida del puerto HTTP (80), separados por dos puntos.

http://mi_IP_pública:80

Lista de Materiales

    • Arduino UNO Rev.3
    • Cable USB tipo A-B
    • Ethernet Shield W5100
    • Cable Ethernet standard (CAT5 o CAT6 con conectores RJ45)
    • LED 5mm (de cualquier color)
    • Resistencia de 220Ω
    • Batería de Litio-ion de 12V/3000mAh (DC 12300)
    • Protoboard
    • Cables de conexión
Código del programa

Descarga del Programa

Video

Conclusiones

En resumen, este post describe cómo controlar un LED a través de Internet utilizando un Ethernet Shield y una placa Arduino. Se explica cómo adaptar el Ethernet Shield a la placa Arduino y cargar el programa necesario. También se describen los pasos necesarios para acceder al servidor WEB desde una red local o externa, como la asignación de una dirección IP y la apertura de puertos. En general, se trata de una guía completa para crear un servidor WEB y controlar un dispositivo electrónico a través de Internet.

Gracias por leer este post. Esperamos que haya sido de ayuda para entender cómo controlar un LED a través de internet mediante un servidor web y el Ethernet Shield. Si tienes alguna duda o comentario, por favor compártelo con nosotros. Estaremos encantados de ayudarte y escuchar tus opiniones.

Posts relacionados

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí

Post relacionados