RaspberryPiZeroとmotionEyeで監視カメラを作る

はじめに

こんなものを作った.ザクヘッドの下にRasPiZeroをマウント出来る.

カメラもいい感じに埋め込むことができたので,監視カメラとして利用する.

必要なもの

ザクヘッドはお好みで.

RasPiZeroを固定するのはこれ.ザクヘッドへの差し込み部分の長さは微調整が必要.

OSをインストールする

インストール手順はLinux向けです.ssh設定等など一部の手順はWindowsと共通です.

公式サイトからRaspberry Pi OSをダウンロードします.今回利用するのは「Raspberry Pi OS (32-bit) Lite」です.

ダウンロードしたイメージファイルをSDカードに書き込みます.

$ unzip -p 2020-05-27-raspios-buster-lite-armhf.zip | sudo dd of=/dev/sdb bs=4M conv=fsync

書き込みが完了するとこんな状態になります.

$ sudo fdisk -l /dev/sdb

Disk /dev/sdb: 16.0 GB, 15978201088 bytes, 31207424 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x2fed7fee

デバイス ブート 始点    終点 ブロック  Id システム
/dev/sdb1       8192  532479   262144  c  W95 FAT32 (LBA)
/dev/sdb2     532480 3620863  1544192 83  Linux

boot領域をマウントしてsshの設定をします.FAT32の方がboot領域です.

$ cd ${マウントしたboot領域}
$ touch ssh wpa_supplicant.conf
$ cat wpa_supplicant.conf  # こんな内容になるように編集します
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
    ssid="YourSSID"
    psk="YourPASSWORD"
}

sshファイルがsshを有効化するファイルで,wpa_supplicant.confがWiFiの設定ファイルです.

uSDカードをRasPiZeroに挿して電源をいれます.DHCPで割り振られるIPを頑張って探してSSH接続したら,諸々設定します.カメラモジュールを利用する場合は raspi-config > 5 Interfacing Options > P1 Camera を有効化しておくこと.

pi@raspberrypi:~ $ sudo raspi-config
pi@raspberrypi:~ $ sudo apt-get update && sudo apt-get upgrade

motionEyeをインストールする

motionEyeは動体検知によく利用されているmotionのウェブフロントエンドです.

BuildRootをベースにしたディストリビューションmotionEyeOSも用意されています.

では導入していきます.

motion関連のライブラリを入れます.

pi@raspberrypi:~ $ sudo apt-get install ffmpeg libmariadb3 libpq5 libmicrohttpd12

motionをインストールします.aptでインストールすると4.1がインストールされますが,motionEyeでは4.2を推奨しています.

pi@raspberrypi:~ $ wget https://github.com/Motion-Project/motion/releases/download/release-4.2.2/pi_buster_motion_4.2.2-1_armhf.deb
pi@raspberrypi:~ $ sudo dpkg -i pi_buster_motion_4.2.2-1_armhf.deb

motionEye関連のライブラリを入れます.

pi@raspberrypi:~ $ sudo apt-get install python-pip python-dev libssl-dev libcurl4-openssl-dev libjpeg-dev libz-dev

motionEyeをインストールします.–no-cache-dirオプションをつけておかないとMemoryErrorになるかも.

pi@raspberrypi:~ $ sudo pip install motioneye --no-cache-dir

motionEyeの設定ファイルを配置します.

pi@raspberrypi:~ $ sudo mkdir -p /etc/motioneye
pi@raspberrypi:~ $ sudo cp /usr/local/share/motioneye/extra/motioneye.conf.sample /etc/motioneye/motioneye.conf

systemdを設定して,motionEyeを起動します.

pi@raspberrypi:~ $ sudo cp /usr/local/share/motioneye/extra/motioneye.systemd-unit-local /etc/systemd/system/motioneye.service
pi@raspberrypi:~ $ sudo systemctl daemon-reload
pi@raspberrypi:~ $ sudo systemctl enable motioneye.service
pi@raspberrypi:~ $ sudo systemctl start motioneye

うまく起動したらブラウザで http://$(RasPiZeroのアドレス):8765/ を開く.初期設定はパスワード無しの admin ユーザでログインする.

ウェブ画面から正しいカメラが設定できない場合は設定ファイルを編集してあげると良い.

pi@raspberrypi:~ $ grep videodevice /etc/motioneye/camera-1.conf
videodevice /dev/video0

motionEyeで出来ること

motionEyeの画面はこんな感じです.

ビデオデバイスの設定,ファイルの保存先,画像上に表示するテキストの設定,ストリーミングの設定,撮影の設定,動画の設定,動体検知の設定など,ができます.(ざっくり)

RasPiZeroだと,解像度にもよるけど,フレームレートはだいたい10〜20fps程度だった.もうちょっとチューニングすれば改善するかもしれませんが,RasPiZeroなので良しとします.

おわりに

RasPiZeroでmotionEyeを導入する流れを紹介しました.

シャアザクヘッドがほしい.

参考

Raspberry Pi Zero Wをディスプレイやキーボードなしで初期設定、Wi-Fi接続
新しくRaspberry Pi Zero WHを買ったので初期設定する。 前に買ったRaspberry Pi …

コメント

タイトルとURLをコピーしました