前回の投稿
四流女子大学生がRaspberry Piに手を出してみた[監視カメラ編]
撮った写真をLINEに送ろう!
監視カメラで撮った写真を普段使っているSNSに通知が来たら便利ですよね!
ということで、設定していきます!今回はLINEに通知するよう設定します!
LINE Notifyにアクセス!
まず、LINE Notifyにアクセスし、自身のLINEに登録したメールアドレスとパスワードを登録し、ログインします。
ログインしたら、マイページへ行き、トークンを発行します。
トークン名を入力し、トークルームを選択したら、トークンが発行されます。ここで注意しなけらばならないのが、トークンは一度発行すると二度と発行できないのでかならずコピペしてメモっておきましょう!
Line通知するpythonコードを書く
前回の監視カメラ編で/etc/motion/motion.conf
のon_picture_save
で以下のように指定しました。
# 650行目付近
# 画像保存時に起動するスクリプトの指定
# このあとLineへの通知を行うため、この時点では何もしないpythonファイルを指定しています
# %f は画像ファイル名です
on_picture_save python3 /home/pi/motion/line_notify.py %f
ここで書いたline_norigy.py
に、画像ファイル名を受け取ってLine通知する処理を書いてみます。
import requests
import sys
def main():
url = "https://notify-api.line.me/api/notify"
token = '発行したトークンを張り付ける'
headers = {"Authorization" : "Bearer "+ token}
args = sys.argv
picture = args[1] # ここで引数のファイル名(%f)を受け取ります
message = 'お好みで(書かないとエラー出ます)'
payload = {"message" : message}
files = {"imageFile": open(picture, "rb")}
r = requests.post(url ,headers = headers ,params=payload, files=files)
if __name__ == '__main__':
main()
これだけでできちゃいます!簡単ですね!!!ファイル名を直接指定するのは簡単だったのですが、%fでファイル名が指定されたときに、それをpython側で受け取る方法がわからず、苦労しました。
これでラズパイをお好みの場所において電源を入れれば書いたコメントと共に撮影された写真が表示されます!
感想
監視カメラやっと作り終えることができました!なんだかんだ約1か月かかりました汗今までなんにもやってこなかった自分がここまでできるようになるなんて感動です。ちょっとは四流から脱出できたようなできなかったような、、、(笑)今後もラズパイでほかのこともできたらなぁと思います。また、ラズパイ以外にもやってみたいです。あとpythonの勉強頑張ります。