前提・実現したいこと
ESP32 arduino-IDEを使用して、マルチキャストDNS設定を行い、
つい最近まで問題なくDNSが使用できていたのですが、今日突然DNSでurl入力すると「このサイトにアクセスできません」と表示されるようになりました。
原因を解明したいです。
発生している問題・エラーメッセージ
これまで動作していた下記の該当コードで、URLに「http://esp32.local」と入力すると、以下のエラーメッセージが発生しました。
「このサイトにアクセスできません」
このサイトにアクセスできません
該当のソースコード
#include <WiFi.h> #include <WebServer.h> #include <ESPmDNS.h> const char* ssid = "*****"; const char* password = "*******"; WebServer server(80); const int led = 13; void handleIndex(){ digitalWrite(led, 1); String htmlHead="<html><head><title>HTTP case study</title></head>"; String htmlbody00="<body><h2 style='color:royalblue;text-align:center'>Hello., I am WebServer.</h2>"; String htmlbody01="</body></html>"; String html=htmlHead+htmlbody00+htmlbody01; //作成したhtmlをレスポンスとして送信する server.send(200,"text/html", html); digitalWrite(led, 0); } void handleRoot() { digitalWrite(led, 1); server.send(200, "text/plain", "hello from esp32!"); digitalWrite(led, 0); } void handleNotFound() { digitalWrite(led, 1); String message = "File Not Found\n\n"; message += "URI: "; message += server.uri(); message += "\nMethod: "; message += (server.method() == HTTP_GET) ? "GET" : "POST"; message += "\nArguments: "; message += server.args(); message += "\n"; for (uint8_t i = 0; i < server.args(); i++) { message += " " + server.argName(i) + ": " + server.arg(i) + "\n"; } server.send(404, "text/plain", message); digitalWrite(led, 0); } void setup(void) { pinMode(led, OUTPUT); digitalWrite(led, 0); Serial.begin(115200); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); Serial.println(""); // Wait for connection Serial.println("--------------------------"); Serial.print("Now connecting to "); Serial.println(ssid); Serial.println("--------------------------"); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.print("Connected to "); Serial.println(ssid); Serial.print("IP address: "); Serial.println(WiFi.localIP()); if (MDNS.begin("esp32")) { // ホスト名:esp32.local Serial.println("MDNS responder started"); } server.on("/", handleRoot); server.on("/index.html",handleIndex ); server.onNotFound(handleNotFound); server.begin(); Serial.println("HTTP server started"); } void loop(void) { server.handleClient(); delay(2);//allow the cpu to switch to other tasks }
試したこと
1)Chromeブラウザのキャッシュをクリアするも改善しませんでした
2)IPアドレスでのアクセスは問題なく表示されます
3)WiFiルータをリセットしてみましたが、改善しませんでした。
4)シリアルモニターを確認すると問題なく
「MDNS responder started」が表示されてはいます。
5)「https://boxil.jp/mag/a38/」のサイトに書かれていることは試しました。
なかなか改善せずモヤモヤしております。
ご助言いただければ助かります。
esp32.localに、pingを打つとどうなりますか?
ご連絡ありがとうございます。
「ping 要求では、 esp32.localが見つかりませんでした」となりました
因みに今は、
https://utilly.jp/article/access-error/
を確認中です
スマホからWifiに接続して
http://esp32.local
と入力すると問題なくアクセスできています。
パソコン側でしょうか
はい。スマホからアクセスできるとなると、ESP32は正しく動いているようなので、パソコン(のOSレベル)のようですね。
mDNSでの名前の解決に失敗しています。
回答1件
あなたの回答
tips
プレビュー