ヤマムギ

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認定 デベロッパーアソシエイト」という本を書きました。

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

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

ad

ad

  関連記事

Intel 82599 VF インターフェイスで拡張ネットワーキングが有効なEC2インスタンスで帯域幅を確認してみました

拡張ネットワーキングが有効なEC2インスタンスとそうではないインスタンスの2セッ …

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

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

ALBのヘルスチェックでPHPとMySQL接続をチェック

当ブログで504エラーが発生して、オートスケーリングにより自動でインスタンスが置 …

VyOSでssm-userからvyosユーザーに切り替える

EC2 VyOSで/etc/resolv.confを設定しました VyOSにSS …

AWS Lambda Layersのアーカイブファイルをダウンロードする

Cloud9にLambda Layersをダウンロードしたかったので検索してみた …

AWS Systems Manager Run CommandでEC2 Linuxのユーザーとカレントディレクトリを確認

AWS Systems Manager Run CommandからEC2 Lin …

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

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

Amazon VPCにオンプレミス検証環境想定プライベートDNSサーバー(BIND)をEC2で起動する

オンプレミス想定の検証で使うために、Amazon VPCにプライベート向けDNS …

kintoneに登録されたアカウントの電話番号にGoogleカレンダーの予定をAmazon Pollyが読み上げてTwilioから電話でお知らせする(AWS Lambda Python)

Google Calendar Twilio Reminder Googleカレ …

5分でAlexaスキルを作る

「JAWS-UG Osaka 第22回勉強会 東西の中の人が語る!!! Micr …