🙌

『M5Stack Core2 for AWS - ESP32 IoT開発キット』入門 前編 〜開封の儀〜

2021/05/25に公開

Qiitaにも投稿してます→【2021年4月版】『M5Stack Core2 for AWS - ESP32 IoT開発キット』 入門 前編 〜開封の儀〜

M5Stack Core2 for AWS が到着いたしました。

「M5Stack Core2 for AWS」がやっと?入手できましたので環境準備と言いますか、"Getting Start"を動かしてどんな風に動いているのか、確かめてみたレポートをお届けしたいと思います。

まずはパッケージ、ですがスイッチサイエンスのサイトでは8000円以上で送料無料なので本体以外にも追いセンサしてしまい。。。

IMG_0449.png
どーーーん!!

・・・はい、M5Stack初心者ですがどっさり購入してしまいました。

しかしあらためて感じるのは非常に小さい、ということですね。カタログのスペック考えたら色々てんこ盛りなのにこのコンパクトさ。
分かりにくいですが、以下のようなサイズ感です。

P_20210429_220321_1.jpg

下に敷いてあるPCはMacBookの13インチ、右側のiPhoneはSEなので小さいやつです。
で、M5Stack Core2と追いセンサ達です。
非常にコンパクトでパワフル、といった感じでございます。

これらのスペックというかセンサーは以下のようなものでございます。

  1. M5Stack Core2 for AWS

https://www.switch-science.com/catalog/6784/

  • ESP32-D0WDQ6-V3。最大240MHzのXtensa32ビットLX6デュアルコア
  • 2.4 GHz Wi-Fi
  • Bluetooth 4.2 BR/EDR、BLE
  • 16 MB Flash、8 MB PSRAM
  • ATECC608Aハードウェア暗号化チップ内蔵
  • 2.0インチの静電容量性タッチスクリーン
  • SPM1423デジタルマイク
  • 内蔵スピーカー
  • プログラム可能な10個のSK6812 RGB LED
  • 6軸IMU(慣性計測ユニット)兼温度センサ
  • 振動モーター
  • microSDカードスロット(最大16GB対応)
  • 500 mAhリチウムバッテリ
  • 電源ボタン、RSTボタン
  • 画面前面にはプログラム可能な仮想タッチボタン3個
  • USB Type-C x 1
  • GROVE PORT-A,HY2.0-4P PORT-B,C
  • 底面の充電用POGO PINでI2C可能

2.環境センサユニット ver.2(ENV II)

https://www.switch-science.com/catalog/6344/

  • SHT30高精度デジタル温湿度センサ
  • BMP280絶対大気圧センサ

3.赤外線送受信ユニット

https://www.switch-science.com/catalog/5699/

  • 赤外線発信器
  • 赤外線受信器

4.PIRセンサユニット

https://www.switch-science.com/catalog/5697/

  • パッシブ型赤外線センサ

5.回転角ユニット

https://www.switch-science.com/catalog/6551/

  • 10kΩポテンショメーター搭載つまみ

・・・です。
特にCore2の全部盛り感がハンパないです。てんこ盛りです。
また追いセンサについてもぼちぼちご紹介できればと思います。

環境構築

手元の環境は以下の通りです。

  • macOS Big Sur 11.3
  • Core i5 1.4GHz
  • 8G DDR3
  • VS Code

で、AndroidにESP RainMakerアプリを入れています。

Macでの始め方はAWSサイトの公式ガイドに従えばそのままちゃんと動きました。

https://edukit.workshop.aws/jp/getting-started/prerequisites/macos.html

さらっと流れをご紹介いたしますと、

  1. macOS用のSilicon Labs CP210x driverをこちらダウンロードしてインストール。
  2. セキュリティの警告&確認でますが、許可
  3. PC再起動(しなくても認識してたけど念の為)
  4. VSCodeのExtensionsから'PlatformIO'を検索してインストール
  5. VSCode再起動
  6. https://github.com/m5stack/Core2-for-AWS-IoT-EduKit.git をクローン
  7. USB-CケーブルでCore2とMacを接続
  8. PlatformIOの'Devices'リストからCore2が接続されているUSBポートのIDをメモっておく
  9. スマホでアプリストアから'ESP RainMaker'を検索してインストール
  10. ESP RainMakerでアカウント作るかGitHubアカウントなどでログインして、使えるようにしておく

でOKです。
Core2に付属のケーブルはType-C=Type-A変換ケーブルでMacには刺さらないので、Macに付属のType-Cだけのケーブルで接続しています。
良好です。

