Skip to content

【実装編②】Raspberry Pi Zero Wでペットカメラを作る(motionEye)

こんにちは。

ペットカメラの実装編②について紹介します。
前回はMJPG-Streamerについて解説しましたが、今回は動体検知に対応したmotionEyeをインストールします。

motionEyeの導入方法

概要

motionEyeはMJPEG-Streamerと比べると、動体検知や複数のカメラを管理できる多機能なソフトウェアです。その分、マシンスペックが必要になるためRaspberry Pi zeroで実行するとfpsが10~20になります。

また、motionEyeは、Raspberry Pi OSにインストールする方法とmotionEyeが組み込まれたOSが提供されていますが、今回はRaspberry Pi OSにインストールしました。motionとmotionEyeの両方が必要です。

インストール手順

Raspbian Bulleyeがインストールされていることを前提にすすめていきます。

1. ffmpegとmotionのライブラリをインストールします。

sudo apt-get install ffmpeg libmariadb3 libpq5 libmicrohttpd12 -y

2. motionをインストールします。

cd
mkdir motion
cd motion
wget https://github.com/Motion-Project/motion/releases/download/release-4.3.2/pi_buster_motion_4.3.2-1_armhf.deb
sudo dpkg -i pi_buster_motion_4.3.2-1_armhf.deb

3. motionEyeでmotionサービスをコントロールするため、motionサービスをオフにします。

sudo systemctl stop motion
sudo systemctl disable motion

4. motionEyeに必要なライブラリをインストールします。

sudo apt-get install python2 python-dev-is-python2 -y

curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py

python2 get-pip.py

sudo apt-get install libssl-dev libcurl4-openssl-dev libjpeg-dev zlib1g-dev -y

5. motionEyeをインストールします。

sudo pip2 install motioneye

(オプション)もし、インストールに失敗した場合は以下のリポジトリを使ってインストールしてください。

sudo apt-get install python-pil -y
sudo pip2 install motioneye

6. 設定ファイルのコピー

mkdir -p /etc/motioneye
sudo cp /usr/local/share/motioneye/extra/motioneye.conf.sample /etc/motioneye/motioneye.conf

7. 画像や動画を保存するディレクトリの準備

mkdir -p /var/lib/motioneye

8. motionEyeをサービスに登録して自動起動させる

sudo cp /usr/local/share/motioneye/extra/motioneye.systemd-unit-local /etc/systemd/system/motioneye.service
sudo systemctl daemon-reload
sudo systemctl enable motioneye
sudo systemctl start motioneye

motionEyeにアクセスする

ブラウザからhttp://<ipアドレス>:8765 にアクセスします。

すると、以下のログイン画面が表示されるので、Usernameをadmin Passwordを空白でログインします。

3fadb932 スクリーンショット 2023 07 23 194917

次に、カメラ追加の設定ダイアログが表示されるので、そのままOKをクリックしてください。

3e0ef505 スクリーンショット 2023 07 23 195058

Camera Deviceの修正

私の場合はデバイスが/dev/video10に設定されてしまい、カメラの映像が表示されなかったため、設定ファイルの値を直接書き換えました。

sudo vi /etc/motioneye/camera-1.conf

viでvideodevice /dev/video10 の箇所をvideodevice /dev/video0 に変更します。
(viの画面で/videodevice と検索するとすぐに見つかります)

変更したら、sudo systemctl restart motioneye.service を実行してmotionEyeを再起動します。

再度ログインしたら、以下のようにデバイスが指定されて映像が表示されました。

5cc03b6e image

カメラの設定

以下の設定を変更しました。

[Video Device]
・Automatic Brightness:ON
・Video Resolution:800×600
・Frame Rate:10

動体検知で静止画を撮影する

42d0dc92 image

ペットや人が映り込んだときなど、映像内のフレーム変化の度合いに応じて、静止画を撮影できます。

Motion DetectionとStill Imagesをオンにします。Motion DetectionのFrame Change Threshold を調整して、撮影するタイミングを適切にしてください。画像ではデフォルトの値ですが、15%程度が私の環境では適切でした。

また、Still ImagesのPreserve Pictures から撮影画像をいつまで保持するかを設定できます。その期間を過ぎたら自動で削除されるため、ストレージを圧迫せずにすみます。

動体検知で動画を撮影する

d1b3e7cb image

静止画と同様に、動体検知で動画を撮影できます。静止画では画像が多く生成されてしまうため、動画のほうがおすすめです。

メディアの保存

0fd0c502 image

動体検知で保存した静止画や動画を保存できます。
ローカルだけではなく、Google Driveにも保存できます。便利か。

ストリーミング

765db8a4 image

Video Streamingからストリーミングアドレスを取得できます。

http://<ipアドレス>:8081 から映像のみを表示できます。

ログイン設定

9c1d2572 image

デフォルトだとadminでログインできてしまうため、General Settingsから任意のユーザー名とパスワードを設定することをおすすめします。

motionEyeのアップデート

以下のコマンドでアップデートできます。

sudo pip install motioneye --upgrade
sudo systemctl restart motioneye

おわりに

今回をもってペットカメラ編は終了です。

今回作成したペットカメラは姉の家で飼っている猫ちゃん用に設置する予定なので、実際に撮影できた画像を後日追加したいと思います。

正直、市販のペットカメラを買ったほうが安価で簡単ですが、ラズパイゼロにカメラモジュールをつけて、fpsの調整や動体検知の閾値をグリグリ弄るのも風情がありますね。

さらに、動体検知したらWebhookで通知したり、メールを送ることもできるので、非常に多機能で便利です。今回の記事が参考になれば幸いです。

カテゴリRaspberry Pi

Be First to Comment

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

コメントは日本語で入力してください。(スパム対策)

CAPTCHA