柄スタイル

ここは文系のオッサンがITに立ち向かう所

LINE Notifyを使ってRaspberry PiからLINEに写真を送信

   

LINE Notifyを使ってRaspberry PiからLINEに写真を送信

前回はLINE Notifyを使ってRaspberry PiからLINEにメッセージを送りました。それから写真もLINEに送りました。今回はPythonを使ってLINEに写真を送ってみます。

写真を撮ってLINEに送るプログラム

写真を撮るPythonのプログラムに以下のの行を追加します。このプログラムを実行するとRaspberry Piで撮った写真がすぐにLINEで送られてきます。
このプログラムをcamera_line.pyと別名で保存します。

# ここからLINE送信用

import requests # HTTPライブラリ
import sys

def main():
    url = 'https://notify-api.line.me/api/notify'
    token = 'アクセストークン'
    headers = {'Authorization' : 'Bearer '+token}
    message = '写真を撮ったよ!'
    payload = {'message' : message}
    files = {"imageFile": open(fname, "rb")}
    r = requests.post(url, headers=headers, data=payload, files=files,)
    print(r)

if __name__ == '__main__':
    main()

# ここまでLINE送信用


camera_line.py

Pi Cameraのパラメータ全部入りのプログラムです。省略できるパラメータもあります。田例えばcamera.sharpness = 0はなくても動作します。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from picamera import PiCamera
from time import sleep
import datetime
import requests
import sys

camera = PiCamera()
now = datetime.datetime.now()
camera.capture("/home/pi/Pictures/{0:%Y-%m-%d_%H%M%S}.jpg".format(now))
fname = "/home/pi/Pictures/{0:%Y-%m-%d_%H%M%S}.jpg".format(now)

camera.resolution = (1980, 1080)
# 最大2592*1944
camera.start_preview()
# ディスプレイを繋いでいる時のみプレビュー
camera.annotate_text = "RaspberryPi"
# 画像にテキストを追加する
camera.annotate_text_size = 100
# テキストサイズ6〜160 デフォルトは32
camera.brightness = 50
# 明るさ設定0〜100 デフォルトは50
camera.contrast = 50
# コントラスト設定0〜100 デフォルトは50
camera.image_effect = 'none'
# 画像エフェクト
camera.color_effects = None
# カラーエフェクト
camera.awb_mode = 'auto'
# オートホワイトバランス
camera.sharpness = 0
# シャープネス デフォルトは0
camera.saturation = 0
# 彩度 デフォルトは0
camera.ISO = 0
# ISO デフォルトは0
camera.exposure_compensation = 0
# 露出補正 デフォルトは0
camera.exposure_mode = 'auto'
# 露出モード デフォルトはauto
camera.meter_mode = 'average'
# メーターモード? デフォルトはaverage
camera.rotation = 0
# 画像の回転
camera.hflip = False
# 水平反転
camera.vflip = False
# 垂直反転
camera.crop = (0.0, 0.0, 1.0, 1.0)
# ?
sleep(3)
camera.stop_preview()

# ここからLINE送信用

def main():
    url = 'https://notify-api.line.me/api/notify'
    token = 'アクセストークン'
    headers = {'Authorization' : 'Bearer '+token}
    message = '写真を撮ったよ!'
    payload = {'message' : message}
    files = {"imageFile": open(fname, "rb")}
    r = requests.post(url, headers=headers, data=payload, files=files,)
    print(r)

if __name__ == '__main__':
    main()

# ここまでLINE送信用


まとめ

写真のプログラム、LINEへ送るプログラムを合わせて簡単に作ることができました。これをcronで定期実行すれば定点観測カメラになりますね。外出中にペットの様子を知りたいときに使えるかもしれません。 次回はシャッターを作ります。

 - Raspberry Pi , , ,