¿Quieres asegurarte de que tu ESP32 siempre tenga la misma dirección IP? ¡No te preocupes! En este artículo te enseñaremos cómo configurar una dirección IP estática o fija en tu ESP32 de manera sencilla y rápida. Sigue nuestros pasos y mantén tu dispositivo conectado a la red de forma estable.
Si alguna vez ha intentado ejecutar un servidor web en un ESP32, probablemente haya notado algo molesto: cada vez que reinicia su ESP32, la dirección IP puede cambiar dependiendo de lo que el enrutador esté asignando actualmente. Esto significa que siempre debe consultar el monitor serie para averiguar esta nueva dirección IP. Eso es bastante tedioso, ¿no?
Aquí es donde entran en juego las direcciones IP estáticas. Al configurar una dirección IP estática, puede acceder al servidor web con la misma dirección IP incluso después de reiniciar el ESP32. Esto también es útil para evitar confusiones cuando hay varios ESP32 conectados a su red.
Afortunadamente, una vez que sepas cómo hacerlo, configurar una dirección IP estática es un proceso bastante sencillo y rápido. Le mostraremos paso a paso cómo configurar una dirección IP estática en su ESP32. ¡Empecemos!
Paso 1: configurar el IDE de Arduino
Usaremos el IDE de Arduino para programar el ESP32. Por lo tanto, asegúrese de tener instalado el complemento ESP32 antes de continuar:
Paso 2: conecte el ESP32 a su computadora
Utilice un cable micro USB para conectar su placa ESP32 a su computadora.
Paso 3: obtenga la configuración de red actual
Antes de configurar una IP estática, debe verificar la configuración de red actual (IP, puerta de enlace, subred y DNS) asignada por su enrutador. Esta información puede ayudar a evitar conflictos de propiedad intelectual. Para conocer la dirección IP actual y otras configuraciones de red del ESP32, debe cargar el siguiente boceto en su ESP32.
Antes de eso, es necesario hacer un cambio importante. Actualice las siguientes dos variables con su SSID y contraseña de WiFi reales.
const char* ssid = "YourNetworkName"; // Enter SSID here
const char* password = "YourPassword"; //Enter Password here
Después de realizar estos cambios, puede cargar el código.
#include <WiFi.h>
// Replace with your network credentials
const char* ssid = "YourNetworkName"; // Enter SSID here
const char* password = "YourPassword"; //Enter Password here
void setup() {
Serial.begin(115200);
Serial.print("Connecting to ");
Serial.println(ssid);
// Connect to Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("");
Serial.println("Connected..!");
Serial.print("Current ESP32 IP: ");
Serial.println(WiFi.localIP());
Serial.print("Gateway (router) IP: ");
Serial.println(WiFi.gatewayIP());
Serial.print("Subnet Mask: " );
Serial.println(WiFi.subnetMask());
Serial.print("Primary DNS: ");
Serial.println(WiFi.dnsIP(0));
Serial.print("Secondary DNS: ");
Serial.println(WiFi.dnsIP(1));
}
void loop() {
}
Después de cargar el código, abra el monitor serie y establezca la velocidad en baudios en 115200. Luego presione el botón EN en el ESP32. Es posible que tarde unos minutos en conectarse a su red. La configuración de red actual del ESP32 se mostrará en el monitor serie. Escríbalos.
Paso 4: establezca una dirección IP estática
Después de obtener la configuración de red actual, ahora puede configurar una dirección IP estática.
Modifique el siguiente esquema para incluir la configuración de IP estática. Debe especificar la dirección IP estática, la puerta de enlace, la máscara de subred y la configuración de DNS (opcional).
IPAddress staticIP(192, 168, 1, 100); // ESP32 static IP
IPAddress gateway(192, 168, 1, 1); // IP Address of your network gateway (router)
IPAddress subnet(255, 255, 255, 0); // Subnet mask
IPAddress primaryDNS(192, 168, 1, 1); // Primary DNS (optional)
IPAddress secondaryDNS(0, 0, 0, 0); // Secondary DNS (optional)
Según la configuración de red actual, elija una dirección IP estática adecuada para su ESP32. Esta dirección debe estar en la misma subred que su red actual, pero fuera del rango que normalmente asigna su enrutador (para evitar conflictos de IP).
Una vez que hayas modificado el boceto, súbelo a ESP32.
#include <WiFi.h>
// Replace with your network credentials
const char* ssid = "Your_SSID";
const char* password = "Your_PASSWORD";
// Static IP configuration
IPAddress staticIP(192, 168, 1, 100); // ESP32 static IP
IPAddress gateway(192, 168, 1, 1); // IP Address of your network gateway (router)
IPAddress subnet(255, 255, 255, 0); // Subnet mask
IPAddress primaryDNS(192, 168, 1, 1); // Primary DNS (optional)
IPAddress secondaryDNS(0, 0, 0, 0); // Secondary DNS (optional)
void setup() {
Serial.begin(115200);
// Connect to Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
// Configuring static IP
if(!WiFi.config(staticIP, gateway, subnet, primaryDNS, secondaryDNS)) {
Serial.println("Failed to configure Static IP");
} else {
Serial.println("Static IP configured!");
}
Serial.print("ESP32 IP Address: ");
Serial.println(WiFi.localIP()); // Print the ESP32 IP address to Serial Monitor
}
void loop() {
// Nothing to do here
}
Paso 6 – Prueba
Después de cargar el código en su ESP32, confirme con el monitor serie que el ESP32 ahora está usando la dirección IP estática que configuró.
IP estática frente a mDNS
Aunque configurar una IP estática para su ESP32 es efectivo, hay otro enfoque que debe considerarse: mDNS (DNS de multidifusión). Este método ofrece importantes ventajas sobre una IP estática.
mDNS le permite acceder al servidor web que se ejecuta en su ESP32 con un nombre de host fácil de usar como «esp32.local» en lugar de usar una dirección IP. Incluso si la dirección IP de su ESP32 cambia, mDNS resolverá automáticamente la nueva dirección IP con el mismo nombre de host. Esto significa que puede continuar usando el mismo nombre de host sin tener que preocuparse por rastrear los cambios de dirección IP.
Para obtener más información sobre la implementación de mDNS en su ESP32, consulte nuestra guía detallada aquí:.
Explicación detallada del código
El boceto comienza con la inclusión del WiFi.h
Biblioteca. Esta biblioteca proporciona las funciones necesarias para conectar el ESP32 a una red Wi-Fi y establecer su configuración IP.
#include <WiFi.h>
A continuación, las constantes para el SSID de WLAN (ssid
) y contraseña (password
) Están definidos. Deberá reemplazarlo con el nombre y la contraseña de su red WiFi real.
const char* ssid = "Your_SSID";
const char* password = "Your_PASSWORD";
Entonces, IPAddress
Se crean objetos para la IP estática, la puerta de enlace, la máscara de subred y, opcionalmente, los servidores DNS primario y secundario. Estos objetos almacenan las direcciones respectivas y luego se usan para configurar los ajustes de red del ESP32.
// Static IP configuration
IPAddress staticIP(192, 168, 1, 100); // ESP32 static IP
IPAddress gateway(192, 168, 1, 1); // IP Address of your network gateway (router)
IPAddress subnet(255, 255, 255, 0); // Subnet mask
IPAddress primaryDNS(192, 168, 1, 1); // Primary DNS (optional)
IPAddress secondaryDNS(0, 0, 0, 0); // Secondary DNS (optional)
La comunicación serie con la computadora se inicia dentro de la función setup().
Serial.begin(115200);
El ESP32 intenta conectarse a la red WiFi a través de WiFi.begin(ssid, password)
. Un bucle while garantiza que el ESP32 intente establecer una conexión hasta que lo consiga.
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Una vez conectado a WiFi, el ESP32 se configura para utilizar la dirección IP estática, la puerta de enlace, la máscara de subred y los servidores DNS previamente definidos. WiFi.config()
Función. Si hay un problema al configurar la IP estática, aparecerá el mensaje «Error al configurar la IP estática» en el monitor serie.
if(!WiFi.config(staticIP, gateway, subnet, primaryDNS, secondaryDNS)) {
Serial.println("Failed to configure Static IP");
} else {
Serial.println("Static IP configured!");
}
Después de establecer la configuración IP, la dirección IP actual del ESP32 se mostrará en el monitor serie WiFi.localIP()
Si todo va según lo planeado, debería ver aquí la dirección IP estática configurada.
Serial.print("ESP32 IP Address: ");
Serial.println(WiFi.localIP());
La IP se establece en la función setup() y como no hay nada más que hacer, la función loop() permanece vacía.
void loop() {
}
Cómo configurar una dirección IP estática o fija en tu ESP32
Si alguna vez has intentado ejecutar un servidor web en un ESP32, es probable que hayas notado algo molesto: cada vez que reinicias tu ESP32, la dirección IP puede cambiar, según lo que el router decida asignar en ese momento. Esto significa que siempre debes verificar el monitor serial para encontrar esta nueva dirección IP. ¡Es bastante molesto, verdad?
Es aquí donde entran en juego las direcciones IP estáticas. Al configurar una dirección IP estática, podrás acceder al servidor web utilizando la misma dirección IP, incluso después de reiniciar el ESP32. Esto también es útil para evitar confusiones cuando tienes múltiples ESP32 conectados a tu red.
Afortunadamente, una vez que sabes cómo hacerlo, es un proceso bastante simple y rápido configurar una dirección IP estática. Te guiaremos paso a paso sobre cómo configurar una dirección IP estática en tu ESP32. ¡Vamos a sumergirnos!
Paso 1 – Configurar el Arduino IDE
- Instalar la placa ESP32 en el entorno de Arduino.
- Utilizar un cable micro-USB para conectar tu placa ESP32 a tu computadora.
- Obtener la configuración de red actual para evitar conflictos de IP.
Después de obtener la configuración de red actual, puedes configurar una dirección IP estática. Modifica el siguiente sketch para incluir la configuración IP estática y súbela al ESP32. Luego, realiza pruebas para confirmar que la dirección IP estática se ha configurado correctamente.
Diferencia entre IP estática y mDNS
Si bien configurar una dirección IP estática para tu ESP32 es efectivo, hay otro enfoque que vale la pena considerar: mDNS (Multicast DNS). Este método ofrece ventajas significativas sobre la dirección IP estática. mDNS te permite acceder al servidor web que se ejecuta en tu ESP32 utilizando un nombre de host amigable para el usuario, como “esp32.local”, en lugar de lidiar con una dirección IP. Además, incluso si la dirección IP de tu ESP32 cambia, mDNS resuelve automáticamente la nueva dirección IP al mismo nombre de host. Esto significa que puedes seguir utilizando el mismo nombre de host sin preocuparte por el seguimiento de los cambios de dirección IP.
Para aprender más sobre cómo implementar mDNS en tu ESP32, echa un vistazo a nuestra guía detallada aquí.
Al combinar la configuración de la dirección IP estática y el uso de mDNS, puedes tener un control completo sobre la conectividad de tu ESP32 en la red.
Este artículo me ayudó un montón a entender cómo configurar una dirección IP fija en mi ESP32. ¡Gracias por la ayuda!
Qué bueno saber que no soy el único que batalla con esto. Super útil, ¡gracias por la info!