いや、準備も簡単ですね〜。。。

Getting Start を動かしてみる。

さて、準備が整ったところで早速、"Getting Start"プロジェクトを動かしてみましょう。

https://edukit.workshop.aws/jp/getting-started/run-rainmaker.html

  1. クローンしたリポジトリのGetting-Startedプロジェクトを開く
  2. PlatformIOからターミナルを開きpio run --environment core2forawsを叩く
  3. pio run --environment core2foraws --target uploadを叩く
  4. pio run --environment core2foraws --target monitor を叩く
  5. 先ほどメモったUSBポートのIDを入力

でしばらく待ちます。
ただし、uploadしてからCore2の画面に灯が灯る前にmonitorしないとQRコードのログが流れてしまうので要注意です。uploadしたらさっさとmonitorしておきましょう。

スクリーンショット 2021-04-29 22.30.14.png

後はスマホでBluetoothとWi-Fiをオンにし、ESP RainMakerアプリから"Add Device"でQRコードを読ませるとCore2と通信してゴニョゴニョとセットアップをやってくれます。

通信時のログではAWSのMQTTに接続していることが読み取れます。

[0;32mI (178777) app_wifi: Provisioning successful␛[0m
␛[0;32mI (178807) esp_rmaker_mqtt: Initialising MQTT␛[0m
␛[0;32mI (178807) esp_rmaker_mqtt: Connecting to xxxxxxxxxxxxx-ats.iot.us-east-1.amazonaws.com␛[0m
␛[0;32mI (178807) esp_rmaker_mqtt: Waiting for MQTT connection. This may take time.␛[0m
␛[0;32mI (181317) esp_rmaker_mqtt: MQTT Connected␛[0m

なるほど、Core2からAWS IoT CoreのMQTT経由している、ということが確認できました。
MQTTについては以下の公式ドキュメントもあとで読んでおこう・・・

https://docs.aws.amazon.com/iot/latest/developerguide/mqtt.html

というか今更ですがこれ、Wi-Fi 環境必須ですね。まぁ、無ければPCにUSBのWi-Fi挿してそっちを親機にする、とかでなんとかなりますか。

さて、しばらくするとCore2側で以下のような画面に変わります。

IMG_0451.png

そして、スマホのRainMakerアプリでは、

Screenshot_20210429-223203762.jpg

のように3つの"機器"が追加されました。
どうやらこの3つの"機器"をスマホからリモートでコントロールできるようなイメージなんですね。なるほど!

これらの"機器"をタップすると詳細が表示されます。
まず、'Light'から見てみましょう。

Screenshot_20210429-223306337.jpg

機器の名称とオンオフ、そしてHSVでの調光が可能な模様です。

試しにLightをオンにしてゲージを以下のようにいじってみると

Display_House_Light_Control.png

画面に表示されているのお家の窓の色が変わります。Core2本体に付いているLEDの色も変わります。

Display_House_Light.png

芸が細かい!ただしLEDを直接カメラで撮ると白く飛んでしまうので反射光で感じてください。。。
多少のタイムラグは当然ありますが(MQTTでus-east-1まで飛んで帰ってきてるんで)、スマホの操作で機器がリモート操作、双方向通信できてるのが確認できます。

続いてFanの機器を見てみましょう。

Screenshot_20210429-223322256.jpg

こちらは換気扇をエミュレート?しておりまして、PowerをONにすると振動モーターが回ります。
スピードも5段階調整できます。
ちなみにこれはCore2の前面のタッチパネルからも操作できます。
振動モーターが起動するとFanが回っているアニメーションに変わります。

Display_Fan_Roll.png

スピードに合わせてFanのアニメーションも回転速度が変わります。こちらも芸が細かい。
振動モーターがブリブリ回っているのをお伝えできないのが誠に残念です。。。

最後にTemperature Sensorです。

Screenshot_20210429-223315818.jpg

これはそのまま温度計、ですね。ただしCore2内部の温度ですので、画面では摂氏(C)表記ですが室温とはズレがあります。
画面の温度計も温度に連動してバーが上下しています。

Display_Thermometer.png
さきほどのLEDを点灯させているときの画像と比べると微妙に温度計の目盛りが変わっているのがわかると思います。細いのでわかりにくいですが・・・

"Getting Started"プロジェクトの動作確認は以上です。ざっくりですが、機器とスマホがそれぞれどのような動きをするかのイメージは掴んでいただけたかと思います。

それでは後編として、"Getting Started"プロジェクトの中身について探っていきたいと思います。

Discussion