¿Quieres aprender a configurar mDNS en tu ESP32 de forma sencilla y rápida? ¡Estás en el lugar indicado! En este artículo te explicaremos paso a paso cómo hacerlo para que puedas sacar el máximo provecho a tu dispositivo. ¡Sigue leyendo para descubrir cómo!
Si tiene un único ESP32 en su red, puede conectarse a él usando su dirección IP (por ejemplo, 192.168.1.128). Sin embargo, imagínese si tuviera varios ESP32 repartidos por su casa. De repente tienes que recordar varias direcciones IP. Esto lleva muchísimo tiempo y no es divertido. Dar mDNS.
mDNS le permite acceder al servidor web que se ejecuta en su ESP32 usando un nombre de host fácil de usar como «esp32.local» en lugar de usar una dirección IP. Lo mejor de todo es que incluso si la dirección IP de su ESP32 cambia, mDNS resuelve 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.
Bastante sorprendente, ¿verdad? En este tutorial aprenderás paso a paso cómo configurar mDNS en un ESP32. Pero primero, hablemos de qué es mDNS.
¿Qué es mDNS?
Hace treinta años, cuando Internet estaba en su infancia, era necesario conocer la dirección IP de un sitio web si quería visitarlo. Porque las computadoras pueden y solo pueden comunicarse mediante números.
Considere una dirección IP como 127.33.54.200: es larga, difícil de recordar y ciertamente no es fácil de usar. Necesitábamos una forma de traducir estas direcciones IP legibles por máquina a algo más comprensible.
A principios de los años 1980, Paul Mockapetris introdujo un sistema revolucionario que asignaba direcciones IP a nombres de dominio más memorables, y el Sistema de nombres de dominio (DNS) nació. Este sistema sigue siendo la base de la Internet actual.
Cuando escribe un nombre de dominio como google.com en su navegador, se pregunta a los servidores de nombres si tienen los registros DNS para ese dominio. Un registro DNS es simplemente un archivo que dice «este dominio» está asociado con «esta dirección IP», y un servidor de nombres es un servidor especializado que almacena dichos registros DNS. Por ejemplo, el nombre de dominio google.com podría estar asociado con una dirección IP como 142.250.189.174.
El sistema de nombres de dominio es uno de los fundamentos del funcionamiento de Internet. Sin él no podríamos navegar por Internet sin problemas.
Pero ¿qué pasa con una red doméstica local? En un entorno de este tipo donde los dispositivos se encienden y apagan con frecuencia, se unen y salen de la red y, a menudo, tienen direcciones IP dinámicas, este sistema se vuelve poco práctico porque implementar un servidor dedicado solo para resolver nombres de host en direcciones IP no es una opción, sino una solución práctica. hay una manera mas facil? Sí, de hecho, su nombre es DNS de multidifusiónmDNS abreviado.
mDNS es un protocolo descentralizado de igual a igual diseñado específicamente para redes pequeñas. Permite que los dispositivos descubran las direcciones IP de los otros dispositivos. Funciona permitiendo que cualquier dispositivo transmita su nombre y dirección IP a cualquier otro dispositivo en la red. Por supuesto, este enfoque no sería bueno para Internet en general, pero las redes locales son lo suficientemente pequeñas como para que la sobrecarga no sea un problema.
Características y beneficios clave de mDNS:
- Nombres de host fáciles de usar: Se puede acceder a los dispositivos de la red utilizando nombres de host fáciles de recordar, como “esp32.local”, en lugar de direcciones IP.
- Tratamiento IP dinámico: Incluso si la dirección IP de un dispositivo cambia, mDNS se encarga de resolver la nueva dirección IP con el mismo nombre de host.
- Sin configuración: No se requiere ninguna configuración DNS adicional ya que mDNS funciona de forma independiente en las redes locales.
- Independencia de plataforma: mDNS se puede utilizar en diferentes dispositivos y sistemas operativos, lo que permite una integración perfecta.
Veamos paso a paso cómo configurar mDNS en un ESP32.
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: definir las credenciales de red
Antes de subir el boceto a continuación, debes realizar 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
Paso 4: sube el código
Aquí hay un boceto simple que demuestra la configuración de mDNS en una placa ESP32. Este código se conecta a una red Wi-Fi, inicia un servicio mDNS y crea un servidor HTTP para servir una página web simple. Una vez cargado, debería poder acceder al servidor web navegando a http://esp32.local/ en un navegador web.
Prueba el boceto.
#include <WiFi.h>
#include <WebServer.h>
#include <ESPmDNS.h>
/*Put your SSID & Password*/
const char* ssid = "YourNetworkName"; // Enter SSID here
const char* password = "YourPassword"; //Enter Password here
WebServer server(80);
void setup() {
Serial.begin(115200);
delay(100);
Serial.println("Connecting to ");
Serial.println(ssid);
//connect to your local wi-fi network
WiFi.begin(ssid, password);
//check wi-fi is connected to wi-fi network
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected..!");
// Initialize mDNS
if (!MDNS.begin("esp32")) { // Set the hostname to "esp32.local"
Serial.println("Error setting up MDNS responder!");
while(1) {
delay(1000);
}
}
Serial.println("mDNS responder started");
server.on("/", handle_OnConnect);
server.onNotFound(handle_NotFound);
server.begin();
Serial.println("HTTP server started");
}
void loop() {
server.handleClient();
}
void handle_OnConnect() {
server.send(200, "text/html", "<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"></head><body><h1>Hey there!</h1></body></html>");
}
void handle_NotFound(){
server.send(404, "text/plain", "Not found");
}
Paso 5: probar el código
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. A continuación se muestran los mensajes “respondedor mDNS iniciado” y “servidor HTTP iniciado”.

A continuación, inicie un navegador web y navegue hasta http://esp32.local/. El ESP32 debería mostrar una página web con un mensaje de bienvenida.

Explicación del código
El boceto comienza con la integración de las bibliotecas necesarias: WiFi.h
para conectarse a una red WiFi, WebServer.h
para configurar el servidor HTTP y ESPmDNS.h
para servicios mDNS.
#include <WiFi.h>
#include <WebServer.h>
#include <ESPmDNS.h>
Las siguientes dos constantes, ssid
Y password
Están definidos. Estos son marcadores de posición para el nombre (SSID) y la contraseña de su red WiFi.
const char* ssid = "YourNetworkName"; // Enter SSID here
const char* password = "YourPassword"; //Enter Password here
La siguiente línea crea un objeto de servidor web que escucha en el puerto 80 (puerto HTTP estándar).
WebServer server(80);
En la función setup() primero inicializamos la comunicación serial con la PC.
Serial.begin(115200);
El ESP32 luego intenta conectarse a la red WiFi mediante WiFi.begin()
Función que acepta el SSID (nombre de red) y la contraseña como argumentos.
WiFi.begin(ssid, password);
Mientras el ESP32 intenta conectarse a la red, podemos verificar el estado de la conexión usando el WiFi.status()
Función.
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
A continuación simplemente llamamos al begin()
Método en una variable externa llamada MDNS
para iniciar el servicio mDNS. MDNS
La variable es una instancia de la respuesta MDNS Clase que proporciona todas las funciones de resolución de direcciones.
El llamado a lo anteriormente mencionado. begin()
El método se muestra a continuación. Como argumento del método, pasamos el nombre de host deseado (que se utilizará en la URL). Es importante tener en cuenta que el nombre de host no debe tener más de 63 caracteres.
if (!MDNS.begin("esp32")) { // Set the hostname to "esp32.local"
Serial.println("Error setting up MDNS responder!");
while(1) {
delay(1000);
}
}
El siguiente bloque de código simplemente configura un controlador para la URL raíz. Cuando alguien accede a la URL raíz, handle_OnConnect()
llamado. También configura un controlador que se llama cuando una URL solicitada no se encuentra en el servidor.
server.on("/", handle_OnConnect);
server.onNotFound(handle_NotFound);
Finalmente, para iniciar el servidor, llamamos al begin()
Método en el objeto del servidor.
server.begin();
La función loop() comprueba continuamente si se reciben las solicitudes de los clientes y las procesa llamando al handleClient()
Método en el objeto del servidor.
void loop() {
server.handleClient();
}
El handle_OnConnect()
es una función que devuelve una respuesta HTML al cliente cuando se accede a la URL raíz (“/”). Envía una página HTML simple con un mensaje de bienvenida usando el server.send()
Método.
El server.send()
El método acepta como argumentos el código de respuesta HTTP, el tipo de contenido y el contenido en sí. En nuestro caso enviamos el código 200 (uno de los. Códigos de estado HTTP), que corresponde a la respuesta OK (lo que significa que la solicitud se procesó correctamente). Luego especificamos el tipo de contenido como «texto/html». Finalmente, tenemos una cadena larga que no es más que código HTML que crea una página web simple que muestra el mensaje «¡Hola!»
void handle_OnConnect() {
server.send(200, "text/html", "<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"></head><body><h1>Hey there!</h1></body></html>");
}
Si el servidor recibe una solicitud de una URL que no existe en el servidor, handle_NotFound()
envía una respuesta 404 «No encontrado».
void handle_NotFound(){
server.send(404, "text/plain", "Not found");
}
[automatic_youtube_gallery type=»search» search=»Cómo configurar mDNS en un ESP32
» limit=»1″]
Introducción
Si tienes un solo ESP32 en tu red, puedes conectarte a él usando su dirección IP (por ejemplo, 192.168.1.128). Pero imagina tener varios ESP32 dispersos por tu casa. De repente te encontrarás necesitando recordar múltiples direcciones IP. Terriblemente consumidor de tiempo y no divertido. Aquí es donde entra en juego mDNS.
¿Qué es mDNS?
Hace treinta años, cuando Internet estaba en sus primeros días, si querías visitar un sitio web, tenías que conocer su dirección IP. Eso se debe a que las computadoras solo podían comunicarse usando números. Es por eso que se creó el Sistema de Nombres de Dominio (DNS) para traducir las direcciones IP en nombres de dominio más memorables.
Para una red doméstica local, donde los dispositivos cambian frecuentemente sus direcciones IP, mDNS se vuelve una solución más práctica. Permite a los dispositivos descubrir las direcciones IP de los demás en la red sin la necesidad de un servidor DNS dedicado.
Características clave y beneficios de mDNS:
- Hostnames fáciles de recordar: Accede a los dispositivos en la red utilizando hostnames como «esp32.local» en lugar de direcciones IP.
- Manejo de IP dinámico: mDNS resuelve automáticamente la nueva dirección IP de un dispositivo con el mismo hostname
- Configuración cero: No se necesita configuración adicional de DNS, mDNS opera de manera independiente en redes locales.
- Independencia de plataformas: mDNS se puede utilizar en varios dispositivos y sistemas operativos, facilitando la integración.
Configuración de mDNS en un ESP32
Paso 1 – Configurar el IDE de Arduino
Utilizaremos el IDE de Arduino para programar el ESP32, asegúrate de tener el complemento ESP32 instalado antes de continuar. Puedes elegir entre varias plataformas de desarrollo disponibles para programar el ESP32, como Arduino IDE o Espruino.
Paso 2 – Conectar el ESP32 a tu computadora
Usa un cable micro-USB para conectar tu placa ESP32 a tu computadora.
Paso 3 – Definir Credenciales de Red
Antes de subir el código, actualiza los siguientes dos variables con tu SSID y contraseña de WiFi reales.
Paso 4 – Subir el Código
Aquí tienes un sketch simple que muestra cómo configurar mDNS en un ESP32. Este código se conecta a una red Wi-Fi, inicia un servicio mDNS y crea un servidor HTTP para servir una página web simple.
Paso 5 – Probar el código
Después de subir el código, abre el Monitor Serie y presiona el botón EN en el ESP32. Puede tardar unos momentos en conectarse a tu red, después mostrará los mensajes «mDNS responder started» y «HTTP server started.» Luego, abre un navegador web y navega a «http://esp32.local/». El ESP32 debería mostrar una página web con un mensaje de saludo.
Explicación del Código
El código comienza incluyendo las bibliotecas necesarias: WiFi.h para la conexión a una red WiFi, WebServer.h para configurar el servidor HTTP y ESPmDNS.h para los servicios de mDNS. Luego se definen las constantes ssid y password para la red WiFi. Después se crea un objeto de servidor web que escucha en el puerto 80. En la función setup(), se inicializa la comunicación serial con la PC y se intenta unir el ESP32 a la red WiFi. Luego se inicia el servicio mDNS y se configuran los controladores de las URL. Finalmente, para iniciar el servidor, se llama al método begin() en el objeto del servidor. En el bucle loop(), se manejan continuamente las solicitudes de clientes entrantes llamando al método handleClient() en el objeto del servidor.
Fuentes Externas:
Para más información sobre mDNS en ESP32, visita estos enlaces: