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 2 3 4 5 6 7 |
$ sudo pip install awscli $ aws configure AWS Access Key ID [None]: ************ AWS Secret Access Key [None]: ************ Default region name [None]: us-east-1 Default output format [None]: json |
1-wireモジュール用の設定
1 2 |
$ sudo vim /etc/modules |
一番下に2行追加
1 2 3 |
w1-gpio w1-therm |
次にbootconfigの設定ですが、念のためコピーを作成しておきます
1 2 3 |
$ sudo cp /boot/config.txt ~/config.txt_org $ sudo vim /boot/config.txt |
一番下に1行追加
1 2 |
dtoverlay=w1-gpio-pullup,gpiopin=4 |
DS18B20の接続
ここで1つ目の問題発生
通販でDS18B20を買ってとどいいたものをろくろく確認もせずにブレッドボードに挿していざ検証っとしたところでセンサーが熱くなってこげくさくなってバチバチに。
よく見るとLM35DZでした。
ちょうどVccが逆になるのですね。いかんですね。
しかたなくもう1種類購入していたDS18B20使用 防水型 温度センサーを使用。
ここで2つ目の問題が発生。
実際のケーブルの色と説明のケーブルの色が違う。。。。。。。
試しながらつないでみて、下記の結果でした。
赤=赤、青=黄、黒=灰
なので、抵抗を経由して、赤を3.3vに、黄をGPIO4に、灰をGNDに接続しました。
シェルスクリプトの作成
1 2 3 4 5 |
$ ls -l /sys/bus/w1/devices/ 合計 0 lrwxrwxrwx 1 root root 0 2月 14 21:39 28-0115905007ff -> ../../../devices/w1_bus_master1/28-0115905007ff lrwxrwxrwx 1 root root 0 2月 14 21:39 w1_bus_master1 -> ../../../devices/w1_bus_master1 |
「28-」から始まるディレクトリ名を確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#!/bin/bash # 「28-」から始まるディレクトリ名を設定 deviceid=28-0115905007ff # Kinensis Firehoseのストリーム名を設定 streamname=days-yama-2017 while [ 1 ] do ( time=`date '+%F %T'` temp=$(awk -F= 'END {print $2/1000}' < /sys/bus/w1/devices/$deviceid/w1_slave) payload='{\"time\":\"'$time'\", \"temperature\":'$temp'}' echo $payload aws firehose put-record --delivery-stream-name $streamname --record="{\"Data\":\"$payload\n\"}" ) & sleep 15 done |
実行!
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認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

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

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


開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
Amazon Linux2のPHPを7.2から7.3へアップデートしました
WordPressのサイトヘルスの推奨に従って使っていないテーマを削除したの推奨 …
-
-
AWS CodeCommitのリポジトリをiPhoneのWorkingCopyアプリから使う
iPhoneからも執筆できるようにしておこうと思いまして、iOSアプリのGitク …
-
-
新規アカウントでAWS Budgetsの設定をしました
新規で組織を作ってAWS Budgetsを久しぶりに設定しました。 作成してすぐ …
-
-
Cloud9のデフォルト設定での権限確認(AWS managed temporary credentials)
Cloud9の環境を作成した際のデフォルトアクセス権限は、環境を作成したIAMユ …
-
-
ENAが有効なEC2インスタンスの帯域幅をiperf3で確認してみた
同じ Amazon VPC 内で Amazon EC2 Linux インスタンス …
-
-
Amazon Glacierのプロビジョニングされた迅速取り出し容量をなぜか購入しました
過去1年ぐらいのAWSコストをCost Explorerで見てまして、10/10 …
-
-
リザーブドインスタンス推奨事項を確認した
マネジメントコンソールで[AWSコスト管理]カテゴリの[AWS Cost Exp …
-
-
Amazon Q Developer for CLIでAWS Diagram MCP Serverを使ってAWSアイコンを使った図を書いてもらいました
MacにインストールしているAmazon Q Developer for CLI …
-
-
API Gatewayから直接 DynamoDBに書き込む
やりたいこと WebページでOやXを押したときに、どっちを押したかをDynamo …
-
-
ヤマムギ vol.9 (AWS)EC2からAWS CLIコマンドを実行してみようハンズオン 手順
このブログは2020/5/5に開催しました、「ヤマムギ vol.9 (AWS)E …