見出し画像

RaspberryPi カメラで画像を撮影してLINEで送信する

はじめに


ラズパイは様々なデバイスを組み込んで様々な用途に使用することができます。その応用編として、ラズパイにカメラを取り付けることが可能です。撮影した画像はただ単に保存するだけでなく、インターネットに接続して撮影した画像を自分のLINEアカウント宛に自動送信させることが可能です。今回は、その環境の構築方法を紹介します。

Raspberry Pi パイカメラインストール


 使うのは前回と同様に「Raspberry Pi model 3B」(以下、ラズパイ3)です。なお、現在「Raspberry Pi model 4」が出回っていますが、現在安定して動作検証しているのはmodel3Bですので、こちらでご紹介します。 OSは2020-02-13-raspbian-buster-full を使っています。 

 ラズパイ3にOSをインストールしてカメラを使えるようにする方法は前回記事を参考にしてください。

LINEのトークンを取得する


 まずはLINE側の準備から始めます。これには「LINE Notify」という公式の通知連携サービスを使います。基本的に無料のアカウントで利用することができます。

 LINE Notifyにアクセスして自分のLINEアカウントでログインします。

画像2

次に「トークンを発行する」を選びます。

画像2

トークン名、通知を送信するトークルームを選んでください。

画像3

トークンが発行されます(網で塗りつぶしています)。

画像4


トークンは必ずコピーして控えてください。これでLINE側の設定は完了です。


ラズパイにプログラムをインストールする


次はラズパイ側の準備です。ラズパイがWIFIに接続されていること、カメラで静止画を撮影できることを確認してください。
Pythonで以下のコードを作成します。

import requests
import time
import picamera

with picamera.PiCamera() as camera:
camera.resolution = (1024, 768)
camera.start_preview()
# Camera warm-up time
time.sleep(2)
camera.capture('my_picture.jpg')

fname='my_picture.jpg'

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

message =  "picture" 
payload = {"message" :  message} 
files = {"imageFile": open(fname, "rb")} 
r = requests.post(url, headers = headers, params=payload, files=files) 

作成したプログラム sendImageLine.py
をラズパイのpiフォルダ直下に置きます。ターミナルで以下のコードを実行します。


>python sendImageLine.py


プログラムが正しく動作すると、カメラで撮影した画像がLINE経由で送られていると思います。

まとめ


今回はラズパイの応用編として、カメラで画像を撮影しLINE経由でおくるというプログラムをご紹介しました。発展編としてラズパイに人感センサーを接続し、人が近づいたら画像をLINEにおくるという使い方も可能ですね。

カメラキットのご案内


この記事でご紹介した、ラズパイ3カメラキットをご用意しております。
オプションでこのsendImage2Line.pyを同梱します。

ラスベリーパイ3 カメラキット




この記事が気に入ったらサポートをしてみませんか?