M5StickCをテスト中。ウェブサーバー機能を使うので、WiFiのSSIDなどの設定をカンタンにできるWiFi Managerを使用。いろいろうまくいかない。
参考にしたのはこれ。
ESP32 WiFiのSSID、パスワードを外部から設定しアクセスポイントに接続 – Qiita
WiFi Manager for ESP32 zhouhan0126/WIFIMANAGER-ESP32: wifimanager-esp32 を使ってみるが、うまくいかない。コンパイルができない。いろいろ探して、これにした。Brunez3BD/WIFIMANAGER-ESP32: wifimanager-esp32
で、場合によっては一度設定したSSIDやパスワードを消去したいこともあろうと思い調べる。最初のリンクにはこうある。
記憶されたAP情報はESP32では以下のメンバ関数ではクリアできない。
wifiManager.resetSettings();
EEPROM情報をクリアする場合はESP-IDFのプロジェクトライブラリで以下のコマンドを実行する。
$ make erase_flash
ESP32では、スケッチ側でできないのか? 参った。
さらに調べる。 WiFi.disconnect(true); でOKという情報もあったけど、うまくいかない。とか思ってたら、ここにあった。
WiFi.disconnect(true) problem · Issue #400 · espressif/arduino-esp32
WiFi.disconnect(true) のあとに WiFi.begin(“0″,”0”); するのがポイントらしい。
ということで、書かれているように、情報を消去してからリセットすることに。リセットのあとにdelayを入れるのも重要らしい。
WiFi.disconnect(true); // still not erasing the ssid/pw. Will happily reconnect on next start
WiFi.begin(“0″,”0”); // adding this effectively seems to erase the previous stored SSID/PW
ESP.restart();
delay(1000);
あとは、メインの処理を書いていくだけだ。がんばろう。
コメント