前回の記事ではラズパイで取得したセンサー値をAmbientに送ってグラフ化しました。
今回はAmbientの代わりにGCPに送り、BigQueryに蓄積してSpreadSheetsでグラフ化してみます。
どうやってデータを持ち回る?
GCPへの入り口で適当なのは・・と探してみると、Cloud Iot Coreといういい感じの
サービスがあり、そこに記載されていた何やら複雑な連携図を参考に作成してみました。
公式の連携図ではCloudDataFlowを使ってBigQueryにInsertすることになっていますが、
これはGCEインスタンスを使い高コスト(?)なので、代わりにCloudFuntionsにします。
ということで、今回のデータフローは次の通りです。
使用したサービスについて
今回使用したサービスの概要は次の通りです。
サービス | サービスの主な機能 | 今回行う処理 |
---|---|---|
IoTCore | IoTデバイスとセキュアな通信を行いデータを収集します。 収集データはPub/Subで配信します。 |
ラズパイからセンサー値を受け取り、Pub/Subに流します。 |
Pub/Sub | 送信者と受信者を多対多で紐づけるメッセージング サービスです。 |
IoTCoreから受け取ったデータをCloudFunctionsに転送します。 |
Cloud Functions |
サーバーレスなNode.js実行環境です。 | センサー値をBigQueryのテーブルにInsertします。 |
BigQuery | 大規模なデータ分析に対応できるデータウェアハウスです。 | センサー値をテーブルに蓄積します。 |
グラフ化した結果
直近12時間分のセンサー値を折れ線グラフにしました。
次のようになりました。
おいらの鼻息でco2濃度が上がる。
作り方
次の記事にまとめましたので参照してください。
- ラズパイで取得したセンサー値をGoogleSpreadSheetsでグラフ化する【Pub/Sub準備編】(2/4)
- ラズパイで取得したセンサー値をGoogleSpreadSheetsでグラフ化する【BigQuery蓄積編】(3/4)
- ラズパイで取得したセンサー値をGoogleSpreadSheetsでグラフ化する【グラフ化編】(4/4)
以上です。