ヤマムギ

growing hard days.

*

DS18B20センサー+Raspberry Piで取得した温度をAmazon Kinesis FirehoseからS3へ格納してAthenaでクエリーしたのをQuickSightで可視化する

   


JAWS DAYS 2017でやりますハンズオンの「[IoTハンズオン] Raspberry Pi + Athena + QuickSightで可視化」の事前検証をしました記録です。

こちらの個人ブログでは検証の記録をしているのみです。

ハンズオン当日は親切丁寧なQiitaの記事を見ながら、分からないところはメンターに質問してもらいながら進めていただきますのでご安心ください。

Amazon Kinesis FirehoseのためのIAMユーザ

AmazonKinesisFirehoseFullAccessのポリシーを付与したユーザーを作成して、Access Key IDとSecret Access Keyを控えておくかユーザ作成時のCSVを保管します。

Amazon Kinesis Firehoseの設定

Desination : Amazon S3
Delivery stream name : 任意
S3 bucket : 任意
Buffer interval : 300
IAM role : Firehose delivery IAM role

Raspberry Pi

AWS CLIをインストールして設定

1-wireモジュール用の設定

一番下に2行追加

次にbootconfigの設定ですが、念のためコピーを作成しておきます

一番下に1行追加

DS18B20の接続

ここで1つ目の問題発生

通販でDS18B20を買ってとどいいたものをろくろく確認もせずにブレッドボードに挿していざ検証っとしたところでセンサーが熱くなってこげくさくなってバチバチに。

よく見るとLM35DZでした。

ちょうどVccが逆になるのですね。いかんですね。

しかたなくもう1種類購入していたDS18B20使用 防水型 温度センサーを使用。

ここで2つ目の問題が発生。

実際のケーブルの色と説明のケーブルの色が違う。。。。。。。

試しながらつないでみて、下記の結果でした。
赤=赤、青=黄、黒=灰

なので、抵抗を経由して、赤を3.3vに、黄をGPIO4に、灰をGNDに接続しました。

シェルスクリプトの作成

「28-」から始まるディレクトリ名を確認

実行!

S3確認

出来てます!

Athenaでクエリーテーブル作成

[add table]からデータベースとテーブルを作成しました。

  • Database : Create new database
  • Name : jawsdays2017
  • Table Name : sensor
  • Location of Input Data Set : s3://days-yama-2017/

  • Data Format : JSON

  • Column1 : time : timestamp

  • Column2 : temperature : float

QuickSightで可視化

QuickSightではAthenaで作成しているS3にアクセス許可をしておきました。
[Manage QuickSight] – [Account Settings] – [Edit AWS permissions]

Athenaのデータセットを作成

New Data SetでAthenaを選択

データベースとテーブルを選択

Import to SPICEを選択

Analysisでごにょごにょ

Visual typesで折れ線グラフを選んで X axisにtime(HOUR),Valueにtemperature(AVERAGE)を設定してあっという間に気温遷移のグラフが完成です。


最後までお読みいただきましてありがとうございました!

【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。

【PR】 「AWSではじめるLinux入門ガイド」という本を書きました。

【PR】 「ポケットスタディ AWS認定 デベロッパー - アソシエイト」という本を書きました。

 - AWS, IoT , , , , , , , , ,

ad

ad

  関連記事

API Gateway 作成済REST APIの定義をSwaggerの形式でエクスポート

SAMで似たようなAPIを作りたくて、エクスポートしました。 Swaggerは、 …

AWS Summit 2016 Tokyoに参加してきました (Day3)

飛天3日目です。 JAWS-UGブースのすぐ前にあったこのお水がめちゃめちゃおい …

AWS CDK とにかくサンプルでやってみる

Cloud9でAWS CDK環境で作った環境でサンプルプロジェクトからのデプロイ …

T2.microからT3.nanoに変更(メモリエラーも対応)

このブログのEC2インスタンスをT2.micro 1インスタンスからT3.nan …

Amazon Elasticsearch ServiceにMySQLのデータを投入してkibanaで可視化してみる

MySQLのデータの可視化にAmazon Elasticsearch Servi …

Redmineの添付ファイルをS3に同期する

RedmineをAWS上で構築するデザインを考えていて、せっかくなので冗長化しよ …

RedmineをELB(ALB)でAutoScalingグループへ負荷分散

高可用なRedmineを作るためのELBの設定です。 高可用なRedmine R …

特定AWSアカウント特定リージョンのSNSトピックを削除するLambda(Python)

やりたいこと 特定アカウント内特定リージョン内のSNSトピックを全部削除したいで …

ヤマムギ vol.8 (AWS)EC2でLinuxサーバー構築ハンズオン 手順

ヤマムギとは from Mitsuhiro Yamashita 「AWSではじめ …

webフォームからの問い合わせをRedmineに自動登録して対応状況を管理する(API Gateway + Lambda)

先日、検証目的で作成したRedmineの冗長化の一機能として、webフォームから …