概略
WiFiに自動で設定することを聞いたことがありますか? スマートフォンだけでM5StackをWiFiに接続できることはどう思いますか? 一緒にやってみよう
まず、SmartConfigとは何ですか? M5StackのSmartConfigモードを使用するにはどうすればよいですか?
SmartConfig とは
Smartconfigは、ユーザーがデバイス自体(電話)の操作を通じてインターネットにすばやく接続できるWiFiデバイス(ここではM5Stack)の情報をコンフィグする場合に言及される概念です。
以下の画像でイメージしています。

簡単に理解すると、Smart configは、プログラムでWiFi情報を宣言してファームウェアを書き込む通常の方法ではなく、スマートフォン経由でWi-Fiネットワーク情報(Wi-Fi名とWi-Fiパスワードを含む)をM5Stackに送信することを意味します。
では、SmartConfigの利点は何ですか?
- スマートフォンを介してM5StackのWiFiを簡単にコンフィグします。
- コンフィグするためのファームウェアを再書き込む必要はありません
- Smartconfigを使用して、一度に複数のデバイスをコンフィグできます
環境を準備しましょう。
ハードウェア
M5Stack、スマートフォン
ソフトウェア
- ArduinoIDEをパソコンにインストールします。このツールでソースコードを作成しM5Stackに書き込みます。
- スマートフォンの方ではESP-TOUCH SmartConfigをインストールします。このアプリはGoogle Play StoreかApple Storeかどちらもあります。
ソースコードを作成します
#include "WiFi.h"
#include <M5Stack.h>
void setup() {
M5.begin();
M5.Power.begin();
M5.Lcd.println("SmartConfig Test");
//Init WiFi as Station, start SmartConfig
WiFi.mode(WIFI_AP_STA);
WiFi.beginSmartConfig();
//Wait for SmartConfig packet from mobile
M5.Lcd.println("Waiting for SmartConfig.");
while (!WiFi.smartConfigDone()) {
delay(500);
M5.Lcd.print(".");
}
M5.Lcd.println("");
M5.Lcd.println("SmartConfig received.");
//Wait for WiFi to connect to AP
M5.Lcd.println("Waiting for WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
M5.Lcd.print(".");
}
M5.Lcd.println();
M5.Lcd.println("WiFi Connected.");
M5.Lcd.print("IP Address: ");
M5.Lcd.println(WiFi.localIP());
}
void loop() {
// put your main code here, to run repeatedly:
M5.Lcd.setCursor(0, 100);
M5.Lcd.setTextColor(ORANGE, BLACK);
M5.Lcd.printf("WiFi Signal: %d dBm \r\n", WiFi.RSSI());
delay(500);
}
次に、下記の手順を実行しましょう
- 上記のプログラムをビルドしてM5Stackに書き込んで、M5Stackを起動した後にSmartconfig機能でWiFi情報を探します。
- スマートフォンを現在WiFiネットワークに接続します。
- スマートフォンにインストールされているESP-TOUCH SmartConfigアプリを開いてWiFi情報を入力してConfirmボタンを押してWiFi情報をM5Stackに伝えます。


最後に
ファームウェアをあまり変更せずにM5StackのWiFi情報をすばやく設定できます。開発環境がなくてパソコンがなくてどこでもスマートフォンだけでM5Stackの接続WiFi情報を設定できたり更新できたりします。