Resolução de endereço usando a biblioteca mDNS no ESP32

Eletrônica

Neste tutorial vamos aprender como usar o mDNS para resolver o endereço de um servidor web HTTP hospedado pelo ESP32. Para acessar o servidor ESP32, precisamos saber seu endereço IP e, na maioria dos exemplos que abordamos até agora, imprimimos esse endereço no console e o usamos em nosso navegador.


No entanto, em cenários mais realistas, imprimir o endereço IP pode não ser uma opção. Assim, o mDNS é um protocolo que permite fazer a resolução de nomes definidos localmente para IPs sem a necessidade de infraestruturas dedicadas (como um servidor DNS) [1]. Você pode ler a especificação do protocolo aqui  .


Em outras palavras, podemos usar um nome em vez de um IP na URL para acessar o navegador, e o mDNS permitirá resolver esse nome em um endereço IP.


Este protocolo opera sobre multicast UDP [2]. Observe que o “m” de mDNS significa “multicast” [1].


É importante levar em consideração que o dispositivo que está chegando ao servidor também precisa de mDNS. Já testei com uma máquina Windows 10 e ela consegue realizar a resolução do endereço. Em sistemas operacionais mais antigos, talvez seja necessário instalar software adicional para poder fazer a resolução.


Código completo:


#include <ESPmDNS.h>
#include <WiFi.h>
#include <ESPAsyncWebServer.h>
  
const char* ssid = "SSID";
const char* password =  "SENHA";
  
AsyncWebServer server(80);
  
void setup(){
  Serial.begin(115200);
  
  WiFi.begin(ssid, password);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi..");
  }
 
  if(!MDNS.begin("esp32")) {
     Serial.println("Error starting mDNS");
     return;
  }
  
  Serial.println(WiFi.localIP());
  
  server.on("/hello", HTTP_GET, [](AsyncWebServerRequest *request){
    request->send(200, "text/plain", "Hello World");
  });
  
  server.begin();
}
  
void loop(){}



Testando o código


Em seguida, abra um navegador da Web de sua escolha e digite o seguinte na barra de endereço:


http://esp32.local/hello


Após acessar a URL anterior, o navegador deve chegar ao servidor e receber como saída a mensagem “Hello World” que definimos no código. Você pode conferir o resultado esperado:






Fonte
https://techtutorialsx.com/2020/04/17/esp32-mdns-address-resolution/
Mais Dicas