見出し画像

【ラズパイ活用術】Raspberry Piで簡易的な監視カメラを作ってみた

こんにちは!エアリー社員のFです!

今回は、Raspberry Piで簡易的な監視カメラを作ってみます!
ペットや防犯のためなど、簡単な監視カメラを作りたい人におすすめです。

1.今回使用するソフトについて

今回は、「MJPG-Streamer」というソフトを使用して監視カメラを作成します。

MJPG-Streamerは、カメラ映像のWeb配信を行うためのLinux向けソフトです。

MJPG-Streamerの特徴として、CPUやメモリの容量が少ないデバイスでも、快適に動作する事があげられます。
Raspberry Piのような、少ないリソースの機器でも動作が安定するため、おすすめです。

2.使用機器

  • Raspberry Pi 3 model B+(Raspberry Pi 4、Raspberry Pi ZeroシリーズでもOK)

  • OSがインストール済みのMicroSDカード(Debian系OSを想定)

  • インターネット接続可能なネットワーク

3.作成手順

(1) MJPG-Streamerのインストール

まず、MJPG-Streamerにて使用する作業ディレクトリを作成します。

$ cd ~
$ mkdir mjpg-streamer
$ cd mjpg-streamer

次に、MJPG-Streamerをインストールします。

$ sudo apt update
$ sudo apt install -y subversion cmake libv4l-dev libjpeg-dev imagemagick
$ git clone https://github.com/jacksonliam/mjpg-streamer.git
$ cd mjpg-streamer/mjpg-streamer-experimental
$ make
$ sudo make install

(2) カメラの接続、MJPG-Streamerの起動

画像のように、Raspberry Pi本体にWEBカメラを接続します。
※Raspberry Pi Zeroシリーズについては、microUSB→USBの変換アダプタが必要です。

Raspberry Pi 3B +とWEBカメラを接続

MJPG-Streamerの起動用スクリプト(start.sh)を作成します。

#!/bin/sh

PORT="8080" #WEB画面のアクセス時のポート番号
WINDOWSIZE="640x480" #画面のサイズ
FRAMERATE="20" #フレームレート
export LD_LIBRARY_PATH=/usr/local/lib
mjpg_streamer -i "input_uvc.so -f $FRAMERATE -r $WINDOWSIZE -d /dev/video0 -y -n" \
    -o "output_http.so -w /usr/local/share/mjpg-streamer/www -p $PORT"

作成後、上記のスクリプトを実行します。

$ sh start.sh

実行後、以下のような内容が表示されます。
Comandsがenableの状態であれば、起動成功です。
※Ctrl + Cで停止する事が出来ます。

i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 640 x 480
i: Frames Per Second.: 20
i: Format............: YUYV
i: JPEG Quality......: 80
i: TV-Norm...........: DEFAULT
i: FPS coerced ......: from 20 to 30
o: www-folder-path......: /usr/local/share/mjpg-streamer/www/
o: HTTP TCP port........: 8080
o: HTTP Listen Address..: (null)
o: username:password....: disabled
o: commands.............: enabled

(3) MJPG-Streamerの表示

ブラウザから、以下のURLにアクセスします。
http://(Raspberry PiのIPアドレス or ホスト名):8080

以下のような画面が表示されれば、アクセス成功です。
カメラの映像を見る場合は、「Stream」をクリックします。

MJPG-Streamer:WEB画面

4.使用感について

実際に映像を表示してみましたが、ほとんどラグが無く、画像も綺麗に映っているため、実用に耐えうるものだと思いました。
外出先などから確認したい場合は、ルータのポート開放やNATの設定が必要になりますが、「室内の監視用に使う」「録画ソフトで常時部屋の様子を記録」等の使用用途には優れていそうです。

筆者の手を映してみたところ(gif)

5.まとめ

いかがでしたでしょうか?
今回は、MJPG-Streamerを使用して、簡易的な監視カメラを作成してみました。
コマンドの実行のみで、簡単に構築が出来るのは良いですね。
ご自宅にラズパイが余っている方、ラズパイを既に使用している方は、是非お試しください!

おまけ:MJPG-Streamerの自動実行

自動でMJPG-Streamerを起動したい場合の設定方法です。

(1) 起動バッチをサービス登録

サービス登録用ファイル(mjpg_streamer.service)を作成します。
※作業ディレクトリのパスについては、お手持ちの環境に合わせ、変更してください。

[Unit]
Description=WebIOPI
After=syslog.target

[Service]
Type=simple
Restart = no
WorkingDirectory=/home/userxx/mjpg-streamer
TimeoutStopSec=5
StandardOutput=null
ExecStart=/home/userxx/jmpg-streamer/start.sh

[Install]
WantedBy = multi-user.target

作成したファイル(mjpg_streamer.service)をサービス管理用ディレクトリ(/etc/systemd/system/)の配下に移動し、サービスとして読み込みを行います。

$ sudo mv mjpg_streamer.service /etc/systemd/system/
$ sudo systemctl daemon-reload

(2) サービスの自動起動を設定

以下コマンドにて、サービスの自動起動を設定します。

 $ sudo systemctl enable mjpg_streamer 

自動起動を停止する場合は、以下コマンドを使用します。

 $ sudo systemctl disable mjpg_streamer

設定後、再起動を行い、自動起動の確認をしてください。

$sudo reboot

※サービスを手動で起動、停止したい場合は、以下コマンドを使用します。

$ sudo systemctl start mjpg_streamer
$ sudo systemctl stop mjpg_streamer



我々、株式会社エアリーは、
千葉で働きたい・頑張りたい人材を募集しております!
新卒採用中途採用どちらも募集しております!
以下HPより、皆様のご応募お待ちしております。
【株式会社エアリー:ホームページ】

この記事が気に入ったらサポートをしてみませんか?