ESP32でWiFi Manager、設定を消去

 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);

 あとは、メインの処理を書いていくだけだ。がんばろう。

コメント