前提・実現したいこと
ESP32というWiFiモジュールがついたマイコンからWiFiを飛ばして(アクセスポイントにして)そのWiFiにスマホやタブレットから接続しようとしています。
コンパイルエラー、書き込みエラーなどはないのにも関わらず(Lチカはできました)WiFiが飛ばない(スマホなどから見えない&検索しても出て来ない)ため悩んでいます。
何かしらアドバイスがあったらいただきたいです(_ _)
発生している問題・エラーメッセージ
Lチカができたため、書き込みは成功していると思われます。
特にエラーなどは発生していないです。
以下のプログラムを書き込んでも、WiFiが飛んでくれません。
該当のソースコード
インターネットからいただいたものそのままです。
#include <WiFi.h> WiFiServer server(80); const char ssid[] = "ESP32-WiFi"; // SSID const char pass[] = "esp32wifi"; // password const IPAddress ip(192, 168, 20, 2); // IPアドレス const IPAddress subnet(255, 255, 255, 0); // サブネットマスク void setup() { Serial.begin(115200); WiFi.softAP(ssid, pass); // SSIDとパスの設定 delay(100); // 追記:このdelayを入れないと失敗する場合がある WiFi.softAPConfig(ip, ip, subnet); // IPアドレス、ゲートウェイ、サブネットマスクの設定 IPAddress myIP = WiFi.softAPIP(); // WiFi.softAPIP()でWiFi起動 server.begin(); // サーバーを起動(htmlを表示させるため) /* 各種情報を表示 */ Serial.print("SSID: "); Serial.println(ssid); Serial.print("AP IP address: "); Serial.println(myIP); Serial.println("Server start!"); } void loop() { WiFiClient client = server.available(); if (client) { String currentLine = ""; Serial.println("new client!"); while (client.connected()) { if (client.available()) { if (currentLine.length() == 0) { client.println("HTTP/1.1 200 OK"); client.println("Content-type:text/html"); client.println(); client.println("hello!"); break; } else { currentLine = ""; } } } // 接続が切れた場合 client.stop(); Serial.println("client disonnected"); } }
試したこと
ESP32のリセットボタンを押してコードを実行すると、落ちるような感じなので、コメントアウトしてどこで落ちているのか探りました。
どうも、WiFi関連のメソッドで落ちているようです。
追記:ESP32にLEDつけた状態でWiFi関連メソッドを書いてコンパイルしたものを実行した時にLEDがパッと消えたので落ちたと表現しました。実際にESP32がどう動いているかわかっていません。
例えば
WiFi.softAP();
です。
WiFi.mode(WIFI_AP); WiFi.softAP;
などもためしましたが、今度は一行目のWiFi.modeメソッドで落ちています。
追記2
IPアドレスと、ゲートウェイのアドレスを別にして実行しましたがうまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
ArduinoIDE1.8.5からESP32に直接書き込み。
ボード:ESP32 dev Module
QIO
4MB(32Mb)
80MHz
115200
なし
ESP32のライブラリ、ESP8266のライブラリは導入済みです。
よろしくお願いします。
回答4件
あなたの回答
tips
プレビュー