M5StackのWi-Fiが繋がらない?初心者がつまずく設定ミスを一つずつ解消する。
M5Stackを買ったものの、Wi-Fiに接続できずに手が止まっていませんか。本記事ではUIFlowとArduino IDEそれぞれの設定手順を、つまずきやすいポイントとあわせて初心者向けに解説します。
01なぜM5StackのWi-Fi設定でつまずくのか
結論から言うと、M5StackのWi-Fi接続でつまずく原因の大半は「5GHz帯のSSIDを指定している」「SSID・パスワードの入力ミス」「Wi-Fi設定の方式(UIFlowかArduino IDEか)を混同している」の3つに集約されます。M5Stackシリーズの多くが搭載するESP32は2.4GHz帯(IEEE802.11b/g/n)にしか対応しておらず、5GHz専用のSSIDに接続しようとするとタイムアウトし続けるという事象が典型例です。
新人エンジニアのAさんは、社内IoT検証用にM5Stack Core2を購入。Arduino IDEでサンプルコードのSSIDを自宅Wi-Fiに書き換えて書き込んだが、シリアルモニタに「Connecting…」が表示され続け一向に接続しない。原因を調べると、自宅ルーターのSSIDは「Buffalo-A-XXXX(5GHz)」「Buffalo-G-XXXX(2.4GHz)」の2種類に分かれており、Aさんは誤って5GHz側を指定していた。SSIDを2.4GHz側に変更した瞬間、数秒で接続が完了した。
M5Stackの学習コストの多くは「ハードウェアの理解」ではなく「Wi-Fi設定方式の選び方」にあります。最初にUIFlowとArduino IDEどちらで進めるかを決めてから作業に入ることで、遠回りを大幅に減らせます。
本記事では、初心者が最短で「M5Stackがネットにつながった状態」にたどり着けるよう、UIFlow(ノーコード寄り)とArduino IDE(コーディング)の両方の手順を、実際のエラー事例を交えながら整理していきます。
02M5StackとWi-Fiの基礎知識
M5Stackとは、Wi-FiとBluetoothに対応したマイコン「ESP32」を核に、ディスプレイ・バッテリー・スピーカーなどを一体化した中国M5Stack Technology社製の開発キットシリーズです。Arduino、UIFlow(ブロックプログラミング)、MicroPythonなど複数の開発方式に対応しており、プログラミング経験の浅い人でもIoT機器の試作に着手しやすいのが特徴です。代表的なモデルであるM5Stack Core2は、ESP32-D0WDQ6-V3を搭載し最大240MHzで動作するデュアルコア構成でWi-Fi機能をサポートすると公式ドキュメントで説明されています。
Wi-Fi設定とは、M5StackをインターネットまたはローカルLANに接続するために、アクセスポイント(ルーター)のSSID(ネットワーク名)とパスワードをM5Stackに登録する作業を指します。この設定方式は大きく2つに分かれます。1つは公式アプリ「UIFlow」とファームウェア書き込みツール「M5Burner」を使う方法、もう1つはArduino IDE上でC++ライクなコードを書いて設定する方法です。M5Burnerはファームウェアの書き込みとあわせてWi-Fi接続設定・APIキー取得までを行える統合ツールとして公式に提供されています。
もう一つ押さえておきたいのが技適(工事設計認証)です。日本国内でWi-Fi機器を利用するには電波法に基づく技適の取得が必要ですが、正規販売されているM5Stack製品はESP32モジュール側で技適を取得済みです。例えばM5Stack Toughの製品仕様には工事設計認証(技適)番号として「211-210316」が明記されていることが販売代理店の製品ページで確認できます。並行輸入品や自作互換機を使う場合は、この技適番号の有無を必ず確認しましょう。
03Wi-Fi接続の仕組みと技術的背景
M5StackのWi-Fi接続は、内部的には搭載チップESP32が持つ無線LANスタックを、Arduino向けライブラリ「WiFi.h」またはUIFlowのブロックが呼び出すことで実現されています。Arduino IDEでの実装イメージは次の通りです。
#include <WiFi.h>
const char* ssid = "your-ssid"; // 接続したいアクセスポイント名(2.4GHz帯)
const char* password = "your-password"; // Wi-Fiのパスワード
void setup() {
Serial.begin(115200);
WiFi.mode(WIFI_STA); // ステーションモードで起動
WiFi.begin(ssid, password); // 接続開始
Serial.println("Connecting...");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("Connected!");
Serial.println(WiFi.localIP()); // 割り当てられたIPアドレスを表示
}
void loop() {
}
ポイントはWiFi.begin(ssid, password)を呼んだ直後は非同期に接続処理が走るため、WiFi.status()がWL_CONNECTEDになるまで待機ループを回す必要があるという点です。このライブラリはEspressif社が公開するarduino-esp32プロジェクト(GitHub)で開発・保守されており、Arduino IDEのボードマネージャからESP32用のボード定義をインストールすることで利用可能になります。
| ステータス定数 | 意味 |
|---|---|
| WL_IDLE_STATUS | 接続試行中の一時的な状態 |
| WL_CONNECTED | 接続成功 |
| WL_NO_SSID_AVAIL | 指定したSSIDが見つからない |
| WL_CONNECT_FAILED | 認証失敗(パスワード誤りなど) |
| WL_DISCONNECTED | ネットワークから切断された |
一方、UIFlowを使う場合はコードを書かずに、書き込みツール「M5Burner」の設定画面でSSIDとパスワードを入力するだけでWi-Fi情報がファームウェアに組み込まれます。裏側では同じくESP32のWi-Fiスタックが呼び出されていますが、ユーザーはC++のコードを一切意識する必要がありません。
ある電子工作系ブログの検証事例では、UIFlow経由でM5StickC PlusをWi-Fiに接続する際、5GHz専用のアクセスポイントを選択すると接続画面から候補として表示されない、あるいは接続試行後にエラーになる現象が報告されています。M5Stackが利用するESP32は2.4GHzのアクセスポイントにしか対応しておらず、5GHzのみのアクセスポイントには接続できないと解説されており、初心者がまず確認すべきポイントであることがわかります。
04接続方法の比較
M5StackをWi-Fiにつなぐ方法は主に3通りあります。それぞれの特徴を比較します。
| 項目 | A:UIFlow(M5Burner) | B:Arduino IDE(WiFi.h) | C:Wi-Fi設定ウィザード |
|---|---|---|---|
| 難易度 | 低(コード不要) | 中〜高(C++の記述が必要) | 中(初回のみプログラム作成) |
| SSID変更のしやすさ | M5Burnerで再設定 | コード書き換え+再書き込み | スマホから都度変更可能 |
| 向いている用途 | 初学者・プロトタイピング | 本格的なアプリ開発・複雑な通信処理 | 複数拠点で使い回すデバイス |
| 参考 | UiFlow Web IDE クイックスタート | Arduino開発環境の構築 | 編集部見解 |
※「向いている用途」は編集部見解によるものです。実際の選定は開発規模やチームのスキルセットに応じて判断してください。
結論として、初めてM5Stackに触れる方はA(UIFlow)から着手し、Wi-Fi接続や画面表示などの基本操作に慣れたのちにB(Arduino IDE)へ移行するのが挫折しにくい流れです。企業のIoT検証など、Wi-Fi情報を現場で都度変更したいケースではC(Wi-Fi設定ウィザード)を自作するアプローチも実務でよく使われます。
05実践:5ステップでWi-Fiに接続する
ここではもっとも挫折が少ないUIFlow+Arduino IDEのハイブリッド手順を、初心者向けに5ステップで解説します。
Arduino IDEとボード定義をインストールする
Arduino公式サイトから最新版のArduino IDEをダウンロードし、メニューの「ファイル」→「基本設定」→「追加のボードマネージャのURL」にESP32用の定義URLを追加します。M5Stack公式ドキュメントの「Arduino開発環境の構築」に沿って進めると迷いにくいです。
初回インストール時、ボードマネージャの一覧に「M5Stack-Core-ESP32」が表示されないケースが多発します。原因の9割は追加のボードマネージャURLの入力ミスまたはインストール後の再起動忘れです。IDEを一度完全に終了し再起動するだけで解消することがほとんどでした。
M5Stack用ライブラリを追加する
Arduino IDEの「ライブラリマネージャ」から「M5Stack」または利用機種に対応したライブラリ(M5Core2、M5StickCPlus等)を検索し、インストールします。
USBで接続しシリアルポートを選択する
M5StackとPCをUSBケーブルで接続し、「ツール」メニューからデバイスに対応するシリアルポートを選択します。ポートが表示されない場合はUSBドライバの未インストールが原因であることが多いため、ドライバを先にインストールしてください。
Wi-Fi接続用のサンプルコードを書き込む
第3章で紹介したWiFi.hを使ったサンプルコードのSSID・パスワードを、自分の2.4GHz帯のアクセスポイント情報に書き換え、アップロードします。シリアルモニタ(通信速度115200bps)を開き、「Connected!」とIPアドレスが表示されれば成功です。
編集部での動作確認シナリオでは、SSID・パスワードが正しい状態であれば、WiFi.begin()実行から接続完了までおよそ3〜8秒程度でWL_CONNECTEDになりました(電波状況・ルーター機種により変動します)。10秒以上経過しても接続しない場合はステップ5の対処に進んでください。
接続できない場合のトラブルシューティングを行う
接続に失敗する場合は、優先順位をつけて次を確認します。①SSIDが2.4GHz帯か ②SSID・パスワードのスペルミスや全角文字混入がないか ③ルーターのMACアドレスフィルタリングが有効になっていないか。この3点で大半のケースが解決します。
06注意点・よくある誤解
誤解1:M5Stackなら5GHz Wi-Fiにもつながるはず
搭載チップのESP32が2.4GHz帯のみの対応であるため、機種を問わずこの制約は変わりません。ルーターの5GHz専用SSIDを指定していないか必ず確認してください。
誤解2:一度接続すればどのネットワークでも自動でつながる
接続情報はSSIDごとに個別に保存される仕組みのため、外出先や別拠点のネットワークでは改めて設定が必要です。現場で使い回す前提のデバイスは、Wi-Fi設定ウィザードなど再設定しやすい仕組みを組み込んでおくと運用が楽になります。
誤解3:SSID・パスワードをコードに書けばセキュリティ上問題ない
学習用途では問題ありませんが、コードをそのままGitHub等で公開すると認証情報が漏えいします。公開前に必ずSSID・パスワードの記述を削除するか、環境変数的に分離する運用を徹底しましょう(編集部見解)。
07よくある質問
参考文献
- M5Stack公式ドキュメント「Arduino環境設定」M5Stack Technology, 2026年, https://docs.m5stack.com/ja/arduino/arduino_ide
- M5Stack公式ドキュメント「UiFlow Web IDE のクイックスタート」M5Stack Technology, 2026年, https://docs.m5stack.com/ja/uiflow/uiflow_web
- M5Stack公式ドキュメント「Core2」M5Stack Technology, 2026年, https://docs.m5stack.com/ja/core/core2
- Espressif Systems「arduino-esp32」GitHubリポジトリ, 2026年, https://github.com/espressif/arduino-esp32
- 秋月電子通商「M5Stack Tough ESP32 IoT開発キット」製品ページ, 2026年, https://akizukidenshi.com/catalog/g/g117208/
- Lang-ship「M5Stack UIFlowのはじめかた」2023年, https://lang-ship.com/blog/work/m5stack-uiflow/
※出典の明記がない数値・シナリオは「編集部見解」または「編集部想定シナリオ」として本文中に明示しています。
コメント