M5Stackは、ESP32を搭載した本体にカラー液晶・ボタン・バッテリー・ケースまでをひとまとめにした開発モジュールです。ブレッドボードで配線しなくても、Grove規格のセンサー(Unit)を挿すだけで「画面に測定値を表示するIoT端末」を短時間で組み上げられます。この記事では、M5Stackを初めて触るエンジニア向けに、開発環境の選び方から、温湿度・気圧センサーの値を画面に表示し、さらにWi-Fiでクラウドに送って“ダッシュボード化”するまでの流れを、2026年時点の最新情報にもとづいて実践的に解説します。
マイコン単体の基礎はESP32でWi-Fi温湿度モニターを作る実践入門やラズベリー・パイ Pico 2で始めるマイコン入門で扱いました。本記事はその発展として、「配線を最小限にして、画面付きの完成品を1台つくる」ことをゴールにします。
M5Stackとは?ESP32との違い
M5Stackの中核はESP32(無印はデュアルコアXtensa LX6、CoreS3はESP32-S3のLX7)で、Wi-Fi/Bluetoothを内蔵します。「素のESP32開発ボード」との一番の違いは、液晶・スピーカー・IMU・ボタン・バッテリー・ケースが最初から一体化している点です。さらにGrove互換の「Unit」を挿すだけでセンサーやアクチュエータを追加でき、はんだ付けやジャンパ配線を大幅に減らせます。プロトタイプを素早く形にしたい、展示会や社内デモで“見せられる”端末をつくりたい、という用途に向いています。
2026年のM5Stackラインナップとスペック
主なコア機種は次のとおりです。用途と予算で選びます。
- M5Stack Basic / Gray:無印ESP32搭載の定番。まず1台試すならこれ。GrayはIMU付き。
- M5Stack Core2:静電容量式タッチ液晶・RTC・電源管理を強化した第2世代。
- M5Stack CoreS3:第3世代。ESP32-S3(デュアルコアLX7・240MHz)、16MB Flash・8MB PSRAM、2.0インチ静電容量タッチIPS、カメラ(GC0308)、6軸IMU(BMI270)・地磁気(BMM150)を内蔵。
- M5StickC PLUS2:スティック型で小型・低価格。ウェアラブルや省スペース用途に。
センサーを増設しつつ画面で操作までしたいなら、PSRAMとタッチ液晶を備えたCoreS3が扱いやすい選択です。ESP32-S3世代なので、後述のエッジAI用途にも展開しやすくなっています。
用意するもの
- M5Stack本体(CoreS3またはCore2/Basic)
- USB Type-Cケーブル(データ通信対応のもの)
- ENV IV Unit(温湿度=SHT40、気圧=BMP280を搭載)などのGrove Unit
- PC(Windows / macOS / Linux)とWi-Fi環境
開発環境の選択:UIFlow2 / Arduino IDE / PlatformIO
M5Stackには大きく3つの開発方法があります。
- UIFlow2:ブラウザで使えるビジュアル/MicroPython環境。ブロックを並べる感覚で書け、初学者に最適。ファームウェアはMicroPython(2026年時点でv1.25系ベース)で動作し、LVGL v9系によるGUI部品やPythonコードへの切り替えにも対応します。
- Arduino IDE:C/C++で書く定番。
M5Unified/M5GFXライブラリで各機種の液晶・ボタン・IMUを共通APIで扱えます。既存のArduino資産を流用したい人向け。 - PlatformIO(VS Code):本格開発向け。ライブラリ依存やビルド設定をコードで管理でき、CI連携もしやすい。
まずはUIFlow2で動く楽しさを体験し、処理速度や細かな制御が必要になったらArduino/PlatformIOへ移る、という順番がおすすめです。
UIFlow2でLチカ・画面表示を試す
本体をUSBでPCに接続し、公式のファームウェア書き込みツールでUIFlow2ファームを焼いてから、ブラウザ版UIFlow2(またはデスクトップ版)に接続します。最初はブロックで「画面に文字を表示」「RGB LEDを点滅」から始めると、書き込み〜実行の一連の流れがつかめます。MicroPythonに切り替えると、たとえば次のようなコードになります(機種によりAPIは一部異なります)。
from m5stack import *
from m5ui import *
import time
setScreenColor(0x0b162d)
label0 = M5TextBox(20, 20, "M5Stack Sensor Dashboard", lcd.FONT_DejaVu24, 0x22d3ee)
while True:
# 内蔵の緑LED / RGB を点滅させる例(機種により異なる)
rgb.setColorAll(0x00ff88)
time.sleep(0.5)
rgb.setColorAll(0x000000)
time.sleep(0.5)
ENV Unitで温湿度・気圧を画面に表示する(Arduino)
より自由度の高いArduino IDEでの例です。ボードマネージャにM5Stack(esp32コア)を追加し、ライブラリマネージャでM5UnifiedとM5Unit-ENVを導入します。ENV IV Unitを本体のGroveポート(Port.A)に挿し、次のスケッチを書き込むと、温度・湿度・気圧が2秒ごとに画面更新されます。
#include <M5Unified.h>
#include "M5UnitENV.h"
SHT4X sht4; // 温湿度センサー(ENV IV)
BMP280 bmp; // 気圧センサー(ENV IV)
void setup() {
auto cfg = M5.config();
M5.begin(cfg);
M5.Display.setTextSize(2);
Wire.begin();
sht4.begin(&Wire, SHT40_I2C_ADDR_44, 2, 1, 400000U);
bmp.begin(&Wire, BMP280_I2C_ADDR, 2, 1, 400000U);
}
void loop() {
M5.update();
sht4.update();
bmp.update();
M5.Display.clear();
M5.Display.setCursor(10, 20);
M5.Display.printf("Temp : %.1f C\n", sht4.cTemp);
M5.Display.printf("Humi : %.1f %%\n", sht4.humidity);
M5.Display.printf("Pres : %.0f hPa\n", bmp.pressure / 100.0);
delay(2000);
}
M5.DisplayはM5GFX由来の描画APIで、本体液晶に対してprintf感覚で文字を出せます。センサー値の読み出しは各Unitライブラリのupdate()後にメンバ変数を参照する形が基本です。
Wi-Fiでクラウドに送って“ダッシュボード化”する
画面表示までできたら、値をネットワークに送って可視化します。IoTダッシュボードの定番はMQTTでブローカーへ送る方式です。ESP32のWi-Fi接続とMQTTクライアント(ArduinoならPubSubClientなど)を使い、一定間隔でトピックにJSONをpublishします。受け側は、無料枠のあるIoT可視化サービスや、Node-RED+時系列DB(InfluxDB)+Grafanaのような自前構成でグラフ化できます。まずは1台→1トピックの最小構成で「送る・見える」を確認し、その後にデバイスIDや複数センサーへ拡張すると、つまずきにくくなります。
Wi-Fi接続とセンサー送信の基本パターンはESP32のWi-Fi温湿度モニターの記事と共通です。M5Stackでは加えて「本体画面に現在値、クラウドに履歴」と役割を分けると、現場でも確認しやすいダッシュボードになります。
Arduino / PlatformIO 開発のポイント
M5UnifiedはM5.begin(cfg)で機種を自動判別し、Basic/Core2/CoreS3/StickCなど複数機種のコードを共通化できます。PlatformIOではplatformio.iniのlib_depsにm5stack/M5Unifiedを書いておくと依存解決が自動化されます。C/C++での組み込み開発の基礎を固めたい場合は、STM32で始めるマイコン開発入門のようにHAL/レジスタ寄りの環境も併せて学ぶと、抽象度の違いが理解できて応用が利きます。
エッジAIへの発展
ESP32-S3を積むCoreS3は、軽量な機械学習モデルをデバイス側で動かすTinyMLの入り口にもなります。マイクや加速度センサーの値から「異常音」「動作パターン」を推論する、といった応用です。仕組みはエッジAI・TinyML完全解説で、モデルを小さくする手法は「量子化・枝刈り・蒸留」の解説記事で扱っています。センサーダッシュボードで“データを集める”ところから始め、次のステップで“デバイス側で判断する”へ進むと、学習の流れが自然です。
よくある質問(FAQ)
M5StackとArduino(素のESP32)はどちらを選ぶべき?
画面付きの完成品を素早く作りたい・配線を減らしたいならM5Stackが有利です。回路を自分で設計して基板に落とし込みたい、コストを極限まで下げたい場合は素のESP32開発ボードが向きます。学習用途なら、まずM5Stackで体験してから素のマイコンへ進む順序が挫折しにくいです。
プログラミング未経験でもM5Stackは扱える?
UIFlow2はブロックを並べるビジュアル環境から始められるため、未経験でも「画面表示」「センサー読み取り」までは到達しやすいです。慣れてきたらMicroPython、さらにArduino(C/C++)へ段階的に移行できます。
センサーの値をスマホやPCから見るには?
本体からMQTTやHTTPでクラウド/サーバーに送り、可視化サービスやNode-RED+Grafanaなどでダッシュボード表示するのが一般的です。まずは1センサー・1端末の最小構成で「送信できる・グラフに出る」を確認してから拡張しましょう。
まとめ
M5Stackは、液晶・ケース・センサー接続までを一体化することで、「動くIoT端末を1台完成させる」体験を最短距離で提供してくれるモジュールです。UIFlow2で気軽に始め、Arduino/PlatformIOで作り込み、Wi-Fiでクラウドに送ってダッシュボード化し、最終的にはエッジAIへ——という道筋は、そのまま組み込み・IoTエンジニアのスキルアップの階段になります。まずは本体1台とENV Unitを用意して、画面に温湿度を出すところから始めてみてください。
📚 M5Stack・IoT電子工作をさらに学ぶための書籍
画面付きマイコンでのセンサー実装やネットワーク通信を体系的に学べる書籍です。
※ 当ボックスのリンクはアフィリエイト広告(Amazonアソシエイト・楽天アフィリエイト)を含みます。
🔧 この記事で使う主な機材(M5Stack)
- M5Stack CoreS3(ESP32-S3・タッチ液晶搭載の本体)
- M5Stack Core2 / Basic(定番の本体)
- ENV IV Unit(温湿度・気圧センサー/Groveで接続)
- Grove接続ケーブル・拡張Unit各種
※ 本体・Unitは型番改訂が多いため、上記はAmazon検索リンクにしています。技適マーク付きの正規品を選んでください。
※ 当ボックスのリンクはアフィリエイト広告(Amazonアソシエイト)を含みます。
※本記事にはアフィリエイト広告(PR)を含みます。掲載する製品情報・仕様は公開時点の公式情報等にもとづきますが、最新の価格・在庫・仕様は各販売ページでご確認ください。

