RaspberryPiの初期設定が終わったので、Webカメラをつないで監視カメラを作ってみた
環境
- RaspberryPi: RaspberryPi 3 Model B
- Webカメラ: Logitech C270
手順
カメラの接続確認
1 カメラが接続されていることを確認する
$ lsusb
2 接続しているカメラの名前が表示されていることを確認
...
Bus 001 Device 004: ID 046d:c069 Logitech, Inc. M500 Laser Mouse
Bus 001 Device 007: ID 046d:0825 Logitech, Inc. Webcam C270 ←これ
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
...
mjpg-streamerのインストール
1 必要なモジュールをインストール
$ sudo apt-get install -y subversion libjpeg-dev imagemagick
2 mjpg-streamerをダウンロード
$ svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer mjpg-streamer
3 makeを実行
$ cd mjpg-streamer/
$ make
スクリプトの作成
1 ファイルを開く
$ vi start_stream.sh
2 設定ファイルを編集
start_stream.sh
#!/bin/sh
PORT="8080" #ポート
ID="user" #ログインID
PW="passward" #ログインパスワード
SIZE="640x480" #画面サイズ
FRAMERATE="200" #フレームレート
./mjpg_streamer -i "./input_uvc.so -f $FRAMERATE -r $SIZE -d /dev/video0 -y -n" -o "./output_http.so -w ./www -p $PORT -c $ID:$PW"
起動
1 スクリプトを実行
$ sudo sh start_stream.sh
2 ブラウザから http://RaspberryPIのIP:8080 を開く
3 スクリプトに記載したログインIDとパスワードを入力
4 Stream のページにカメラの映像が写っていたら成功
外部から見るための設定
ファイヤーウォールの設定
1 ufw をインストール
$ sudo apt-get install ufw
2 ufwの設定
#全部シャットアウト
$ sudo ufw default deny
#特定のIPからの22ポートアクセスは許可
$ sudo ufw allow proto tcp from 192.168.X.0/24 to any port 22
#8080ポートへのアクセスは許可
$ sudo ufw allow 8080
3 ufwを起動
$ sudo ufw enable
4 設定の確認
$ sudo ufw status
To Action From
-- ------ ----
22/tcp ALLOW 192.168.X.0/24
8080 ALLOW Anywhere
8080 ALLOW Anywhere (v6)
コマンド集
- ステータス確認
$ sudo ufw status #停止中:inactive 起動中:active
- 起動
$ sudo ufw enable
- 停止
$ sudo ufw disable
ルータの設定
ルーターのポート変換で、外部に見えているIPアドレスと任意のポートをRaspberryPiに割り当てた固定のIPアドレスとポート8080を紐付ける