##今回の目標
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コードを作成したので、温度をテキストメモに保存させるようにします。
テキストファイルを別で作成し、以下のコードを実行します。
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です(更新日時が変わっていないようであれば、更新ボタンを押します)
##その他参照記事