「Bluemix」とIoTサービス「IoT Foundation」を使い、20分足らずでセンサー連携アプリケーションを作成
木村氏がデモンストレーションとして立ち上げたボイラープレートには、Node.jsのアプリケーションサーバとNoSQLのデータベースが動いており、さらに「Node-RED」 という入力・出力・処理などの多彩なブロックを組み合わせるだけでデータのワークフローを作ることができるツールが含まれている。必ずしもIoT専用ツールというわけではないが、IoTデバイスやセンサーからのデータを簡単に取り込むことができる。
さらに、木村氏はIBM のクラウドサービス「IoT Foundations」で提供されている「オンラインIoTシミュレータ」を紹介。MACアドレスを持つセンサー付きIoTデバイスがクラウド上でソフトウェアとして提供されており、温度や湿度などの情報変更やMACアドレスによる数値取得が可能になっている。
このIoTシミュレータをエアコンの温度を監視するデバイスに見立て、Node-REDの入ったIoT用ボイラープレートを使って実際に「異常監視システム」をセッション中に作ろうというわけだ。
まず、IBM Bluemixにログインして、「カタログ」の「ボイラープレート」カテゴリから、「Node RED Starter」を選択し、IoTシミュレータのMACアドレスを取得しておく。そして、Node-RED エディタ画面で、"ibmiot"(IoT機器からの入力)のブロックを選択してホワイトボードに設置し、ダブルブロックして編集状態にしたところで取得したMACアドレスを設定すれば、もうこのブロックは、IoTセンサーシミュレータをエミュレートしていることになる。
さらに"function"(関数処理を設定する)、"switch"(分岐を設定する)、"debug"(出力する)、"Cloudant"(データベースに追加する)といったブロックを組み合わせ、フローチャートを作る。さらにBluemix のダッシュボード画面でデータベースを追加して、"Cloudant"の設定を行えば、IoTシミュレータからのデータが蓄積していくというわけだ。
ここまでの作業にかかったのは、わずか10分程度。ソースコードは1行も記述せずに、画面上でのドラッグ&ドロップと属性値の設定程度で、IoTシミュレータからのセンサーデータを受け取って、特定の条件に基づいて分岐させ、データベース内に格納・アラートを上げるといったシステムが構築できた。もちろん、IoTシミュレータのMACアドレスを実際の機械のセンサーに変えれば、そのまま実際のシステムとして使うこともできる。
また、それぞれのブロック内でJavaScriptを直接コーディングすることももちろん可能だ。しかしながら、それではワークフローとして見えにくく、他者からの把握が難しい。Bluemixを使ったIoTアプリ開発は、ブラックボックス化しないという意味でも有用というわけだ。
木村氏は「BluemixのIoTサービスとして用意されているMQTTを使って、センサーに負荷をかけることなく容易に連携ができ、さらにNode-REDによって『動くフローチャート』を作成することで、プログラミングをせずともスピーディにアプリケーションが構築できる」とまとめ、IoT活用におけるBluemixの有用性について強調し、セッションを終えた。
お問い合わせ
日本アイ・ビー・エム株式会社