Arudino core for ESP32 上で WifiManager を使っていて、autoConnect で正しい SSIDとパスワードを設定してみても Connection Resultが WL_NO_SSID_AVAIL = 1 とSSIDが見つからないという理由で接続ができない場合がある。
次の記事によれば 、非揮発性ストレージ(NVS)の内容がおかしくなっている場合があるとのこと。NVSをクリアすることで改善する場合がある。
WiFi connection problem – NVS corrupted
クリアするプログラムは上記の記事にある通りであるが、Arduinoのスケッチ全体を示すと下記の通り。
NVS全体をクリアするので、NVSに記録されている情報が失われる。利用する前に保存しておくべき情報がNVSにないことを確認する必要がある。
[code language="C"]
#include <nvs.h>
#include <nvs_flash.h>
void clearNVS() {
int err;
err = nvs_flash_init();
Serial.print("nvs_flash_init: ");
Serial.println(err);
err = nvs_flash_erase();
Serial.print("nvs_flash_erase: ");
Serial.println(err);
}
void setup() {
Serial.begin(115200);
clearNVS();
}
void loop() {
}
[/code]
実行してエラーがなく、下記のような出力がSerialから得られればうまくクリアできている。
1 2 |
nvs_flash_init: 0 nvs_flash_erase: 0 |