WiFiのSSIDとパスワードをどう伝えるか問題

ESP32はWiFiに接続することができますが,ソースコードにWiFiのSSIDとパスワードを書いてしまうと,後から変更できません.

さらに,ソースコードを公開するときは,SSIDとパスワードの部分をいちいち削除しなければならず,けっこう面倒です.

以前はSDカードを使ってWiFi情報を伝える方法を紹介しましたが,これも割と手間でした.

SmartConfigとは,そんな悩みをスマホで解決する機能です.

SmartConfigとは

ESP32のSmartConfig機能は,ESP32がWiFiのアクセスポイントになることで,スマホからWiFi情報を伝えてやろうというものです.

既にESP8266のときからある機能で,スマホのアプリがあります.

使い方

ESP32側

ここでは例によって Arduino core for the ESP32 環境でのやり方を紹介します.

ここに公式のサンプルコードがあります.

SmartConfigの関数はWiFiクラスに宣言されていますので,そのまますぐに使うことができます.

#include "WiFi.h"

void setup() {
	Serial.begin(115200); //< シリアルの初期化

	// WiFI を AP + STA モードにする
	WiFi.mode(WIFI_AP_STA);
	WiFi.beginSmartConfig(); //< SmartConfigの初期化

	// スマホからのアクセスを待つ
	Serial.println("Waiting for SmartConfig.");
	while (!WiFi.smartConfigDone()) {
		delay(500);
		Serial.print(".");
	}
	// スマホからSSIDとパスワードが送られてきた
	Serial.println("SmartConfig received.");

	// WiFiに接続
	Serial.println("Waiting for WiFi");
	while (WiFi.status() != WL_CONNECTED) {
		delay(500);
		Serial.print(".");
	}
	// 接続成功
	Serial.println("WiFi Connected.");
}

void loop() {
}

スマホ側

アプリを起動して,WiFiのパスワードを入力するだけです.

まとめ

驚くほど簡単にWiFi情報の伝達ができてしまいました.

いい時代になったものです.