さて、どんなシステムを使ってIOT化するか。
「IOT」とは Internet Of Things の略で、
いろんな電子機器をインターネトに繋げて、管理したり情報を集めようというものです。
一番身近なものは「スマートフォン」ですね。
必須の機能は「無線通信が可能」であることです。
私が今まで使ってきた「マイコン」はここに書いてあるものですが、Arduinoはそれだけでは通信ができません。
機能と将来性と、一番大事な価格を考えると「M5」シリーズしか私には選択肢が無い・・・
2枚上の写真の
オレンジ色の製品が「M5 Stick-C」で1800円程度
灰色が「M5 Atom-lite」で1000円弱
(価格は購入当時。現在は値上げされてますね・・
当時は本当に儲け度外視の値付けでした。)
オレンジ君は電池内蔵で各種センサーと液晶表示を持つ万能選手です。
だが、周辺機器を内蔵している関係で、使える入出力用のピン数が少ないという弱点があります。
他にもフル装備の「M5Stack」という選択肢もあるのですが、目的からすると重装備過ぎるし高価
ということで、発売直後でネット資料は少なかったけど「M5 Atom-lite」を購入しました。
M5Stackに内蔵されているESP32というチップの解説書は広島市図書館に蔵書があったので、とりあえず借りて読みました。
ネット上でもほぼ同じ情報が筆者によって公開されてます。
M5Stackシリーズの中で最もコンパクトな開発モジュールで、サイズはわずか24 x 24 mmです。M5StickCに比べGPIOピンを多く持ち、小型の組み込みデバイス開発に適しています。メインコントローラとして、ESP32-PICO-D4チップを搭載しているので、Wi-FiとBluetooth、4 MBの内蔵SPIフラッシュメモリを利用できます。
本製品は、赤外線LED、 RGB LED、ボタン、Grove互換コネクタを備えています。さらに、六つのGPIOを介してセンサやモーターなどに接続できます。給電はType-Cコネクタから。
プログラム作成に使える環境は、
「ブロックエディタ」という「Scratch」を源流としたビジュアルな環境「UI-Flow」です。
表示を切り替えると「micro Python」での開発も可能です。
ただし、「UI-Flow」はベースとなるファームウエアプログラムを予め入れておく必要があることと、センサー製造会社がブロックパーツを提供していない場合は、利用ができない(私には)という不利な面があります。
なので、これは使いません。(Stick-C上では使っていますけど)
「M5」シリーズ(Atom-lite)での開発は、真面目に取り組む場合は、「ArduinoIDE」と言いう専用のアプリケーションを使用します。
これはC言語を基本としたもので、何十種類ものArduino亜流マイコンに対応した開発環境です。
昔ながらの命令を手で入力していくもので、入力アシスト機能はありません。
(次期バージョンがあるようですが、改善されてるかも。)
各メーカーが開発用のライブラリなどをGitHub辺りで提供していますので、ここからダウンロードしてArduinoIDEシステムへインストールします。
M5を作ってる会社はものすごい勢いで新製品を発売するので「ESP32」では動かなかった。
とにかくネット上の情報が古くて、かなり迷いました。全部英語だし・・・
かなり四苦八苦して、プログラムを作成するまでにこぎつけました。
「Hello World」は初めてのCプログラムのお約束ですね。
#include "M5Atom.h"
void setup() {
M5.begin();
Serial.begin(115200);
}
void loop() {
M5.update(); // update button state
Serial.print("hello world\n");
delay(1000);
}