2
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.

スマートホーム目指してラズパイ触ってみた(3) 〜LINE連携&温度通知編〜

Last updated at Posted at 2021-08-09

##今回の目標
LINE Notifyを使って、自分のLINEアカウント宛に温度を通知させる

他の記事はこちら
スマートホーム目指してラズパイ触ってみた(1) 〜ラズパイ4+SenseHatセットアップ編〜(Qiita)
[スマートホーム目指してラズパイ触ってみた(2) 〜Macからリモートデスクトップ接続編〜(Qiita)]
(https://qiita.com/keilog/items/76117db977ce5096ac19)
[スマートホーム目指してラズパイ触ってみた(4) 〜Amazon S3 (AWS CLI)連携編〜(Qiita)]
(https://qiita.com/keilog/items/a7894275daf151686a86)
[スマートホーム目指してラズパイ触ってみた(5) 〜Amazon S3 + QuickSight連携編〜
(Qiita)]
(https://qiita.com/keilog/items/c1d0b69c3892904e48eb)

##Step1 : LINE Notifyでアクセストークンを取得する

まずアクセストークンを取得するために、LINE Notifyにログインします。
https://notify-bot.line.me/ja/ (LINE公式サイト)
手順は下記記事を参考にしました。

※発行したトークンは1度しか表示されないので、テキストメモなどに控えておきます。(うっかり失くした場合は、新たにトークンを再発行できます。)

LINE Notifyをブロックしていたら解除します。
またLINE Notifyが友だちにいない場合は、以下のQRをスマートフォンで読み取って追加可能です。
image.png

##Step2 : SenseHatで測定した温度をLINEに通知させる
SenseHatで測定した温度は、以下のコードで確認できます。

ラズパイ拡張モジュールのSenseHatについてはこちらの記事をご参考ください。
スマートホーム目指してラズパイ触ってみた(1) 〜ラズパイ4+SenseHatセットアップ編〜(Qiita)

temp_check.py
from sense_hat import SenseHat

sense = SenseHat()
sense.clear()
temp = sense.get_temperature()

msg1 = "現在の温度"
msg2 = "℃です。"
message = "{0}:{1:.1f}{2:}".format(msg1,temp,msg2)

print (message)

実行すると結果がShellに出力されます。

現在の温度:31.7℃です。

この出力結果をLINEに通知させたいので、上記のコードと組み合わせて下記のように記載します。

temp_line_notify.py
from sense_hat import SenseHat

sense = SenseHat()
sense.clear()
temp = sense.get_temperature()

import requests
url = "https://notify-api.line.me/api/notify"
token = "取得したトークン"
headers = {"Authorization" : "Bearer "+ token} 

msg1 = "現在の温度"
msg2 = "℃です。"
message = "{0}:{1:.1f}{2:}".format(msg1,temp,msg2)

payload = {"message" :  message} 
r = requests.post(url, headers = headers, params=payload)

print (message)

「取得したトークン」の箇所にはメモしておいたトークンをコピペします。
実行(Run)すると、実行結果がLINEに通知されるようになります。

##おまけ
温度を定期的に通知させたい場合は、ラズパイのターミナルで下記コマンドを打ちます。

編集モードになるので、以下のように間隔とファイル名を記述します。

■毎分ごとに通知させたい場合

例)*/1 * * * * python3 /home/pi/temp_line_notify.py

■30分ごとに通知させたい場合

編集したらCommand+Xで終了します。

これを行うと設定した間隔で通知されますが、停止しない限りずっと通知が来るので、停止させたい場合は同じコマンド(#sudo crontab -e)で編集して、該当行をコメントアウト(#)します。

##その他参照記事
[ラズベリーパイ4でcronを動かす(Qiita)]
(https://qiita.com/gdate/items/bdf6c620404679063211)

ITmedia NEWS:名刺サイズの超小型PC「ラズパイ」で遊ぶ
https://www.itmedia.co.jp/news/articles/1912/01/news009.html
https://www.itmedia.co.jp/news/articles/2009/15/news037.html
https://www.itmedia.co.jp/news/articles/2009/16/news021.html

2
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
2
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?