防犯カメラ映像をFTP保存

防犯カメラデータ保存システムをつくる

2台の防犯カメラで、最初は128GのSDカードだけで録画していましたが、大体20日分程度(動体検知の頻度で増減)の録画しかできないのと、
ブラウザからカメラ本体にログインしてファイルをクリックしてと、ちょっと面倒だったのと、
もし暴漢がカメラをぶっ壊したり、SDカードを持ち去って行ったらなどと考えると。まずないと思いますが....。(^_^;)
データは安全な家の中に保存したほうが安心だ!
と言うことでraspberyPiで構成したFTPサーバーに自動的にファイルを保存するようにしました。
併せてWindowsから簡単に再生・バックアップできるように、これもラズパイでsambaを構成しました。
この段階で再生・バックアップがかなり楽になりました。
やっぱりサーバーは常時運転が肝ですからraspberyPiは、はまり役ではないかと思います。
消費電力やサーバー導入の安さ、静粛性などホント理想的だと思います。

今回はソコソコ容量の大きな録画ファイル群を転送・保存しますのでraspberyPi4を採用することにしました。
以前のraspberyPi3と比べてネットはギガビット対応になりましたし、外付けUSBも3.1対応ディスクなども使えて高速アクセス可能です。
最初は普通のHDDをUSBインターフェイスを介して接続していましたが、動体感知した時に不定期にHDDのスピンアップするのでどうもレスポンスが悪い。

つまり動体感知してFTPでサーバーに送られてくるんですが、
どうもHDの準備ができていないと保存に失敗するんです。


linuxでスピンアップ・ダウンのソフトもあるのですが、思ったようにコントロールできませんでした。
もちろんHDを常時回転させていれば問題ないのですが、回転音が気になるのと熱の発生や365日24時間稼働ということを考えると経年劣化の点で不安があります。
実はUPSの場所の関係で私の枕元から1m位のところにラズパイがあるんです (;^_^A )

結局バッファローの外付けSSD580Gをつけることにしました。

SSDはHDDに比べると寿命の点で若干不安はありますが、前述の問題を全部解消してくれました。
定期的にSSD580Gのデータを気が向いたときにWindowsPCのHDD6TBにドラッグアンドドロップで移動保存しています。結構速いです。
動画ファイルの保管期間は数年間に伸びました。
あと、いざという時に第3者に見せたり、ファイルを提出するのは楽になりました。
この章では

1.ラズベリーpiにFTPサーバーを作って防犯カメラの動画・画像を自動的に保存する。
2.加えてsambaサーバーを作ってWindowsから簡単にファイルにアクセスできるようにする。

仕掛けを作るまでの流れを説明します。

1.動作の流れ

結論。どうゆうパターンかというと

Windowsショートカットをクリックすると

ラズパイのカメラファイルフォルダ(FTP)が表示されますので、見たいフォルダをクリックすると

動画と静止画フォルダが表示されますので

動画フォルダを表示したり

静止画jpgファイルを表示したりできます。

たくさん溜まったフォルダを手軽にローカルディスクにコピー・移動できます。

2.ラズパイにSSDを接続

今回はバッファローの480GBを選びました。システム起動用では無いので超高速である必要はありません。
それでもHDとは比べるまでもなく十分高速です。

USBコネクタ部分はグラグラしないように工夫されています。

USBケーブルも長すぎず短かすぎずラズパイにはベストです。

上記のように運用するための説明をしていきます。
作業はすべてPCからssh接続によって黒いCUI画面から遠隔操作します。

購入したSSDドライブをラズパイに接続したらパーティション(使用する領域)を設定します。

まず、
lsblk(リストブロック)コマンドでストレージが認識されているかチェックします。

最初のUSBドライブなら「sda」2個めのUSBドライブなら「sdb」という風になっていきます。
今回のSSDドライブは1台目なので「sda」として認識されています。
別のディスクを誤って消してしまわないように。これから作業する対象をしっかり確認しておきます。

RaspiにNTFSドライブとして認識させる

今回は、万が一の時はラズパイからssdを外してWindowsに接続できるように
SSDドライブをntfsでフォーマットします。
最初にntfsドライバ? のようものをいれます。

apt install -y ntfs-3g

次にntfsでフォーマット実行

mkfs.ntfs /dev/sda1

ほやほやのSSDをマウント
フォルダ作成

mkdir /mnt/bcam

保存フォルダ名は防犯カメラの略で「bcam」にしました。

mount -t ntfs-3g /dev/sda1 /mnt/bcam

再起動時も自動マウントさせる仕掛けをします。

nano /etc/fstab

