SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Bluemixではじめてみよう! 「IoT→クラウド」データ活用アプリケーション開発(AD)

IoTセンサーデータから過去の気象データをもとに体感温度を求めてツイートするアプリケーションをつくる

Bluemixではじめてみよう! 「IoT→クラウド」データ活用アプリケーション開発 【第2回】

  • このエントリーをはてなブックマークに追加

 IoT(Internet of Things:モノのインターネット)のセンサーで取得したデータをクラウド上のデータベースに蓄積し、分析・活用するアプリケーションを手軽に始めてみる連載の第2回です。今回は、IBMのPaaS「Bluemix」が提供するIoTデバイス接続サービス「IBM Watson IoT Platform」を経由して受信した温度・湿度データを、DBaaS(Database as a Service)の「IBM Cloudant」へ蓄積し、過去の気象データと照らして体感温度を伝えるメッセージを作成してツイートする、というアプリケーションを作成します。

  • このエントリーをはてなブックマークに追加

サンプルアプリケーションの概要

今回、サンプルとして作成するアプリケーションは「IoTデバイスのデータを受信してデータベースに保存し、保存したデータをもとに気温、湿度の平均値と不快指数を計算して定期的にTwitterへツイートする」というものです。 次の2つのアプリケーションで構成されます。

  • 「IoTデバイスのデータを受信してデータベースに保存する」アプリケーション
  • 「蓄積されたデータをもとに気温や湿度の平均値、不快指数を計算して定期的にTwitterへツイートする」アプリケーション

なお、ツイートするコメントには気温や湿度の平均値、不快指数のほか、それが「何年何月のどこ(日本国内のある地点)と同じくらい」かも、体感温度として加えることにしました。これは、気象庁が公開している過去の気象データと比較して割り出します。

サンプルアプリケーションが出力するツイートの例
サンプルアプリケーションが出力するツイートの例

Cloudantの概要

IoTでは多数のデバイスからシンプルだが大量のデータが送られてくることが想定されます。 しかもデータ構造は、ビジネス要件やデバイスの変化で日々変わる可能性があります。 これらの非構造化・ビックデータを蓄積・利用するには、それらに適したデータベースの選定が必要です。

こうした要件には、JSONデータを格納できるドキュメント型NoSQLデータベースが便利です。 今回、IoTデバイスから送信されてくるデータの格納先として、そうしたデータベースの1つである「IBM Cloudant」を利用することにします。 CloudantはDBaaS(Database as a Service)として提供されており、セットアップなどは不要で、すぐに使い始めることができます。 また、スケーラビリティが高く、利用者は運用管理や保守から解放されます。

なお、CloudantについてはCodeZineの過去記事「エンタープライズ分野で使えるNoSQLのDatabase as a Service『IBM Cloudant』」が参考になります。

Node-REDの概要

Node-RED」は、Node.js上で動作するオープンソースのソフトウェアです。 機能をカプセル化したノードと呼ばれるモジュールが用意されており、ブラウザベースのUIからノード同士を繋げて処理の流れを作成していきます。

Node-REDの画面
Node-REDの画面

直感的に操作できるので、複数のサービスを繋げるアプリケーションのプロトタイプ作成には最適です。 筆者は、タブレットから操作ができる点も気に入っています。

iPad ProからNode-REDを利用
iPad ProからNode-REDを利用

昨年、日本でもNode-REDユーザーグループが発足し、利用促進や情報交換が行われるようになりました。 また、IoTデバイスとして利用可能なRaspberry PiのOSである「Raspbian」にプリンストールされたりと今後の展開が期待されます。

Bluemixではボイラーテンプレート「Node-RED Starter」が用意されているので、すぐに使い始めることができます。 Bluemixのサービスと連携するためのノードも標準でいくつか提供されています。 このNode-RED Starterも利用してサンプルアプリケーションを作成します。

IoTセンサーシミュレーターの準備

IoTデータを活用したアプリケーションを作成をするためには、まずデータを計測・発信するデバイスを準備しないといけません。 身近なものとしては、スマートフォン[1]やArduinoやRaspberry Piの機器を利用する方法があります。

