RaspberryPi as NVR solution
最近、私の近親者が、CCTV ソリューション (closed circuit television aka video surveillance) を使用して自宅にセキュリティ計画を導入したいと言ってきました。 いくつかの見積もりを取りましたが、明らかに予算オーバーでした (最安値はカメラ 4 台、NVR ボックス、セットアップを含めて 1300 ユーロ)。
私の課題は、ハードウェア、ソフトウェア、セットアップを含めて、価格を少なくとも 2 つ下げることでした。
私は、最初に要点から始めるのが好きなので、興味があればさらに詳細を読むことができます。 代わりに、ラズベリーPI などのローカルなハードウェアを使用します。
オープンソースは必ずしも無料というわけではありませんが、ソースコードを公開するという利点があります。 また、ソフトウェアエンジニアとしては、閉じたソフトウェアよりも、掘り下げて修正できるソフトウェアにお金を払いたいものです。
調査の結果、shinobiというオープンソースのCCTVソリューションがあり、これを使うことにしました。 nodeJs(サーバーサイドのjavascript)で開発されています。 このプロジェクトは非常に活発で、2つのバージョンがあります。 GPLv3で無償のCommunity版と、特定のEULA(エンドユーザーライセンス契約)で月額課金制のPro版です。 しかし、個人的な使用には Pro 版を使用することもでき、私の場合はそうしました。 カメラ
世の中には、さまざまな機能を持ち、さまざまな価格のカメラがたくさんあります! この記事では、予算だけでなく、ニーズ(ナイトビジョン、検出、オーディオ、レンズの品質など)にも依存するため、特定のカメラ装置をお勧めすることはありません。
ONVIF は、IP ベースの物理セキュリティ製品の効果的な相互運用のための標準化されたインターフェイスを提供し推進する、オープンな業界フォーラムです。 これにより、多くのデバイスを相互に接続できるようになります。また、私たちにとって最も重要なことは、オープン ソースの Shinobi NVR を使用してカメラを検出し、通信することです。
カメラの設定方法と Shinobi への接続方法を示す別の記事を作成する予定です。
Remote server as a NVR hardware : bad solution
実験では、まず、NVR ハードウェアとして使用する Atom N2800 1,86GHz, 4GB of RAM のリモート サーバに Shinobi をインストールしようと試みました。 しかし、リモートサーバにカメラを接続するために、カメラからのリアルタイムストリームだけでなく、ONVIFプロトコルポートもポートフォワードするようにローカルルータを設定する必要がありました。 また、カメラをリモート NVR サーバーにストリーミングする際に、大きな遅延が発生しました (インターネットのアップロード帯域幅によって制限されます)。 その利点は複数あります:
- ストリームを外部に公開しない(セキュリティ侵害になる可能性がある)、
- ローカル ネットワーク上のカメラと NVR ハードウェアの間に密接なループを持つ、
NVR ハードウェアとしてのローカル サーバー:良いソリューション
Remote NVR server:非常に悪いソリューション。 そこで、私の選択は、raspberryPI を使用することでした。 価格は私たちのユースケースにとって本当に手頃で(およそ35ユーロ)、ハードウェアの機能は十分すぎるほどです。 最も重要な機能は、H264 ハードウェア エンコード/デコード機能です。
私は自宅に 2014 年製のモデル 1B+ の raspberryPI を 1 台持っていました。 これで十分なのですが、装備していない場合は、現在までの最新モデル(モデル3 B+)の購入をお勧めします。
ラズパイにShinobiをインストールする
ラズパイにソフトウェアをインストールする前に、OSをインストールする必要があります。 今回はGUIがない非常に軽いRaspbianを使用します
PI にRaspbianをインストール
- Raspbianストレッチライト(GUI用パッケージなし)をhttps://www.raspberrypi.org/downloads/raspbian/
- ダウンロードしたばかりのzipに破損がないか確認
$ shasum -a 256 2018–11–13-raspbian-stretch-lite.zip
- Raspbian ImageをSDカードにインストールする。 https://www.raspberrypi.org/documentation/installation/installing-images/README.md
- SDカードをラズベリーPIに挿入し、キーボード、HDMIを接続します。
Log in your PI
- ラズベリーにログインしてください。 デフォルトのログインはpi、パスワードはraspberryです。
- まず、セキュリティのため、’pi’ユーザのパスワードを変更します。
$ passwd
- update packages on your PI if needed to have the latest version of them
$ sudo apt-get update && sudo apt-get upgradeEnable SSH on your raspberry
まず、SSHサービスが動いているか確認します
$ sudo service ssh status(tip : 次のコマンドでデバイスの全てのサービスが確認できます.)
SSHサービスが走っていないか確認してみてください。
$ sudo service --status-all
sshが有効な場合はこのステップをスキップします。そうでない場合はサービスを実行します
$ sudo service ssh start
# For future boot, you need to activate ssh on boot up
* solution 1
$ sudo update-rc.d ssh defaults
$ sudo update-rc.d ssh enable
- solution 2
or, あなたは専用ツールを使用してラズベリーを設定することもできます :
$ sudo raspi-config
>> Interface Settings
>> SSH
>> ENABLE
sshでラズパイにアクセスする
ローカルネットワークからデバイスにアクセスするには、そのローカルIPアドレスを知っている必要があります。
- そこで、routeurを設定してraspberryPIに固定IPを設定するか(raspberryPIのMACアドレスに固定ローカルIPを関連付ける)、あるいは、
$ hostname
コマンドでraspberryのホスト名をチェックするのが良い解決策でしょう。 あとは、以下のコマンドで、ipアドレスを知らなくても簡単にpiにsshできます :
$ ssh [email protected]
Install Shinobi
さて、OSが正しく設定され、sshでデバイスにアクセスできるようになったので、Shinobiをインストールしてみましょう。
$ sudo su
$ sh <(curl -s https://gitlab.com/Shinobi-Systems/Shinobi-Installer/raw/master/shinobi-install.sh)
インストールは以下のようにインタラクティブに行われます。
Shinobi backoffice
インストールすると、次のリンクでブラウザを開くように指示されます:
|| Open http://192.168.0.10:8080/super in your web browser.
||===================================
|| Default Superuser : [email protected]
|| Default Password : admin
ただし、デバイスの IP アドレスの不確実性(再起動で変わる可能性があります)を排除するために、ホスト名を使用する方が良いでしょう。
http://raspberrypi.local:8080/super
# change super user login/pwd
http://raspberrypi.local:8080/superにログインしたら、セキュリティ上の理由から「設定」タブでログインとパスワードを変更します。
# add a new user
スーパーユーザーとは別に、shinobiにユーザーを追加する必要があります(このユーザーは同じメールアドレスで構いません)
このユーザーは、ローカルネットワーク上のこのリンクを使って直接ダッシュボードにログインできます
http://raspberrypi.local:8080/
ローカルNVRソリューションとしてraspberryPi with Shinobiを使う準備は完了です
…続きを読む