ESP32でmDNSサービスを作る

ESP32でmDNSサービスを作る

mDNS(Multicast DNS)は、ローカルネットワーク内でホスト名からIPアドレスを解決する仕組みで、DNSサーバーを必要とせずに機器同士が自動的に名前解決を行うプロトコルです。

ローカルネットワーク内で「名前からIPアドレス」に変換してくれます。

対象範囲がローカルネットワークに限られますが、IPアドレスがわからなくても、デバイスを見つけることができるため非常に使い勝手が良いです。

例)

esp32device.local ->IPアドレス (192.168.1.**)等に変換してくれます。

コード

#include <WiFi.h>
#include <ESPmDNS.h>

const char* ssid     = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";

void setup() {
  Serial.begin(115200);

  // WiFi接続
  WiFi.begin(ssid, password);
  Serial.print("Connecting to WiFi");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("\nWiFi connected");
  Serial.println(WiFi.localIP());

  // mDNS開始 ホスト名: esp32.local
  if (!MDNS.begin("esp32")) { 
    Serial.println("Error setting up MDNS responder!");
    while (1) {
      delay(1000);
    }
  }
  Serial.println("mDNS responder started");

  // サービス登録 (例: HTTPサーバー)
  MDNS.addService("http", "tcp", 80);
}

void loop() {
  // mDNSはバックグラウンドで動作するので特に処理不要
}
タイトルとURLをコピーしました