ヤマムギ

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)を設定してあっという間に気温遷移のグラフが完成です。


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

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「AWS教科書 AWS認定デベロッパーアソシエイト テキスト&問題集 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

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

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

  関連記事

AWS Systems Manager Session ManagerでLinuxインスタンスのRun Asサポートを有効にする

AWS Systems Manager Session Managerの設定画面 …

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

馬込は非常に良い天気です。 泊まっている部屋が2Fでしたので窓を明けると歩いてい …

Feedlyのフィードを自動でSlackへ投稿する(AWS Lambda , Amazon DynamoDB)

やりたいこと Feedlyで共有したいフィードに特定のタグを付けます。 特定のタ …

S3バケットポリシーでクロスアカウントのPrincipalについて確認

確認したこと ドキュメントではこちらで確認しました。 AWS JSON ポリシー …

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

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

ハンズオン: CloudWatch、X-Ray ~AWS認定デベロッパーアソシエイト(DVA-C02)~

このブログは2026年6月29日翔泳社さんより発売される「AWS教科書 AWS認 …

PyCharmにAWS Tool kitをインストールしてサンプルのLambda関数をデプロイして実行しました

この記事はJetBrainsIDE Advent Calendar 2018に参 …

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

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

EC2 Instance Connect エンドポイントの作成

このブログのSystems Managerは機能としてセッションマネージャーしか …

特定のIAMロールをLambda(Python)で削除する

やりたいこと 特定アカウントの特定の名前が含まれるIAMロールをまとめて削除した …