[1]: スマートフォンは位置情報、ジャイロセンサー、加速度計、コンパスなど、センサーの塊です。

ちなみに、昨年開催されたイベントで、筆者は仲間と協力して、Bluemixのサービス(IBM Watson IoT Platform + Node-RED + IBM XPages)を組み合せてドローンを操作・モニタリングするデモを行いました。 ドローンをブラウザベースのコントローラーで操作し、後ろのスクリーンではドローンからのジャイロセンサーのデータを受信して、ドローンの姿勢を3Dモデルでリアルタイムに表示しています。 データの送受信にはIBM Watson IoT Platform(以下、Watson IoT Platform)を利用しました。

Bluemixのサービスでドローンを操作・モニタリングするデモ
Bluemixのサービスでドローンを操作・モニタリングするデモ

ただし、今回はIoTを利用したアプリケーションの作成をすぐ体験できるように「IoTセンサーシミュレーター」を利用します。 IoTセンサーシミュレーターは、Watson IoT Platformの「Quickstart」で用意されているアプリケーションで、ブラウザから操作可能になっています。

試しに、ブラウザでIoTセンサーシミュレーターを開いてください。

IoTセンサーシミュレータ。左から温度、湿度、物体温度の画面
IoTセンサーシミュレーター。左から温度、湿度、物体温度の画面

画面右上の12桁の文字列が「デバイスID」です。アクセスするたび、異なる文字列が表示されます。このデバイスIDを使ってデータを取得します。 画面両端の[<]ボタンや[>]ボタンををクリックすると、画面がTemperature(気温)Humidity(湿度)Object Temperature(物体温度)に変わります。 画面下部の[↑]ボタンや[↓]ボタンをクリックすると、それぞれの数値を変更できます。

また、デバイスIDをクリックすると、IoTセンサーシミュレーターが送信しているデータがグラフで表示されます。 数値を変更してグラフが変化することを確認してみましょう。 IoTセンサーシミュレーターをスマートフォンやタブレットから操作し、PCでグラフを確認してみると[2]、雰囲気がより伝わるかと思います。

IoTセンターシミュレーターで数値を変更した様子(グラフ)をPC上のブラウザで確認
IoTセンターシミュレーターで数値を変更した様子(グラフ)をPC上のブラウザで確認

これで、Watson IoT Platformへのデータ送信側の準備ができました。

なお、今回はシミュレーターを利用しましたが、ご興味のある方はIoTデバイス側のアプリケーションの作成にも挑戦してみてください。 Watson IoT Platform導入記事を解説している本連載の第1回が参考になります。 また、IBM Internet of Things Foundation Quickstartの「物理デバイスをお持ちの場合」にも参考になる情報があります。

IBM Internet of Things Foundation Quickstartの「物理デバイスをお持ちの場合」
IBM Internet of Things Foundation Quickstartの「物理デバイスをお持ちの場合」

[2]: PCでグラフを見る場合には、デバイスIDは手入力してください。

IoTを始めたい方も・本格導入を検討中の方も:おすすめソリューションのご紹介

ビジネスのパフォーマンスを高めようとさまざまな業種・企業で、IoT活用を前提とするプロジェクトが動き始めています。ただし、検討を始めて最初に出てくるのは、こんな要望ではないでしょうか。

「最初は実験的にスタートしたいから、小さく簡単に素早く始めたい」
「実運用に移ったときには10万・100万単位のセンサ/デバイスに対応できるスケーラビリティも確保したい」

これにお応えできるサービス・製品がIBMにあります。ぜひ、下記の資料をご覧ください。(編集部)

次のページ
Node-REDの準備

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Bluemixではじめてみよう! 「IoT→クラウド」データ活用アプリケーション開発連載記事一覧

もっと読む

この記事の著者

吉田 武司(ヨシダ タケシ)

株式会社ソルクシーズ ソリューション部 所属。IBM Notes/Domino 一筋20年。2013年度、2014年度、2015年度IBM Champions for ICS(http://www.ibm.com/developerworks/champion/)に選出される。XPages Extensio...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9282 2016/04/04 02:08

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング