※本記事はIoTに初めて取り組む方向けの内容になります。
超音波風速計ULSA M5BはM5Stackを直接ドッキングすることができ、ユーザーの興味に応じて様々な風速センシングのアプリケーションを実装することができます。
前回の記事では、以下のようなアプリケーションのうち、1.と2.についてスケッチを交えてご紹介しました。
- ULSA M5B内蔵の9軸センサーを使用した風向補正
- M5StackのLCD画面にグラフィカルな風向・風速の表示
- M5Stackのスピーカー機能で一定の風速を超えると警報音を発する
- M5StackのmicroSDカードスロットを利用した長時間の風況記録
- M5StackのWi-Fi機能を利用してクラウド上にデータを配信
- M5StackのBluetooth機能を利用してスマホに風況を送信
また以下の記事では4.のSDカードを使用したデータロギング機能の実装について紹介しています。
今回の記事では、5.のような、M5Stack(ESP32)の「ワイヤレス接続機能」を活用し、IoTプロジェクトを超簡単に作成する方法をご紹介します。
ESP32は2.4GHzのワイヤレス接続機能を持ち、Wi-FiやBluetoothを使用した高度なアプリケーションを構築できます。
今回はWi-FiとArduino IoT Cloudを組み合わせて、ULSA M5Bを超簡単にIoTデバイスに変身させる方法を紹介します。
(難易度的にはArduinoの基本操作がわかるレベルであればArduino IoT Cloudも問題なく使えます)
記事は前後編に分け、前編ではArduino IoT Cloudの導入、後編では実際のスケッチ例を紹介します。
Index
「クラウド変数」で誰でも簡単IoT
IoT(Internet of Things)はあらゆる場面で語られるバズワードになっていますが、ただでさえ複雑な組み込み分野にネットワークの知識が重層的に絡まってくるので、技術的階層が深すぎて全体のシステム構築への道のりが非常に見通しづらいというのが正直なところではないでしょうか。
そのような状況に対して「Arduino IoT Cloud」は専門知識や難しい操作をマスターせずとも、誰でもIoTを構築することができるように様々な配慮がなされています。
Arduinoがこれまでマイコンを触る機会がなかった人たちに組み込み分野への門戸を広げることに成功したように、今度は誰でもIoTを構築できるようにしようというわけです。
IoTでやりたいことは究極的に言えば、マイコンの中にだけ存在するデータ(変数の中身)をネットワークを超えて共有することにあると思います。
その点に関して、Arduino IoT Cloudでは新たに「クラウド変数」という概念を導入することで、IoTの深くて複雑な階層を強力に隠蔽しています。
通常、プログラミングでは関数内のみで参照できる「ローカル変数」、プログラム内のどこからでも参照できる「グローバル関数」がありますが、「クラウド関数」はその名前の通りクラウド上までその範囲(スコープ)が有効になります。
プログラム内で変数を扱うのと同じように、クラウド変数を設定してそこに格納してしまえば、(インターネットさえ繋がっていれば)地球上のどこであってもその変数にアクセスすることができるという訳です。
ただし実際の同期のタイミングはクラウド変数にアクセスした瞬間ではなく、あくまで周期的に変数の中身をネットワークにプッシュしているだけではあるのですが、「クラウド変数」という従来の変数のスコープの拡張概念として抽象化するセンスは、さすがArduinoという感じです。
完全ノーコードでつくれるダッシュボード
IoTシステムの重要な要素の一つがダッシュボードです。ダッシュボードはThings(センサーノードなど)から送信された値を視覚化したり、逆にThingsにコマンドを送信したりする、いわばコンソールのようなものです。
Arduino IoT Cloudは、Thingsの開発には Arduinoスケッチを書く必要がありますが、ダッシュボードの構築に関しては、完全にノーコード(ドラッグ・アンド・ドロップ)で作成することができます。
モバイルデバイスにもつながる・送れる
Arduino IoT CloudのダッシュボードはPC用ブラウザだけではなく、Arduinoから提供されているスマートフォンアプリ(Arduino IoT Remote)からも利用することができます。
このため、iOSやAndroidなどのアプリ作成のノウハウが一切なくてもビジュアライズされたデータを手元で簡単に確認することができます。
これは、複数人がThingsのデータを簡単に参照したいような場合に便利です(屋外でのスポーツで風況データを確認する等)。
Arduino IoT Remote(iOS / Android)
Arduino IoT Remote - iOS App Store
このアプリで特徴的なことが、モバイルデバイス自体もまたThingsとしてデータを送信できるということです。筆者のiPhone13では11種の内蔵センサーのデータをThingsに送信することができました。要するにモバイルデバイスのリッチなセンサーデバイスをThingsの操作や入力に使用できるというわけです。
Thingsどうしでもクラウドでつながる!
Arduino IoT Cloudでは、Thingsからクラウドへの一方向だけではなく、ON-OFFなどのステートや数値入力、照明のRGBカラーなど、双方向で変数の内容を同期することができます。
さらに、Arduinoのサーバーを経由して、Things同士で変数を同期することも可能です。この場合にはダッシュボードを経由する必要はありません。
要するに、単にデータをダッシュボード上に表示して監視する用途だけではなく、一方のThingsで変更したステートをネットワーク越しに他方のThingsに反映することができるので、Thingsを連携・連動させるようなアプリケーションも簡単に作成できるという訳です。
Arduino IoT Cloudのプラン
このように非常に楽ちんなArduino IoT Cloudですが、やはりクラウドサービスを使用する以上は一定レベルを超えると月額サブスクリプションに加入する必要があります。なんだ結局サブスクか、と思ってしまいますが、IoTの複雑なシステムを学習して自前で構築するコストをまるっと隠蔽してくれることを考えれば悪くない選択肢ではないでしょうか。
Arduino IoTは以下のようなプラン形態となっています。
無料(Freeプラン)でも最低限のマルチデバイス(2台)を使用したIoTプロジェクトを作成することができます。
月額5.99ドルのMakerプランが最もお得なようで、25台のデバイス(Things)を扱うことができるようになるほか、サーバーでのデータ保存期間が90日間まで伸びます。さらに、第2軸や複数のパラメーターを表示できるAdvanced Chart(高度なグラフ)の利用が可能になります。
とにかく簡単にIoTシステムを構築できるので、まずはFreeプランから触ってみることをおすすめします。
Entryプラン以上ではOTA(Over the Air)でスケッチ書き込みができる!
さらにEntryプラン以上では、Arduino Web Editorから、M5Stackを含むワイヤレス接続機能を持ったArduinoボードにOTA(Over the Air)書き込みができる機能が利用可能になります。
IoTではThingsが遠隔に設置されていることが一般的なので、離れたThingsのファームウェアを手元で修正できれば、保守や開発作業をぐっと効率化することができます。
OTA用に新たにライブラリを導入する必要すらなく、Arduino IoT Cloudを使用したスケッチが稼働していれば、ユーザーは特に意識することなく書き込みボタンを押すだけでアップロードができるようになります。
Arduino IoT Cloudで「つながるULSA」
専門知識不要で、さらにモバイル対応も簡単なArduino IoT Cloudを使えば、超音波風速計ULSAを簡単にIoTデバイスとして化けさせることができます。高精度な超音波風速計がインターネットに接続できるとどのようなアプリケーションを実現できるでしょうか、ここではいくつかの例を上げてみたいと思います。
人が集まる場所の換気・感染対策
「適切な換気量や換気方向の維持」は効果的な感染対策として現在関心が高まっている分野です。極めて小さな風速でも風向を含めて検知できる超音波風速計ULSAを使えば、より効果的な感染対策を講じられる可能性があります。
生産設備のエアフロー管理
製造品の高度化につれて、品質の安定化やコンタミの防止などを目的とした生産設備内におけるエアフロー管理の重要性が高まってきています。普段アクセスできない高い場所や広大なエリアであったとしても、OTAでファームウェアをアップデートすることができれば柔軟な保守や運用が実現できるかもしれません。
均質な栽培環境の構築
施設園芸が行われている植物の中には温湿度や土壌水分量の他に、風量が適切に保たれていることが重要になるものがあります。さらに換気扇や換気口にThingsを取り付け、連動させることも可能です。これまでは難しかった微風の風向検知もできるULSAは、施設園芸にも新しい可能性を拓くかもしれません。
エアスポーツ(ブロードキャスト)
多数の人が分散して飛び立っていくようなエアスポーツでは、個別のモバイルデバイスから風況がモニタリングできると便利です。Arduino IoT Remoteアプリをインストールすれば、適切な風速・風向のタイミングを図ることができるかもしれません。
陸上競技
風はスポーツのパフォーマンスに大きな影響を与えます。陸上競技で用いられる超音波風速計は非常に高価ですが、ULSAであれば教育現場などにも導入できる可能性が広がります。さらにThingsどうしをArduino IoT Cloud上で連携すれば、競技に応じた自動計測システムを自身で構築できるかもしれません。(追風参考記録など)
ULSAがクラウドでつながることでどんなことが可能になるのか、いくつか例を挙げてみました。
これまでの超音波風速計は産業・研究用途に使用され、一般的には全く普及していなかった高価なデバイスでした。
超音波風速計ULSAシリーズは低コストで導入でき、さらにユーザー側で自由にプログラミングできるので、ユーザーのニーズに応じて有機的に連携したり効果的にデータを取得することができるIoTデバイスに変化させることができます。
今回は筆者のわかる範囲で活用アイデアを挙げてみましたが、ULSA+IoTで「こんなことに使えるかも!」というアイデアをお持ちの方はぜひコメントやSNS等でお知らせください!
またULSAの無料貸出プログラムも実施しています。超音波風速計とは一体どのようなものなのかを知りたい方は、ぜひお申し込みください!
次回(後編)では、ULSA M5Bデモ用ArduinoスケッチをArduino IoT Cloudに対応させるための具体的な手順を紹介していきます。
後編記事はこちら
注意・免責事項
- 本記事で紹介するスケッチ(ソースコード)はあくまで参考であり、動作保証はできませんのでご了承ください。
- 本製品によって生ずるいかなるトラブル・損害・損失に対してストラトビジョンは一切の責任を負いません。
- ULSAで取得したデータを「気象観測値」として外部に公開すると気象業務法に抵触するおそれがあります。気象観測業務ではない用途や私的な用途に限ったデータの活用をお願いします。