Cómo configurar una IP estática en el ESP8266


Continuamos con las entradas dedicadas al ESP8266. En esta ocasión veremos cómo configurar una IP estática en nuestra conexión.

En las dos entradas anteriores hemos visto cómo conectarnos con una red WiFI existente en modo STA y cómo generar nuestra propia red WiFi con modo AP.

Ahora que tenemos nuestro ESP8266 conectado a la red WiFi, la siguiente necesidad va a ser conectarnos a nuestro dispositivo, para lo cuál vamos a tener que poder encontrarlo en dentro de la red. O, dicho de otra forma, necesitamos saber su dirección IP local.

Hasta ahora, habíamos mostrado por puerto serie la dirección IP nada más conectar. Pero no resulta muy práctico tener que tener un ordenador o una pantalla al dispositivo para ver que IP nos ha asignado el DHCP del router ¿verdad?.

Anuncio:

Tenemos varias opciones disponibles para encontrar nuestro dispositivo. Una es usar un escáner de dispositivos, otra es usar el mDNS pero, la más segura y robusta es configurar una IP estática en el ESP8266.

Afortunadamente, es muy sencillo configurar una IP estática en el ESP2866 con la función 'config' de ESP8266WiFi.

Remarcar que el orden de los parámetros es diferente a la librería WiFi de Arduino (las librerías ESP8266WiFi y Arduino WiFI son parecidas, pero no idénticas). Tenedlo en cuenta si buscáis tutoriales en Internet, porque a veces las lían.

Esta función debe ser llamada inmediatamente después de WiFi.begin(), que inicia la conexión con el DHCP activado. Con WiFi.config() podemos configurar la IP, gateway, subnet y, opcionalmente las dns.

Ejemplo en modo STA

Vamos a ver un ejemplo de cómo configurar una IP estática en modo STA, es decir, conectándonos a una WiFi existente. El siguiente ejemplo se conectaría a la red, y fijaría la IP a 192.168.1.200.

Hay que tener en cuenta que el router tiene que estar configurado para asignarnos la IP deseada. Típicamente, esto significa que debe estar fuera del rango de IP designadas para DHCP.

Ejemplo en modo AP

En modo AP la configuración de la IP estática es menos crítica que en modo STA. A fin de cuentas, estamos generando nuestra propia WiFi y nos ponemos la IP que queremos.

Aun así, la función WiFi.softAPConfig() permite cambiar los parámetros dentro de la red WiFi generada. El siguiente ejemplo muestra la configuración, donde también cambiamos la dirección del ESP8266 a 192.168.1.200.

Ejemplo resumido

Como hicimos en la entrada anterior, si dividimos el código en distintos ficheros, y creamos un fichero de 'config.h'

Y un fichero adicional que llamaremos 'ESP8266_Utils.hpp' que contenga las funciones de conexión.

El código queda resumido en este sencillo fragmento

¡Así de sencillo! En la próxima entrada veremos otra forma de encontrar nuestro dispositivo con mDNS. ¡Hasta pronto! 

Descarga el código

Todo el código de esta entrada está disponible para su descarga en GitHub.

Si te ha gustado esta entrada y quieres leer más sobre ESP8266 puedes consultar la sección
tutoriales de ESP8266

Anuncio:

Previous Cómo emular un teclado o un ratón con Arduino
Next Cómo gestionar procesos en Raspberry Pi
1000
2 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
newest oldest
jesus

joder!! menuda enciclopedia estas hecho, muchas gracias por el articulo

fran

Hola,

En primer lugar, muchas gracias por todos los artículos que escribes, son muy muy útiles.
Quería preguntarte que pasaría si intentas establecer una dirección IP que ya está asociada a otro miembro de la red LAN.

Muchas gracias y un saludo.