Raspberry Piに接続したWebカメラを使用して自宅の様子をLINEに通知する
Raspberry Piに接続したWebカメラから撮影した画像をLINEに通知できるようにします。
更に、家の外から自宅の様子が通知できるようなシステムを作ります。
システムの概要
今回システムで使用するアイテムは以下のとおりです。
必要なもの
-
ハード
- Raspberry Pi
- iPhone ※屋外から写真を取りたい場合
- Webカメラ(Logicool Webcam C270)
-
ソフト
- Homebridge(Homebridge Alexa)
- Alexa ※屋外から写真を取りたい場合
- fswebcam ※Raspberry Piにインストール
- LINE
システムの概要は以下のとおりです。
①AlexaからHomebridgeAlexaを通じで、Raspberry PiのHomebridgeから画像取得のスクリプトを実行します。
②fswebcamからWebcam C270で撮影します。
③撮影した画像をLINE Notifyによって、LINEに通知します。
以下のコマンドでfswebcamをインストールします。
$ sudo apt install fswebcam
fswebcamとは
カメラのキャプチャ画像を取得できるコマンド
カメラ接続確認
Webカメラを接続してRaspberry Piを起動します。
lsusbコマンドで、Webカメラを認識できているか調べます。
lsusbはUSBに接続されているデバイスの一覧を表示してくれます。
$ lsusb
Bus 001 Device 006: ID 046d:0825 Logitech, Inc. Webcam C270
fswebcamで撮影
インストールしたfswebcamで撮影します。
「fswebcam+ファイル名」で、指定したファイル名で撮影し、保存されます。
fswebcam -S 10 -r 1280x720 --no-banner 001.jpeg
解像度やスキップするフレームを指定しないと画像が暗くなります。
オプション | 説明 |
---|---|
-S フレーム数 | スキップするフレームレートを指定できる。Webカメラによってはオートフォーカスしてくれる。 |
-r 解像度 | カメラの解像度。Webcam C270の場合は、1280x720 |
--no-banner | バナーを非表示にする |
「--no-banner」を指定しないと、以下のようになります。
LINEに画像を送信
画像を撮影することができたので、撮影した画像をLINEに送信します。
使用するコマンドは以下のとおりです。
#!/bin/sh
fswebcam -S 10 -r 1280x720 --no-banner 001.jpeg
curl https://notify-api.line.me/api/notify -X POST -H "Authorization: Bearer XXXXX(トークン)" -F "imageFile="@001.jpeg -F "message="capture
メッセージのみを送るケースとの違いは、「"imageFile="@001.jpeg」によって、画像を設定していることです。
ファイルを指定する場合は、@を付ける必要があります。
LineNotifyの仕様により、”message”を指定する必要があります。
画像のみの通知はできないようです。
APIの使用方法は公式のAPIドキュメントをご確認ください。
Discussion
古いラズパイ が、介護用見守りカメラとして役立ちました。貴重な情報【特にLINE連携】ありがとうございました。