Raspberry Piに接続したWebカメラから撮影した画像をLINEに通知できるようにします。
更に、家の外から自宅の様子が通知できるようなシステムを作ります。
- WebカメラとRaspberryPiとの連携方法
- 屋外から自宅の様子を確認する方法
システムの概要
今回システムで使用するアイテムは以下のとおりです。
ハード
- Raspberry Pi
- iPhone ※屋外から写真を取りたい場合
- Webカメラ(Logicool Webcam C270)
ソフト
- Homebridge(Homebridge Alexa)
- Alexa ※屋外から写真を取りたい場合
- fswebcam ※Raspberry Piにインストール
- LINE
Alexaを使用して外から指示する仕組みは以前記事で紹介しています。

システムの概要は以下のとおりです。
①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の場合は、1280×720 - –no-banner
-
バナーを非表示にする。
このオプションを指定しないと、以下のようなバナーが表示される。
LINEに画像を送信
画像を撮影することができたので、撮影した画像をLINEに送信します。
LINEのAPIを使用する方法は以前紹介しています。

使用するコマンドは以下のとおりです。
#!/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ドキュメントをご確認ください。

屋外から写真を撮影を指示
Homebridge UIのコンフィグにアクセサリ追加
①Homebridge UIのコンフィグから、LINEの通知をしたコマンドを書いたシェルスクリプトを指定します。

②Homebridgeを再起動

再起動すると追加したアクセサリが表示されます。

Alexaに追加
AmazonでHomebridgeのスキルを検索して、「スマートホーム端末の管理」を選択します。

「検出」をクリックします。


追加したアクセサリが表示されたら成功です。

スマホに追加した「take a picture」が追加されます。

これをクリックするとLINEが送信されます。

参考サイト
fswebcamの使い方はRaspberry Piの公式ドキュメントを参考にしました。

コメント