でマウント自動起動設定ファイルをnanoエディタで編集します。
一番下の行に下記をコピペ

/dev/sda1 /bcam ntfs uid=0 0 0

ctrl+o で書き込み
ctrl+x で終了

データ用なのでUUIDは不要です。

リブート reboot して
lsblkでストレージを確認すると。「sda1」パーティションに「/bcam」としてマウントされています。

3.ftpソフトvsftpdをインストール

vsftpdをインストールします。このftpサーバーソフトはプロの現場でも使用されている高機能・高安全性のソフトですが、
ちょっとでも設定を誤ると「テコでも動きません」のでコマンドも設定項目もコピペでOKです。
本体モジュールインストール

apt install vsftpd

自動起動にセット

systemctl enable vsftpd

qで表示終了
vsftpdにルートアクセスを許可

nano /etc/ftpusers

にあるrootの行の頭に#をつけて
#root
としたら
ctrl+o で書き込み
ctrl+x で終了

vsftpdの動作設定 ここをミスすると苦労します、と言うかテコでも動きません。
オリジナル設定ファイルvsftpd.orgconfとして保存します。これ必須です。

cp /etc/vsftpd.conf /etc/vsftpd.orgconf

設定ファイルを編集します。

nano /etc/vsftpd.conf

注釈文が英語でウジャーと書かれています。
googleで翻訳して内容を見ると高度で難解な部分が結構あります。
なので一旦エディター上で、すべての中身を消去して、(カーソルを行頭に置いてctrl+kを全行消えるまで押し続ける)
下記をコピペするのが早く・うまくいきます。

# Example config file  /etc/vsftpd.conf
#
#
listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
ascii_upload_enable=YES
ascii_download_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO

ctrl+o で書き込み
ctrl+x で終了
vsftpdの設定は以上で終わりです。

vsftpdを再起動します。

systemctl restart vsftpd

qで表示終了
正常動作しているかチェックします。

systemctl status vsftpd

qで表示終了

緑のところが赤くなっている場合はどこか設定などミスってます。
ついつい余分な設定に目が行ってしまってあれも変更これも設定とやってしまうと泥沼化します。
無事緑色の表示が出ましたらftpサーバーにアクセスしてみます。

ftpクライアントソフトから
ホスト名 192.168.2.XXX ラズパイのIPアドレス
ポート番号21
id:root pass:XXXXX
でアクセスできるはずです。下記はWinSCPです。/ルート下に先程マウントした「bcam」フォルダが見えます。

この段階で防犯カメラのFTP保存オプションにチェックを入れることができます。
下記はカメラをブラウザで見た画面。HiP2P Clientからでも設定できます。

ftpサーバーセッティングをクリックして設定したら
「Test」をクリックすると正常かどうか通信チェックしてくれます。OKなら別ダイアログでSUCCESSと表示されます。


applyをクリックして終了します。

4.Sambaのインストール

次はWindowsから手軽にファイルにアクセスできるように
windowsからアクセスできるファイルサーバーSambaをインストールします。

apt-get install samba
以下のパッケージが新たにインストールされます:
attr ibverbs-providers libavahi-client3 libboost-atomic1.67.0


python-talloc python-tdb samba samba-common samba-common-bin
samba-dsdb-modules samba-libs samba-vfs-modules tdb-tools

結構いっぱいパッケージがインストールされます。途中Yes/Noが出ますが「 いいえ」を選択
インストール終了後、サンバ設定ファイルを編集します。

nano /etc/samba/smb.conf

設定文の文末に

[root]
comment = myfile
path = /bcam
public = yes
read only = no
browsable = yes
force user = root

をコピペしたら
ctl+o 書き込み
ctl+x 終了
sambaの再起動します。

systemctl restart smbd

sambaユーザー登録

sambaユーザーを登録します。
OS既存のユーザーrootにサンバ専用パスワードを設定するという考え方でやります。
ユーザー名が同じでパスワードがOS用とサンバ用と2種類登録されるわけです。
sambaはOS既存のユーザー+パスワードは流用できない為...。

sambaパスワードを設定します

smbpasswd -a root

New SMB password: パスワード入力
Retype new SMB password: リタイプ
Added user root.

で設定完了です。

サンバを再起動して

systemctl restart smbd

正常に動作しているかチェック

systemctl status smbd


Activ:部が緑色ならOKです。

5.Windowsからアクセスしてみる

それではWindowsからsambaフォルダーにアクセスしてみましょう。
マイコンピュータのアドレスに「¥¥192.168.2.xxx」のようにsambaのアドレスに¥¥をつけてエンターします。


