ヤマムギ

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入門ガイド」という本を書きました。

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

ad

ad

  関連記事

Amazon Pollyを使って覚えたい資料を耳から身体に染み込ませる

Amazon Pollyを使うとソースコードを一切かかなくても、テキストを音声に …

Microsoft TeamsのIncoming Webhooksを使ってAWS Lambda(Python)からFeedlyの記事を自動投稿する

Microsoft Teamsの検証を始めましたので、Slackで自動化している …

EC2とRDSのMySQLを他のAWSアカウントへ移設する

他のAWSアカウントへシステムごと移設した場合の手順です。 構成はEC2とRDS …

SendGridのイベントをAPI Gateway -> Lambda(Python) -> DynamoDBに格納する

SendGridのメールイベントログはコンソールで確認出来るのは直近7日分で一括 …

AtomエディタでEC2のファイルを直接編集する

Webページを編集していてEC2のファイルをvimエディタでさわったりしています …

ACM(AWS Certificate Manager)の承認メールを受け取るためにAmazon SESを設定する

何のためでもいいのですが、ドメインは持っているけど、そのドメイン宛にメールを送ら …

RDSのスナップショットをS3へエクスポートが日本語マネジメントコンソールでもできるようになってました

RDSスナップショットをS3にエクスポートする新機能を試そうかと思ったのときは、 …

AWS EC2 Amazon Linuxにmauticをインストールする(Sendgrid, Nginx, MySQL on RDS)

mauticをAmazon LinuxとNginx,MySQL on RDSにイ …

RDS for MySQL のインスタンスタイプ変更

当ブログのデータベースは、RDS for MySQLです。 個人利用ですし、障害 …

kintoneでEveryoneに権限が設定されているアプリをAWS Lambdaで一括チェックする

こないだ、kintone Cafeでユーザーが自由に作成している環境だと、どんな …