本文へジャンプします。

IoTデバイスハブ + RDBで蓄積した温湿度データをData Visualizer(β)で可視化してみた

こんにちは。ニフティクラウドでエンジニアをしている竹内です。

2016年10月25日にリリースされた新機能「ニフティクラウド Data Visualizer(β)」は、IoTデバイスや業務システムなどから生み出されるビッグデータを「見える化」し、アクションの「自動化」につなげるクラウド型BI(Business Intelligence)ツールです。

今回はこのData Visualizer(β)を利用し、IoTデバイスハブ + RDBで蓄積した自分の部屋の温度をグラフとして可視化してみました!

前回のサーバー不要! タイマー+スクリプトで定期処理を自動化 | ニフティクラウドブログと同じく、今回も一切サーバーを構築・運用することなく、データを描画するところまでできましたのでご紹介させていただきます!

こんな感じです

結果からお見せするとこんな感じになりました。6月~11月くらいまでの僕の部屋の温度の移り変わりを可視化することができました。上が温度で下が湿度になります。
(これだけだと地味すぎてなんのことやらという感じですが、温度だけでなくお客様がお持ちの任意のデータを可視化することができます!)

裏側の仕組みとしては、下記のようになっています。

  1. 自宅に置いたデバイスがIoTデバイスハブのSmart Module for RDBへとイベントを送信します。
  2. Smart Module for RDBが自動的にニフティクラウド RDBのDBサーバーへデータを蓄積します。
  3. Data Visualizer(β)を利用し、DBサーバーに蓄積されたデータを非常にカンタンに可視化することができます。

IoTデバイスハブ + RDB側の設定

IoTデバイスハブ + RDBの設定については、下記を参考に適宜行いました。
クラウドユーザーガイド(IoTデバイスハブ:RDBスマートモジュールを利用する) | ニフティクラウド

下記がハマりポイントですが、それ以外はドキュメント通りに設定すればうまく行くはずです。

なお、Data Visualizer(β)側でタイムゾーンを日本とした状態でデータを閲覧するために、下記も合わせて設定しておくと便利です。
MySQLエンジンでタイムゾーンをUTCから他のものに変更することは可能ですか? | ニフティクラウド

Raspberry Pi側の設定

次にRaspberry Pi側の設定を行います。今回は温湿度データを取得するためにdht11という廉価で入手しやすいセンサーを利用しました。
Raspberry PiとDHT11の接続については下記を参考にやったらうまくいきました。

Temperature monitoring with Raspberry Pi and DHT11/22 temperature and humidity sensor - Documentation - Documentation
DHT11 Humidity & Temperature Sensor Module | UUGear

あとは拙作のdht11-to-modeというプログラムをRaspberry Piにデプロイしていきます(詳細はこちらをご参照ください)。

$ cd /home/pi/
$ wget https://dht11-to-mode.jp-east-2.os.cloud.nifty.com/dht11-to-mode
$ chmod a+x dht11-to-mode

次に/home/pi/.envに設定情報を書き込みます。

MODE_ENDPOINT=http://iot-device.jp-east-1.api.cloud.nifty.com/
MODE_DEVICE_ID=${デバイス ID}
MODE_DEVICE_API_KEY=${デバイス API キー}
INTERVAL=${情報取得間隔 (秒)}

この状態で配置したバイナリを実行すると情報取得が開始されます。

$ sudo ./dht11-to-mode
2016/07/17 06:24:51 [dht11] Triggering event: {HomeId:0 Timestamp:0001-01-01 00:00:00 +0000 UTC EventType:dht11-start EventData:map[value:1] OriginDeviceId:0 OriginDeviceClass: OriginDeviceIp:}
2016/07/17 06:24:52 [dht11] Triggering event: {HomeId:0 Timestamp:0001-01-01 00:00:00 +0000 UTC EventType:dht11-temperature EventData:map[value:30] OriginDeviceId:0 OriginDeviceClass: OriginDeviceIp:}
2016/07/17 06:24:52 [dht11] Triggering event: {HomeId:0 Timestamp:0001-01-01 00:00:00 +0000 UTC EventType:dht11-humidity EventData:map[value:45] OriginDeviceId:0 OriginDeviceClass: OriginDeviceIp:}
2016/07/17 06:24:52 [dht11] Triggering event: {HomeId:0 Timestamp:0001-01-01 00:00:00 +0000 UTC EventType:dht11-retried EventData:map[value:0] OriginDeviceId:0 OriginDeviceClass: OriginDeviceIp:}

Data Visualizer(β)で可視化してみる

さて、ここまで設定するとRDBのテーブルに温湿度データが続々と溜まり続けます。
だいたい7月~10月の間に動かしてみたところ、29万件ほどのデータが溜まりました。

mysql> select count(*) from mytable;
+----------+
| count(*) |
+----------+
|   295699 |
+----------+
1 row in set (0.05 sec)

こちらのデータをData Visualizer(β)を使って可視化してみます。

まずは、適切な名前でプロジェクトを作成しましょう。

次に、上記でデータが蓄積されたRDBの接続情報を入力し、rdbmysqlという名前でデータソースを作成します。

さらに、上記のrdbmysql データソースから、どんな切り口で可視化を行いたいのかを指定するクエリを作成します。

ここでは、期間中の毎日正午の温度を取得するために下記のようなSQLを入力してみました。

select *
  from mytable m, mytable_type t
 where t.name = "dht11-temperature"
   and m.timestamp like '%12:00:%'
   and m.event_type_id = t.id;

ここまできたらあとはグラフを作成するだけです。

