ようやくM5Stackデビューしました!
M5GO IoT Starter Kit
M5GO IoT Starter Kitとは、M5CoreとUNITと呼ばれる各種センサー類が同梱されているIoTプログラミング学習キットです。
身近なところだと、スイッチサイエンスでも入手可能です。
製品ドキュメント M5Stack – A series of modular stackable development devices
今回は、M5GO IoT Starter KitにいくつかUNITを加えたものを借りることができたので、どんな事ができるのか把握するためにざっと触ってみました。
UIFlow
M5Coreは、ESP32ベースでArduino IDEのほか、UIFlowというBlockyベースのビジュアルエディタでも簡単にプログラミングをすることができます。なので、小学生でもESP32とその周辺機器やネットワークまでお手軽に使えそうです。
画面上部の「</>Python」を選択すると、MicroPythonでもコーディングが可能です。ビジュアルエディタでコーディングしていた人も、Pythonの勉強ができちゃいますね。
というわけで、M5CoreのIMU(加速度、ジャイロ、磁気を計測可能な9軸センサ)を使って傾きを画面に表示してみました。
次に、いくつかUNITも触ってみます。UIFlowの「Units」をクリックすると、UNITの一覧が表示されます。その中から使うUNITとポートなどを指定すると、それに必要なプログラミングブロックも表示されます。
ENV. SENSOR UNIT
気温・湿度・気圧を測定できます。Units > 環境 に関連ブロックが用意されているので、画面に配置したラベルに表示させます。
センサーを手で覆ったあとの温湿度の変化を見ると、それなりにスムーズに測定できてる感じです。
MOTION SENSOR UNIT
MOTION SENSOR UNITはいわゆる人感センサー。PIR(Passive Infra Red)赤外線センサーともいって、周囲の温度変化を感知して動作します。プログラムはたったこれだけ!
TOF UNIT
UNITには「DISTANCE VL53L0X」とも表記されていますが、距離を測るセンサーです。単位はミリメートルのようです。
RGB LED UNIT
3つのLEDをそれぞれカラー制御することができます。
ANGLE SENSOR UNIT
これは、センサーというより0〜1024までをダイヤルで指定するUNITのようです。
LIGHT UNIT
明るさを、アナログ値とデジタル値で取得できるセンサーです。
EARTH UNIT
土壌の湿度を計測するセンサーです。水に浸して動作させてみました。
というわけで、いずれのセンサーもブロック一つもしくは1〜2行で値が取得できてしまいました。
お手軽すぎて改めてびっくりです。
MQTT
M5GOで取得した計測値をMQTT(Message Queuing Telemetry Transport)を使って転送してみました。
MQTTブローカーにはCloudMQTTを使いました。
M5Stackでは、
- CloudMQTTに接続
- ループ
- 温度、湿度、気圧を測定し、変数に格納
- M5Stackの画面に表示。
- パブリッシュする。
- 1秒停止
という処理をしています。
Subscribe側は、iPhoneのMQTToolというアプリを使いました。
M5Coreの計測値が、iPhoneへスムーズに転送されてきました。
感想
M5GOはUIFlowでESP32の敷居を下げてくれるとても良くできたIoTキットだと感じました。サンプルコードやチュートリアル動画もたくさん用意されているし、もちろん、キット以外のUNITやモジュール、アクセサリやベースなど多岐にわたったパーツが用意されているし、それ以外の入出力を使うこともできるので、拡張性はまさに無限大です。まずはキットを購入してから、色々試しながら少しずつパーツを買い足していくのが良いかも。
同じBlockyベースなプログラミング環境を使うmicro:bitがSTEM用途メインなのに比べて、M5GO(M5Stack)はSTEMからIoTのプロトタイピングまで十分カバーできそうです。
というわけで、今回はM5Stackの基本的な使い方がわかったので、もう少しモクモクしてからCoderDojoでも紹介してみたいと思います!
- M5Stack
- M5GO IoT Starter Kit
- M5 Stack – YouTube
- M5GO IoTスターターキット – スイッチサイエンス
- CloudMQTT – A globally distributed MQTT broker
- IoT時代のプログラミング(主にMQTTについて)
- MQTT の仕様 | Learning | MAGELLAN Dev Center
コメントを残す