IoT開発をしてみたいけどC/C++での実装はつらたん…な方は一定数いるのではないかと思います。
特に使い慣れたプログラミング言語で実装できたら最高ですよね。
私もまさにJavaScript/TypeScriptでIoTしたいユーザーなので、2021年12月現在時点で目的にあわせ最適なボードとSDKの組み合わせを導き出せるフローチャートを作ってみました。
JSでIoTしたいわけじゃない → Arduino × M5Stackデバイス
ここがYesならArduino IDEなりでC/C++で実装しましょう。
Arduino IDEもv2.0やCLIがリリースされたりと段々と使い勝手が良くなってきていますし、PlatformIOといった選択肢もあります。
(私はC++で実装するときはVS CodeとPlatformIOの組み合わせを使っています)
デバイスとしてはESP32をベースとしたM5Stackシリーズのデバイスがオススメです。
個人的にはM5Stackシリーズは目的に応じて以下の3モデルの中で選択するとよいと思います。
機種 | 価格 | 特徴 |
---|---|---|
M5Stack Basic V2.6 | 5,203 円 | M5Stackと言ったらコレなモデルです。 2インチ液晶やバッテリーもあり単体でも十分ですが「Stack」という名のとおりさまざまなモジュールを積み重ねるだけで使えます。 |
M5StickC Plus | 3,058 円 | M5Stackを全体的に小さくしたモデルです。 こちらも小さいながら液晶・バッテリーも搭載しており、小さくなった分リーズナブルです。 |
M5ATOM Lite | 1,287 円 | ケース付きの状態では最小スペックモデルです。 液晶はなくLEDのみでバッテリーはありませんが、電子パーツを制御することが主目的なら十分な構成です。 |
ここで紹介しているもの以外にもさまざまなモデルが発売されています。
ボードだけで動かしたい → Moddable SDK × M5Stackデバイス
JavaScriptで実装することを考えた場合、まず想像するのがJavaScriptで書いたソースをコンパイルして書き込むケースではないでしょうか。
それを実現したのがModdable SDKです。
ECMAScript2021を99%以上準拠しているとのことです。
過電流検知やボードのみで1A出力したい → obniz × obniz Board
過電流検知や、モータドライバなしにボードのみでモータ制御したいという方にオススメなのがobniz Boardです。
そしてobniz Boardを使う場合プログラム実装はobniz SDKのみです。
obnizもJavaScriptで実装できるのですが先述のModdable SDKのようにJavaScriptのソースをコンパイルするわけではなく、ボードに書き込み済みのOS(obnizOS)に対しネットワーク(obniz Cloud)越しにプログラム(obniz SDK)で制御するしくみです。
基本的にはネットワーク接続できていることが前提の運用ですが、IoTであればネットワーク接続できることは前提ですし、実機への書き込み不要でプログラムを変更可能なことは大きなメリットだと思います。
常時稼働は1台で十分 → obniz × M5Stackデバイス
obnizアカウントを作成すると1台まで無料でobnizOSをESP32デバイスへ書き込んで使用できます。
そのためobniz Boardを持っていなくとも手持ちのESP32デバイスからobnizを利用できます。
とりあえずobnizを試してみたいといった場合にもM5ATOM Liteといった安価なデバイスで気軽に試せます。
複数のデバイスを運用したい → opniz × M5Stackデバイス
1台だけじゃなく複数デバイスを安価に運用したい、そんなケースではopnizがおすすめです。
opnizはobnizっぽいことができるオープンソースIoTフレームワークです。
私もopnizとM5ATOM Liteの組み合わせで自作おうちハックデバイスをいくつか常時稼働させています。
obnizほど機能は充実していませんがオープンソースのためライセンスは不要で、クラウドを経由せずとも直接デバイスとプログラムで通信を行えます。
他にも特徴としてはM5StackのArduinoライブラリをJavaScriptでラップしたような構成となっており、JavaScriptでArduinoライブラリと同じ書き味で実装できることを目指しています。