上記操作を行うことで、冒頭にも掲載したようなグラフが描画できるようになりました。

まとめ

IoTデバイスハブ + RDBで蓄積したデータを Data Visualizer(β)で可視化することができました。
上記の通り、デバイス以外のサーバー操作は一切行う必要がなく、非常に便利です。

今回すべての機能を紹介できませんでしたが、MySQL以外にもPostgreSQL/MongoDB/Web上のURLをデータソースとすることもでき、特定の条件にマッチした場合にアラートメールを送信するといった設定も可能です。
詳しくはクラウド技術仕様(Data Visualizer(β)) | ニフティクラウドをご参照ください。

ぜひニフティクラウド Data Visualizer(β)をお試しください!

ニフティクラウド 導入相談窓口
ニフティクラウド 無料セミナー

閉じる

閉じる

クラウドブログ編集部

クラウドブログ編集部

ニフティクラウド ユーザーブログ編集部のアカウントです。 編集部からのお知らせや、レギュラーライター以外のゲストによる寄稿記事を掲載していきます。

浜中 慶

浜中 慶

1980年、神奈川県生まれ。2003年ニフティ入社。 ポータルサイト開発を中心に、音楽配信サービス、CGMサービスなど様々なプロジェクトに企画/デザイン/システム担当として参加。現在は@niftyのポータルサービス向けコンテンツ管理システムの企画/開発/運用を担当。

吉田 雄哉

吉田 雄哉

株式会社co-meetingの創業メンバー。「取締役&External- facing Technologist」と名乗り新しいIT技術を広く伝える活動とWebアプリケーション開発を行う毎日。パッケージベンダーでのSaaS立上げ・製造業の情報システム部門で企画やPM・受託開発と従事してきたため、ベンダーサイドとユーザサイド の両方の視点を持ち合わせる。

石田 健亮

石田 健亮

株式会社ドリーム・アーツで小売事業者向けSaaS「Shopらん」を企画、開発。メインの仕事はプログラマーだがサーバー管理や営業もこなすユーティリティプレイヤー。最近好きな事はパフォーマンスチューニング。特に並列化プログラミングがマイブーム。キライなことはデータセンターでの作業。騒音と乾燥が弱点。ニフティクラウドでデータセンターに行く必要が無くなったことが本当の利点だ と思っている。

五月女 雄一

五月女 雄一

ニフティでは「インフラを守る簡単な様で奥が深いお仕事」をしています。 夢はインフラの気持ちが読めるエンジニアになること。

わたなべ かずひろ

わたなべ かずひろ

専門学校卒業後、ソフトウェア開発会社で電力系統制御システムの開発に従事。その後、CD-ROM等マルチメディア系PCソフトの開発を経て、1998年フリーランスに。 2000年8月に株式会社イーツーの設立に参画。携帯を含む様々なWeb系のシステム開発に携わる。現在はiPhone/Androidアプリなどの開発も手がけている。

市角

市角

ニフティクラウドのコントロールパネル設計・開発をメインに、たまにインフラの運用やお手伝いもやっていたりします。コントロールパネルや新機能の活用方法、アイデアなどを中心に書いていく予定です。

仲山 昌宏

仲山 昌宏

歌って踊れるインフラエンジニア兼、PHPもRubyもJavaも書くPerl使い。 物理サーバの運用に飽きて、フルラックに格安サーバ詰めて自宅プライベートクラウドを構築中。 今年は個人的には分散処理を攻めていきます。

猪飼 賢広

猪飼 賢広

1984年、愛知県名古屋市生まれ。大学は福島県にある某大学。2008年ニフティに入社。 開発系部署に配属後、主に各種テーマサイト開発のシステム面調整、開発進行管理役などとして参加。 現在もPC・ガラケーサイトの開発まわりを担当。インフラまわりを触る案件にも携わっており、日々修行中。 好きな芸人はなかやまきんに君とレイザーラモンRG。

久江 裕之

久江 裕之

ニフティクラウドのインフラ運用、OS提供の仕事をしています。 新しいOSやイメージが出る時にこのブログでご紹介いたします。入社5年目。一流のインフラエンジニアを目指して日々勉強中。

竹内 豪

竹内 豪

ニフティクラウド エンジニア

山口

山口

ニフティクラウドの基盤設計、新サービス/アライアンス/インフラ企画、その他雑用全般を担当しています。 クラウドに欲しい機能や、こんなふうに使ってほしいという想いが共有できれば良いですね。

芳中 隆幸

芳中 隆幸

ニフティクラウドの開発、運用を担当しています。

酒井 浩平

酒井 浩平

ニフティクラウドの中にいます。 ネットワークまわりの運用・開発や自動化などに取り組んでいます。 すべてのエンジニアを幸せにすることを目指しています。

higebu

higebu

ニフティクラウド IaaSのエンジニアです。 ネットワーク、DRサービス with VMware vCloud® Air™ Technology辺りの担当をしています。

武田

武田

ニフティクラウドの開発・運用を担当しています。 各種機能の内容についてなどで執筆させていただく予定です。

森藤 大地

森藤 大地

データに関する仕事が好きです。

宮原徹

宮原徹

日本仮想化技術株式会社 代表取締役社長兼CEO。仮想化技術に関するコンサルタントとして長年活動しており、特にベンチマークテストによる性能評価を得意としている。

荒谷翔

荒谷翔

株式会社はてなでMackerelのセールスデベロッパーとして勤務しています

東條 望

東條 望

2014年にニフティへ中途入社。 入社後から現在まで、ニフティクラウドのサービス企画・開発を担当しています。 各サービスの紹介を執筆させていただく予定です。