📝

Raspberry Piに接続したWebカメラを使用して自宅の様子をLINEに通知する

2024/04/27に公開1

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ドキュメントをご確認ください。
https://notify-bot.line.me/doc/ja/

Discussion

koko

古いラズパイ が、介護用見守りカメラとして役立ちました。貴重な情報【特にLINE連携】ありがとうございました。