messyなkitchenなブログ

ただひたすらに散らかった台所や人生やその他を晒す。

MENU

自前で監視カメラ

ラズパイの勉強も兼ねて、監視カメラ作ってみた。
自分用メモ。

ちなみに、こんな感じでカメラ映像が取得できました。

こんな感じでカメラ映像が撮れた

要求仕様

  • 使用するデバイスは ラズパイ
  • カメラ映像を mp4 ファイルに記録する。
  • ファイルはクラウドへ保存する。
  • お金をかけてはならないwww

使用する機材

今回は、家に転がっていた物を使いました。 なので、費用ゼロ円(Zero なだけに)。

使用するソフトウェア

  • DietPi
    • 軽量な OS らしい。非力な Zero には最適。
  • motion
    • 動体検知してくれるソフト。
  • davfs2
    • WebDAVサーバーをマウントできるソフト。

使用するクラウドストレージサービス

準備

InfiniCLOUD

外部アプリ接続 の設定をします。
「外部アプリ接続を許可する」と次の情報が得られます。

  • WebDAV接続URL
  • 接続ID
  • アプリパスワード

davfs2 の設定でこれらを使います。

続いて、ソフトウェアを ラズパイ にインストールします。

DietPi

DietPi のサイトから入手して、インストールします。 DietPi - Lightweight justice for your SBC!

※インストールのやり方は別途調べてください。

今回は root アカウントで全部やっちゃいます。

motion

ラズパイを起動させたのち、インストールします。

apt install motion

davfs2

ラズパイを起動させたのち、インストールします。

apt install davfs2

接続を試します。

mkdir /mnt/infinicloud
mount -t davfs -o rw https://ena.teracloud.jp/dav/ /mnt/infinicloud

ID と パスワードの入力を求められるので、 前述の InfiniCLOUD で取得した 接続ID と アプリパスワード を入力します。
アクセスしてみます。

ls -la /mnt/infinicloud

InfiniCLOUD 上のファイル一覧が得られれば OK!

設定

davfs2

パスワード入力を不要にしたり、
自動的にマウントしたり。
ここでは省略します。m(_ _)m

追記: パスワード入力を不要にする設定

/etc/davfs2/secrets に次の行を追加します。

/mnt/infinicloud  YourID  YourPassword

これでIDとパスワード入力が不要になります。パスワード平文で怖いけど。

追記:自動マウントする設定

/etc/fstab に次の行を追加します。

https://ena.teracloud.jp/dav/ /mnt/infinicloud davfs rw,user,auto 0 0

motion

設定ファイル motion.conf を変更します。

nano /etc/motion/motion.conf

mp4 ファイルに書き出すのと、クラウドストレージへ保存するのと、そんな感じの設定をおこないます。

target_dir /mnt/infinicloud
movie_codec mp4
movie_quality 60
movie_output on
movie_filename motion/%Y-%m-%d_%H-%M-%S
movie_max_time 120

動作確認

クラウドストレージがマウントされている状態で、motion を起動します。

motion

カメラの前で動き回りました。すると...

クラウドへ動画がどんどんアップロードされるぞ

わーい \(^o^)/ 動画ファイルが格納されてます。
クラウドストレージに保存されているので、ネット環境があればこのファイルを取得できますね。

今後の展開

次のことを考えています。

  • motion が出力する mp4 ファイルを直接クラウドストレージへ書き込むのではなく、ローカルの /tmp などに一時保存する。
  • mp4 ファイルをクラウドストレージへ移動するプログラムを定期的に実行する。
  • 動画サイズやフレームレートを最適化する。
  • 移動物体検出のパラメータを調整する。

まとめ

家に転がっていた ラズパイ と Webカメラ と、無料で使用できるクラウドストレージサービスを使って、 監視カメラと動画保存を作ってみました、的な。

もし、InfiniCLOUD をこれから登録して使いたい場合は、次の紹介コードを使っていただければ、僕もあなたもウキウキです。

紹介コード: 8E2Q5