一度アクセスしたら、これをショートカットとして保存しておくと、ダブルクリックするだけで、静止画・動画共に再生・コピー・移動できます。
この方法で、3ヶ月に1回程度カメラデータを簡単高速にWindowsに接続した大容量HD(6T)に移動しています。
以上でsambaの設定は終わりです。

6.今回揃えたアイテム

最初に購入したラズパイ4セットはプラスチックケース+小型ファンでした。
電源アダプターやmicrosdも入って、悪いわけではないんですが

前にも書きましたが、枕元で小型ファンはめっぽう、うるさかったのでファンレスタイプに変えました。
冬は、ほんのり暖かです。真夏のエアコン環境下でも大したことは有りません。エアコンなしの初夏・晩夏のあたりはかなり熱を持ちます。
熱暴走することは有りませんでした。
後に、購入したアルミケースはラズパイ基盤と取付部分の寸法が
微妙に違っていてちょっと納得いかない商品でしたので別アイテムを貼っておきますね。
今から購入する方は、年間通して稼働するサーバーですのでチリホコリの入りにくいタイプをお勧めします。

正規代理店商品 Raspberry Pi 4 Model B (4GB) made in UK Raspberrypi財団パッケージ
Raspberrypi
¥8,600(2021/09/22 13:41時点)
弊社はRaspberrypi財団公認ベンダーです

7.pi4でも電源には注意

raspberry pi3もそうでしたが、次世代pi4でも高出力のスマホ用充電アダプターを使ってもlow voltage電圧低下アラームが出たりします。調べてみたところ、どうも電圧値が原因のようでした。最低5.1V出力するタイプでないと頻繁にアラームが出ます。電流値はスマホ充電器のレベル(3A)で問題ないのですが...。 ラズパイ専用を謳った電源はさすがに問題ないです。

Smraza Raspberry Pi 4 USB-C (Type C)電源、5V 3A ラズベリーACアダプター RPi 4b Model B 1GB / 2GB / 4GB/ 8GB適用 PSE取得
Smraza
¥1,139(2021/09/22 13:41時点)
規格:5V 3A電源アダプター Raspberry Pi 4に適用.1.5M type C ケーブル オン/オフスイッチ付き.出力: DC 5V/3A 入力: AC100-240V
Samsung EVO Plus 32GB microSDHC UHS-I U1 95MB/s Full HD Nintendo Switch動作確認済 MB-MC32GA/ECO 国内正規保証品
日本サムスン
¥880(2021/08/30 20:16時点)
最大転送速度 : 読み出し 95MB/秒、書き込み 20MB/秒

結構コスパが良かったので同社の1.9TBの方も買ってしまいました。テレビ録画に使用しています。
セットでアルミケース? のタイプも今はあります。

Raspberry Pi 4 アーマード (4GB基盤, アーマーケース(ブルー:FAN無), 3A電源, 高速型64GB MicroSD,4K出力用HDMIケーブル, スイッチケーブル)
NewLife NewDesing
¥13,480(2021/09/22 13:41時点)
【セット概要】Raspberry Pi 4 Model Bに、アルミニウム製のヒートシンクケースを組み合わせているのでFAN無し無音での安定稼働が可能です。GPIOのすべてピンが使えるので各種のHATを増設したり、電子回路キットの利用が簡単です。当社内での相性テスト、負荷テストをクリアした高品質な部品で構成されており、単品でご購入いただくよりお得です。

年に数回ですがシステムバックアップをするときに、USBポートがホコリだらけという事がないように
「USBポートコネクタ防塵保護カバー」なるものを取り付けいます。
PC本体やノートPCにも取り付けて防塵しています。ただシリコンコム製なのでノートpcなどではちょっと脱落しやすいです。

monofive USBポートコネクタ防塵保護カバー・キャップ(20個入り)シリコンタイプ MF-USB-C20B
monofive
¥498(2021/09/22 16:01時点)
USBポート メス用の保護カバーキャップ 20個入です

8.体験したトラブル対処法

vsftpdを完全削除する
FTP設定をミスってしまって最初からやり直したい。
apt remove vsftpd
設定ファイルなど完全削除
apt purge vsftpd
apt autoclean
apt autoremove
チェックして見る
systemctl status vsftpd
Unit vsftpd.service could not be found.
全くなくなっている。
Sambaを完全削除する
サンバ設定をミスってしまって最初からやり直したい。
apt remove --purge samba
rm -r /var/lib/samba
ssh接続でrootによるログインを許可
nano /etc/ssh/sshd_config
PermitRootLogin yes    行頭の#を削除し、重ね書き・終了
service sshd restart
トップへ戻る