3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

スマートホーム目指してラズパイ触ってみた(4) 〜Amazon S3 (AWS CLI)連携編〜

Last updated at Posted at 2021-08-09

##今回の目標
SenseHatの測定結果をテキストファイルに保存して、Amazon S3に送る。

他の記事はこちら
ラズパイ触ってみた(1) 〜ラズパイ4+SenseHatセットアップ編〜(Qiita)
[ラズパイ触ってみた(2) 〜Macからリモートデスクトップ接続編〜(Qiita)]
(https://qiita.com/keilog/items/76117db977ce5096ac19)
[ラズパイ触ってみた(3) 〜LINE連携&温度通知編〜(Qiita)]
(https://qiita.com/keilog/items/b0ef6161628c544ed6c3)
[ラズパイ触ってみた(5) 〜Amazon S3 + QuickSight連携編〜
(Qiita)]
(https://qiita.com/keilog/items/c1d0b69c3892904e48eb)

##Step1:測定結果をテキストファイルに保存させる
前回温度を表示させるPythonコードを作成したので、温度をテキストメモに保存させるようにします。
テキストファイルを別で作成し、以下のコードを実行します。

temp_log.py
from sense_hat import SenseHat

sense = SenseHat()
sense.clear()
temp = sense.get_temperature()
temp2 = "{0:.1f}".format(temp)+""

import datetime
date = datetime.datetime.now().strftime("%Y/%m/%d,%H:%M")

print(date,temp2)

fw = open("作成したファイル名", "at", encoding='utf-8', newline='\n')
fw.write("\n")
fw.write(date)
fw.write(" ")
fw.write(temp2)
fw.close()

うまくいけば、以下のように作成したファイルに日付、時間、温度が保存されます。
(コードを実行するたびに、追記されていきます)
2021/08/08,18:23 32.1℃
2021/08/09,22:22 32.0℃

※自動で定期的に測定結果を保存させたい場合は、前回記事に記載したcrontabコマンドを利用する方法で実行可能です。
[ラズパイ触ってみた(3) 〜LINE連携&温度通知編〜(Qiita)]
(https://qiita.com/keilog/items/b0ef6161628c544ed6c3)

#Step2:Amazon S3でバケットを作る
AWSのコンソールにログインし、S3のバケットを作成します。

■ AWSアカウント作成手順(AWS公式サイト)
https://aws.amazon.com/jp/register-flow/

■ AWS S3バケット作成 (AWS公式サイト)
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/creating-bucket.html

今回S3バケットのアクセス設定はIAMユーザーだけに制限しています。
※パブリック公開設定だと他の人からもアクセスできるため、アクセス設定には要注意です。

S3連携のためにアクセスキーとシークレットキーが必要になるので、IAMにて取得します。
参考:S3のアクセスキーとシークレットキーを作る方法
https://off.tokyo/blog/s3-aws/

#Step3:ラズパイからS3に連携させる

ラズパイのターミナルで以下コマンドを実行します。

sudo pip3 install awscli --upgrade

下記コマンドでインストールされたことを確認できます。

以下コマンドを打つとアクセスキーやシークレットキーの入力を求められるので、先ほど発行したキーを入力します。

aws configure

AWS Access Key ID →発行したアクセスキー
AWS Secret Access Key →発行したシークレットキー
Default region name → 東京であれば"ap-northeast-1"
Default output format → 今回は"None"としました

下記コマンドでバケットが確認可能です。

Step1で作成したテキストファイルをS3に送信します。

aws s3 cp /home/pi/[ファイルが入っているディレクトリ名]/[ファイル名] s3://[設定したバケット名]

S3のコンソール画面にアクセスして更新されていたらOKです(更新日時が変わっていないようであれば、更新ボタンを押します)
スクリーンショット 2021-08-10 1.29.44.png

##その他参照記事

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?