Help us understand the problem. What is going on with this article?

センサーデータのGoogle IoT Coreを利用した可視化方法

More than 1 year has passed since last update.

2018年9月にGoogle Cloud NEXTへ出展した際のデモ内容となります。
センサーデータのGoogle IoT Coreを利用した可視化方法を検討したので、書き残しておきます!

可視化までの流れは以下の案を検討しました。

案1 Cloud IoT Core→Cloud Pub/Sub→Cloud Dataflow→BigQuery→GAS→Spreadsheetで表示

案2 Cloud IoT Core→Cloud Pub/Sub→Cloud Dataflow→Logstash→Elasticsearch→Kibanaで表示

案3 Cloud IoT Core→Cloud Pub/Sub→Cloud Dataflow→BigQuery→Tableauで表示

3つの案から、Googleソリューションで完結させることを想定して、案1で作ってみました。

image.png

※IoT CoreヘはGravioからMQTTでデータを送りました。
GravioからGoogle IoT CoreにMQTTで接続(記事作成中)

Google Cloud Platformの各種サービスについて(備忘録)

作り込みに入る前に使ってみて気づいた事をまとめておきます。

Cloud IoT Core

IoTデバイスから受信するデータをGCPに流し込むことができるサービス。
MQTTにも対応している。
https://cloud.google.com/iot-core/

Cloud Pub/Sub

IoT Coreから接続するMQサービス。
複数のトピックを経由させることもできて、経由させることでフィルタリングも可能。
Pub/Subの先はDataFlowに接続する。
https://cloud.google.com/pubsub/

DataFlow

いくつかのサービス間連携がパッケージ化されたサービス
細かく編集するためには、Javaの知識が必要。
今回は、データを流すためだけに使用したので、細かな動作を編集するために必要なフォルダの構造などは把握できませんでした。
https://cloud.google.com/dataflow/

BigQuery

クエリ処理を高速にできるデータウェアハウス。
ただし、細かい設定は時間がかかりそう。
https://cloud.google.com/bigquery/

以上が、使ってみての各サービスの印象です。

Google IoT CoreでCloud Pub/Subに接続

Google IoT Core上の設定をすることで、Cloud Pub/Sub(MQTT Broker)に接続できます。
レジスタの設定で、トピックを指定するだけです。
Cloud Pub/Sub上の新しいトピックを IoT Core側で作成できるのは便利です。
Pubした結果を閲覧するときは、Functionを設定して、ログを見ることで確認できました。

Cloud Pub/SubからDataFlowを経由してBigQueryヘ

複数のサービスをそれぞれ設定するため、結構混乱しながら作業してました。
順序としては、
1.MQTTの出力データを確認
2.BigQueryのテーブル作成
3.DataFlowの設定
です。
DataFlowの設定は、トピックの指定、BigQueryのテーブルの指定、一時フォルダの指定が必要です。
一時フォルダはStorageにフォルダを作って、その配下にtmpフォルダを作ることで対応可能でした。(ここでStorageも設定していますので、更に触れるサービスが増えた)
トピックで流れているデータ形式と、BigQueryのデータ形式が一緒になるようにします。
もし一緒でない場合は、DataFlowが同じレコードを処理し続ける無限ループに入ります。

ここまで設定ができれば、あとはMQTTを受信したタイミングでDataFlowが動作します。
BigQuery上のデータベースにデータが蓄積されていきます。

データの可視化のために、スプレッドシートヘ

データ自体は、BigQueryでも閲覧可能ですが、可視化したいですよね。
また、クエリのコマンドを覚えるのも大変なので、簡単にデータも見えるようにしておきたい。。
そこで、スプレッドシートからBigQueryに定期的にデータを取りに来るようにしました。
方法は、こちらの記事を参考にしました。

【参考】BigQueryとスプレッドシートとGASと。

スプレッドシートにグラフをつけておくことで、常時可視化ができました。

あとがき

GCPをフルに使ってIoTデータの可視化までやってみました。
ただ、どれを使うにも使い方が違うので、時間がかかりました。(作り終えるまで1日程度)
また、初めて触れたサービスが多かったため、全体の費用想定がしにくく、気軽に始めるには少しハードルがあるかな、と思いました。
ただ、癖をすべて把握できれば、早い、安い、わかりやすいサービスなのは間違いないです!

初心者なので間違いなどがあればご指摘ください。

参考

モノのインターネットの概要
GAになったGCPのCloud IoT Coreでデータの受信から可視化まで一通りの流れを作るぞ!
BigQueryとスプレッドシートとGASと。

mikawan
IoT統合エッジウェア”Gravio”のプリセールス担当をしています。 高専から大学まで電気工学を学び、無線通信を専攻していました。 前職では、通信網工事の計画、通信網の設計といった業務に携わっていました。 Web APIを使用したサービス間連携をいろいろ試しています。
https://www.asteria.com/jp/warp/blog/author/kazumasa-mikawa
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした