記事内容
安価なIoTトライアルを「やってみた」
IoT(Internet of Things)について語る上では、実際に取り組んで実感する必要があると考えました。とは言いましても、いきなり工場などの現場を舞台にするのは難しいので、まずは仕組み作りに取り組みました。
「センサーデータを収集してデータを可視化する」ことを大きなテーマとして、3つの観点から取り組みました。それぞれのコラム記事でご紹介しています。
[1]センサーデータをクラウド上で可視化する仕組み作り
(ここ)「安価な構成によるIoTデモを実践」
[2]センサーデータを活用して作業状況を可視化する仕組み作り
[3]センサーデータをクラウド不使用で可視化する仕組み作り
ますは背景となる共通の情報をご説明しますが、既読の場合などは下のリンクをクリックすると個別の内容までジャンプします。
個別の内容に進む →
当サイトでは、IT導入を成功に導くためにトライアルを実施することの有効性を提言しました。
その中で、一つの具体例として「安価なIoTトライアル構成」を挙げました。下図になりますが、こうした例に説得力を持たせ、絵に描いた餅に終わらせないために、実際に動作する仕組み作りに取り組みました。
センサーデータをクラウド上で可視化する仕組みの具体化
「安価なIoTトライアル構成の例」の図を具体化する上で、必要となる機器やサービスを選定しました。因みに、「PC」「Wi-Fiルータ」「インターネットに接続する環境」については、既に保有しているものを利用しました。詳細は割愛します。
センサーには「SensorTag(センサータグ)」[1]を、シングルボードコンピュータには「Raspberry Pi(ラズベリーパイ)」[2]を、クラウドサービスには「Bluemix(IBM Cloud:アイビーエム クラウド)」[3]を新たに用意しました。詳細情報を追記します。(金額情報は2017年9月時点)
- 「SensorTag CC2650STK」(1個)\4,000 弱
- 「Raspberry Pi 3 Model B」(1セット)\8,000 弱
- 「Bluemix(IBM Cloud)」(トライアル登録)30日間無料
Raspberry Piについての補足として、「1セット」というのは本体の他に電源コード、microSDカード、ケース、ヒートシンクを含んでいます。また、Raspberry Piの操作をPCからネットワーク経由接続(Tera Term利用)で行いましたので、周辺機器(ディスプレイ、キーボード、マウス)は用意しませんでした。
Bluemix(IBM Cloud)についての補足として、トライアル期間終了後に従量課金の「PAYG モデル」へ移行しましたが、無料枠の範囲内で運用できており、今のところ支払は発生していません。
こうして、実際にデモが可能な環境としては、下図のような具体的構成となりました。
安価なIoTデモの構築について
構成についての話はこの位にして、どのような内容のデモを構築したのかをご説明します。
まずは前提となる作業を済ませます。
- Raspberry Piのセットアップ(インターネットに接続できるようにするまで)
- Bluemix(IBM Cloud)のアカウント作成
そして、肝心の環境構築作業につきましては、IBMが提供している技術資料を参照しました。「SensorTagのデータをRaspberry Pi経由でBluemix(IBM Cloud)へ送信する」といった趣旨の内容に沿って作業を進めました。その結果、ほんの数時間でデータ通信を確立することができました。
ただ、この段階ではクラウド上で確認できたのは、センサーデータの数値の羅列でした。データを人が扱いやすい状態にするには、クラウド上でアプリケーションを作成するのが一般的な流れになります。今回は、Webブラウザ上でデータを可視化するアプリケーションを作成しました。
アプリケーションの作成には「Node-RED(ノード・レッド)」[4]というオープン・ソースのツール(ソフトウェア)を利用するのが便利です。
Node-REDは、様々な機能が定義された「ノード」が多数用意されており、フローチャートを作成するようにノードを繋ぎ合わせて処理を作成して行きます。簡単に済ませようと思えばノードを繋ぎ合わせるだけ(プログラムレス)で作成できますし、複雑な処理が必要であればJavaScriptを記述できるノードも用意されています。
作成したアプリケーション(画面)は下図となります。
画面内容としては、SensorTagが送信するデータをリアルタイムでグラフ化して表示します。
- 動作系センサー値:角速度(ジャイロ)、加速度、地磁気の3軸(X軸、Y軸、Z軸)
- 環境系センサー値:温度、湿度、気圧、照度
- その他:2つの押しボタン(左右)に対するアクション
こうして、センサーデータをWebブラウザ上で可視化するデモを実現できました。
可視化画面のブラッシュアップ情報
初版の可視化画面は、SensorTagのデータをNode-REDで用意されたノードを用いてグラフ化した単純な内容でした。その後、SensorTagやNode-REDの知識が深まることで、新たなセンサー値を収集したり、収集したデータを加工するようになりました。
こうした経験値の向上により、可視化画面もブラッシュアップして更新を重ねて行きました。初版は2017年9月でしたが、2017年12月時点の可視化画面は下図になります。
初版の画面との違いを補足します。
「動作(推移)」列
動作系センサー値の推移を折れ線グラフで表す点は変わりませんが、3軸(X軸、Y軸、Z軸)を重ねたグラフにすることで、9個から3個のグラフにまとめました。
「動作(量)」列
動作系センサー値を推移ではなく(ある時点の)値の大きさが分かりやすい別のグラフで表しています。また、「加速度(合力)」は加速度のベクトル合成を算出してグラフ化しています。
「動作分析」列
センサー値を基に判定や加工を行っています。「動作検知」は加速度としきい値を比較することで、センサーが動いたか止まっているかを判定しています。「姿勢」は加速度を基に、センサーの置かれ方が表向きか裏向きかを判定しています。「方角」は地磁気を基に算出してグラフ化しています。
「環境他」列
「電池」については、センサー(SensorTag自体)の状態を示す電池電圧の値を基に、電池残量を算出してグラフ化しています。
「操作」列
押しボタンへのアクションに対する可視化の利用例を追加しました。「例1」は左右ボタンの押下に伴いポイントも左右に移動します。「例2」はボタン押下に伴いスイッチのOn/Offが切り替わります。「例3」はボタン押下に伴いカウントアップします。
このように、単にセンサー値を表示する段階から、様々な目的に向けてセンサー値を利用する段階にステップアップしたことを示す内容となっております。
なお、SensorTagのような無線マルチセンサーの別製品として「IoT Smart Network Module」[5]を入手していましたので、こちらでもクラウド上にデータ収集して同様の可視化画面を作成しました。
基本的にはSensorTagの可視化画面と同様の内容ですが、違いは機器の構成の差によるものです。IoT Smart Network Module側から見たSensorTagとの違いを補足します。
- 動作系センサーでは、角速度(ジャイロ)に非対応
- 環境系センサーでは、紫外線も計測可能
- センサー自体の状態通知では、電池電圧だけでなく電波強度も通知
- 押しボタンは非搭載
やってみて感じたこと
安価なIoTデモの構築を実際にやってみて、得られた知識は多岐に渡ります。センサーの知識が必要でしたし、IoTを構成する通信技術である「MQTT」[6]や「BLE」[7]にも触れることができました。
また、プログラミングに関しても目的(やりたいこと)が具体的にあると、未経験だった言語(Python、Node.js、JavaScriptなど)でコーディングするようになっていました。言語学習が目的だったらこうは行かなかったでしょう。
IoTは幅広い技術の組み合わせで実現されていることを改めて実感しました。
加えて、最初は簡易に始めて、段々とステップアップ(高度化)させるアプローチが取りやすいとも感じました。それは、可視化画面の更新の様子を見て頂くと形になって表れていると思います。
最初は資料に沿って訳も分からすに作っていましたが、スキルアップすると共に、やりたいことが実現できて行きました。今後もスキルアップによって可視化画面が更に高度化していく様子に注目して頂ければ幸いです。
今回はデータ可視化のデモでした。これは「安価なIoTトライアル構成の例」の図に照らすと、仕組みとしてはほぼ実現できたと思います。しかしながら、図におけるデータ分析の部分までは踏み込めていませんので、この先はデータ分析も手掛けたいと考えています。
但しその前に、より業務イメージに近いIoTデモを構築することを考えています。具体的な業務に紐づいたデータを収集することが、有意義なデータ分析に繋がると考えているためです。具体的な形になりましたら改めてご紹介します。
この記事のまとめ
- 安価なIoTデモ環境を構築した
- センサーデータをクラウド上(Webブラウザ)で可視化するデモを実現した
- やってみて、IoTは幅広い技術の組み合わせで実現されていることを実感した