30
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ESP8266 がアクセスポイントとなってSSID・パスワードの初期設定をする

Posted at

良くあるユースケースとして、

  1. デバイスを起動
  2. そのデバイスがアクセスポイントになってるので、そこにまずは繋いで、ちゃんと繋ぎたいWiFiのSSIDとパスワードを入力
  3. 繋がったら通常起動し、そのセットしたSSID/パスワードを利用する

が上げられる。割とちゃんと実装すると大変なんだけど、WiFiManager というライブラリを使うと簡単にできると言うことを ESP8266 WI-FI SSID、パスワードのオンライン設定 より知った。

ライブラリを使える状態にすると

#include <ESP8266WiFi.h>
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h>

void setup() {
  WiFiManager wifiManager;
  wifiManager.autoConnect();
}

void loop() {
}

だけで上のユースケースが満たされて大変便利だ…。標準でWebUIもついてる。

これにOTA アップデート組み合わせると、めんどくさいけどやりたいことの大きな二つがサクッとやれる。

SSID やパスワードをどこに保存してるか

で、セキュアなのかどうなのか、雑に考えるとEEPROMの上に保持していて物理的な読み出しがしやすくなってるんじゃ無いのかな、と思って WiFiManager のソースを読んだけど、SSIDとパスワードを保存しているコードが解らなくて、esp8266のArduinoのコードを読んでも解らなかった。

もうちょっと調べてみると、esp8266のSDKを通してFlashメモリのWiFi configの領域に書き込んでるみたい。

|--------------|-------|---------------|--|--|--|--|--|
^              ^       ^               ^     ^
Sketch    OTA update   File system   EEPROM  WiFi config (SDK)

ていうか File System としてそこそこ大きな領域扱えたんだ!知らなかった。

30
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?