Como acceder a Arduino desde Internet Deja un comentario

Un problema de conceptos es el uso de IP privada e IP publica para acceder a Arduino desde Internet. Cuando trabajamos con una shield wifi o ethernet con nuestro Arduino, y nuestro proyecto necesita de conectividad desde Internet, es muy típico que aparezcan problemas de conectividad. En la mayoría de los casos los problemas se deben a una falta de entendimiento del funcionamiento de las redes. En este artículo, se abordará como acceder a nuestro Arduinos desde Internet de manera correcta.

Ya vimos en un artículo anterior como usar la shield ethernet y acceder a Arduino, pero solo lo hicimos desde la red local. El problema o la duda que surgió a muchos usuarios es como acceder a Arduino desde Internet. Para solucionar esta duda, debemos tener claro el concepto de IP publica e IP privada.

Material necesario

Artículos recomendados

Si hemos leído los artículos recomendados, ya damos por conocido el funcionamiento básico de la shield ethernet. El código será el mismo que se empleó en el artículo Arduino Ethernet Shield, solo puntualizaremos como acceder a Arduino desde internet.

Código

Una vez tengamos cargado el código anterior en nuestro Arduino, conectado este a la red y verificado que localmente funciona, tendremos que realizar un mapeo de puertos. El mapeo de puertos consiste en indicar a un router que hacer con una petición cuando llega a este por un puerto especifico desde Internet. En nuestro caso, debemos indicar que las peticiones que vengan hacia el puerto 80 (una petición web) desde Internet, se envíen a nuestro servidor web local, en este caso nuestro Arduino. Veamos cómo hacerlo.

acceder a arduino desde internet 01
Debemos entrar en la configuración de nuestro router, normalmente poniendo en el navegador la dirección 192.168.1.1 tendremos acceso.

acceder a arduino desde internet 02
Pondremos los datos de acceso al router que por defectos suelen ser: Usuario: admin, Contraseña: admin. Busque el manual de su router para verificar esto en el caso contrario.

acceder a arduino desde internet 03
Buscaremos la configuración de mapeo de puertos.

acceder a arduino desde internet 04
Añadiremos un mapeo de puerto donde los datos importantes son: la dirección IP y puerto LAN (local) a la que enviaremos las peticiones procedentes de Internet por un puerto público. La dirección IP y puerto LAN, en este caso, será la asignada a nuestro Arduino desde el sketch. En el puerto público pondremos el 80, que es el empleado para peticiones web. Podremos poner otro como veremos mas adelante.

acceder a arduino desde internet 05
Una vez tengamos mapeado el puerto público, es necesario saber cuál es nuestra IP pública, que nos dará acceso a nuestro router desde Internet.

acceder a arduino desde internet 06
Si buscamos “cuál es mi IP” en algún buscador nos mostrara una serie de páginas webs que nos facilitan esta información, una de ellas es www.cualesmiip.com. Esta IP que aparece http://80.102.XXX.XXX, es la IP pública de nuestra red, y es la que tenemos que usar para acceder desde Internet a nuestro router.

Haremos un alto para explicar lo que hemos hecho hasta el momento. Le hemos “dicho” a nuestro router que todas las peticiones que vienen del exterior (Internet) por el puerto 80 las redirija localmente a la IP de nuestro Arduino al puerto 80. Ahora, si escribimos la dirección IP pública en cualquier navegador junto con el número de puerto público http://80.102.XXX.XXX:80 y desde un equipo que este fuera de la red podremos tener acceso a nuestro Arduino.

acceder a arduino desde internet 07
Como vemos, obtenemos el mismo resultado que si la petición se hace desde la red donde se encuentra Arduino, tenemos acceso a nuestro Arduino desde Internet.

Esta es la forma correcta de acceder a Arduino o cualquier otro dispositivo desde Internet, con la IP y puerto público http://XXX.XXX.XXX.XXX:XX.

A lo largo del tutorial se ha hablado de puertos, este concepto no es nada más que la manera de identificar los diferentes servicios que pueden ofrecerse en una misma dirección. Un servidor que posee un servicio FTP y web con una misma direccion IP, identifica cada servicio mediante el uso de puertos, por tanto, las peticiones que le llegan con la dirección http://XXX.XXX.XXX.XXX:80 serán peticiones de servicio web y las que llegan http://XXX.XXX.XXX.XXX:21 serán las peticiones de servicio FTP. Los números de puertos están definidos, hay puertos reservados y específicos para determinados servicios y exiten otros para uso libre. Como el puerto 80 está reservado para el servicio web, este se puede omitir en la URL http://XXX.XXX.XXX.XXX sería lo mismo que http://XXX.XXX.XXX.XXX:80

Para finalizar este artículo, vamos a mapear otro puerto público, por ejemplo, el 8080 que es de uso libre.

acceder a arduino desde internet 08
Mapeamos el puerto público 8080 con el puerto LAN 80. En este router la configuración de puertos se hace en la misma línea para una misma IP LAN mediante la separación con comas.

acceder a arduino desde internet 09
Usando la URL http://XXX.XXX.XXX.XXX:8080 accederemos a nuestro servidor web Arduino desde Internet.

Como dato, si usamos la dirección IP pública estando en la red local el resultado será el mismo que si estamos en Internet.

En este artículo sobre el uso de IP pública e IP privada para tener acceso a Arduino desde Internet, se ha incluido el concepto de puertos. La unión de estos conceptos con los aprendidos en artículos anteriores aumenta nuestra capacidad para el desarrollo de proyectos con Arduino que necesitan conectividad web. Si bien, el problema para acceder a nuestro Arduino desde Internet no se ha resuelto completamente. Algunos usuarios sabrán que nuestra IP pública normalmente es dinámica, esto quiere decir que la IP pública cambia cada vez que el router se reinicia. Esto supone un problema, no conoceremos cual el la IP para acceder a nuestro Arduino si esta ha cambiado y no nos encontramos en la red. Existen métodos para conocer en todo momento la IP pública que serán explicaremos en próximos tutoriales.

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Enviar Whatsapp
Hola 👋
¿En qué podemos ayudarte?