RaspberryPiとmotionEyeOSを使用してマルチカメラCCTVシステムを作成する

市場には数え切れないほどの商用CCTVホームセキュリティシステムがありますが、Raspberry Pi(または他のシングルボードコンピューター)を使用して独自のDIYバージョンを構築すると、正確な目的に合わせてカスタマイズできるという利点があります。

motionEyeOSと呼ばれる特別なLinuxディストリビューションを使用すると、1台以上のカメラを使用してセキュリティシステムを簡単にセットアップできます。次に、カメラビューから動きを検出し、電子メールまたはプッシュ通知を介してアラートを送信できます。すべてを稼働させる方法を紹介します。

CCTVシステムをセットアップするために必要なもの

  • Raspberry Pi:PiZeroやComputeModuleなど、どのモデルでも機能します
  • USB Webカメラ、Raspberry Piカメラモジュール、または高品質カメラモジュール

関連: Raspberry Pi、Pico、Arduino、およびその他のシングルボードコンピューターとマイクロコントローラー

1.motionEyeOSをインストールします

motionEyeOSは、アプリケーションではなく、自己完結型のオペレーティングシステムであり、多くのRaspberry PiOSの1つです。まず、RaspberryPiモデルの正しいバージョンを見つける必要があります。 サポートされているデバイスリストに移動し、ボードの最新バージョンをクリックして、ディスクイメージを.xzファイルとしてダウンロードします。

RaspberryPiにmotionEyeOSをインストールする主な方法は2つあります。 motionEyeOS Webサイトは、LinuxおよびmacOSコンピューターがRaspberryPiで使用するmicroSDカードにディスクイメージを書き込むためのイメージ書き込みユーティリティを提供します。これにより、ワイヤレスネットワーク接続のオプションのセットアップと静的IPアドレスの設定が提供されます。詳細については、 インストールガイドを参照してください

2番目の方法(Windowsマシンでも機能するため、ここで使用します)は、 Raspberry PiWebサイトからダウンロード可能な標準のRaspberryPiImagerツールを使用してディスクイメージを書き込むことです。

内蔵のカードリーダーまたはUSBアダプターを使用して、microSDカードを挿入してコンピューターにマウントし、Raspberry PiImagerを開きます。 [ OSの選択]をクリックし、リストの一番下までスクロールして[カスタム使用]を選択します。

以前にダウンロードしたmotionEyeOS.xzファイルを参照します。次に、[ SDカードの選択]をクリックして、挿入したmicroSDカードを選択します。これはおそらくGeneric Storage DeviceMediaのようなものと呼ばれます。

最後に、[書き込み]をクリックして、画像をカードに書き込みます。

2.ワイヤレス接続を事前設定します

Raspberry PiでmicroSDカードを使用する前に、ワイヤレスネットワークの資格情報を事前に構成する必要があります。

プレーンテキストエディター(macOSのテキストエディターやWindowsのメモ帳など)を開き、次の行を入力して、 ssidpskの値を独自のワイヤレスルーターのSSID(名前)とパスワードに置き換えます。また、 国コードをデバイスが動作する国コードに変更する必要があります。

 country=US
update_config=1
ctrl_interface=/var/run/wpa_supplicant

network={
scan_ssid=1
ssid="MyWiFiSSID"
psk="MyWiFiPassword"
}

ファイルをwpa_supplicant.confとしてmicroSDカードのルートに保存します。ここには、 bootcode.binkernel.imgなどの他のファイルが表示されます。ファイルが.txtサフィックスで保存されている場合は、それを削除して、 wpa_supplicant.confと呼ばれるようにします

3.カメラのセットアップ

Raspberry Piカメラモジュールまたは高品質カメラを使用している場合は、RaspberryPiのカメラポートに接続します。 Webカメラを使用している場合は、RaspberryPiのUSBポートに接続します。

microSDカードをRaspberryPiに挿入し、電源を入れます。モニターに接続すると、実行中のコマンドのリストが表示されます。 wpa_supplicant.confファイルが正常に読み取られると、ネットワークに接続し、インターフェイスwlan0のIPアドレスが次のようになった後にRaspberryPiのIPアドレスが表示されます

または、Raspberry Piがモニターに接続されていない場合は、別のデバイスのWebブラウザーでワイヤレスルーターの設定ページにアクセスし、名前がmeye-で始まるデバイスを探すことで、いつでもIPアドレスを見つけることができます。

4.Webインターフェイスにアクセスします

別のコンピューターまたはデバイスのWebブラウザーで、Raspberry PiのIPアドレスを入力すると、ログイン画面が表示されます。パスワードなしで、ユーザー名としてadminを入力するだけです。

Raspberry Piカメラモジュールまたは高品質カメラが接続されている場合は、自動的に検出され、Webインターフェイスにカメラビューが表示されます。 USBカメラを使用している場合は、表示される[カメラ追加]メニューで、[カメラの種類]に[ローカルV4L2カメラ]を選択し、[ USB2.0カメラ:カメラUSB2.0カメラ]を選択します。

マルチカメラセットアップの場合、複数のカメラを1つのRaspberry Piに接続できますが、使用するモデルはすべてのストリームを処理するのに十分強力である必要があります。

または、それぞれにカメラが付いた複数のRaspberry Piボードを使用し、別のRaspberryPiをハブとして指定してストリームを処理することもできます。これは、カメラを別の部屋に配置する場合に便利です。

通常のLinuxコンピューターを中央サーバーとして使用するオプションもあります。

5.カスタム設定を構成します

Webインターフェイスで、左上の3本の縦線アイコンをクリックして設定パネルを開きます。単一のカメラを使用している場合は、[設定]メニューの[レイアウト列]オプションを1に変更して、ビューが画面全体に表示されるようにします。

ビデオデバイスメニューでは、現在選択されているカメラの解像度、回転、およびフレームレートを変更できます。カメラの名前を、カメラが置かれている部屋など、わかりやすい名前に変更することもできます。メニュー設定を変更した後、[適用]ボタンをクリックして適用します。

防犯カメラのセットアップでは、カメラビューから動きを検出する必要があります。モーション検知メニューを開き、オンにします。他のオプションを使用すると、動きを検出するために必要なフレーム変更しきい値を設定できます。設定が低すぎると、誤検知が多すぎる可能性があります。モーションギャップオプションは、モーションがトリガーされた後、モーションを再度検出しようとする前の遅延です。

モーション検知からキャプチャされたムービーを表示するには、ライブカメラビューをクリックしてから、三角形の再生ボタンアイコンを選択します。カメラでキャプチャされた静止画像を手動で表示することも、[静止画像]メニューの[キャプチャモード]を[モーショントリガー]に設定して表示することもできます。

7.電子メール通知を送信する

モーション通知メニューを使用すると、モーションが検出されるたびに自分にメールを送信できます。オンにした後、通知を送信するメールアドレスを入力します。アカウントの他の設定を入力する必要があります。

Gmailを使用している場合は、 SMTPサーバーをsmtp.gmail.comに、 SMTPポートを587に、 SMTPアカウントをメールアドレスの最初の部分に設定します(つまり、@ gmail.comなし)。 SMTPパスワードは、Gmailアカウントへのログインに使用するパスワードです。差出人アドレスは空白のままにするか、カスタムアドレスに設定できます。 TLSをオンに設定します

別のブラウザタブで、Googleアカウントの[セキュリティ]メニューにアクセス、[安全性の低いアプリへのアクセス]オンに設定します。セキュリティアラートを受信したら、変更したのがあなたであることを確認します。これは自己責任で行われることに注意してください。この目的のために、専用の新しいGmailアカウントを設定しました。

これで、Googleのセキュリティアラートをトリガーせずに、motionEyeOSからテストメールを送信できるようになります。複数のカメラを使用する場合は、それぞれに個別に電子メール通知を設定する必要があることに注意してください。

電子メール通知で画像を受信するには、[添付画像のタイムスパン]オプションを5〜30に設定することをお勧めします。また、[静止画像]メニューで[キャプチャモード]を[モーショントリガー]に設定する必要があります。

8.プッシュ通知を追加します

[モーション通知]メニューの[コマンド実行]オプションを使用してプッシュ通知を送信することもできます。たとえば、Android、iOS、デスクトップ向けのアプリを提供するプッシュオーバーサービスを使用するには、実行するための短いPythonスクリプトを作成する必要があります。

プッシュオーバーにサインアップします。 30日間の無料トライアル後、引き続き使用するには、1回限りの5ドルのアプリ内購入を行う必要があることに注意してください。

その後、[アプリケーション/ APIトークンの作成]をクリックします。ダッシュボードからのユーザーキーとともに、与えられたAPIトークン/キーを書き留めます。

ダウンロード: iOS用プッシュオーバー| Android (無料トライアルあり)

Pushover Webサイトのボイラープレートコードを使用して、Pythonスクリプトを作成できます。

 import httplib, urllib
conn = httplib.HTTPSConnection("api.pushover.net:443")
conn.request("POST", "/1/messages.json",
urllib.urlencode({
"token": "abc123",
"user": "user123",
"title": "CCTV alert"
"message": "Motion detected on camera 1!",
"url": "http://IP.ADD.RE.SS",
"url_title": "View live stream",
}), { "Content-type": "application/x-www-form-urlencoded" })
conn.getresponse()

abc123をアプリのAPIトークンに置き換え、 user123をユーザーキーに置き換えます。 IP.ADD.RE.SSをmotionEyeOSセットアップのIPアドレスに置き換えます。

これをmotionEyeOSシステムに配置するには、次のように入力して、ターミナルアプリケーション(またはWindowsのWinSCP)を使用して別のコンピューターからSSHで接続する必要があります。

 ssh admin@&IP_ADDRESS

IP_ADDRESSをmotionEyeOSシステムのIPアドレスに置き換えます。ここで入力します:

 cd /data

これでデータディレクトリに移動し、 pushover.pyという名前の新しいファイルを作成します。

 nano pushover.py

Pythonスクリプトを貼り付けるか入力して、 Ctrl + X 、続いてYで保存します。次に、次のコマンドで実行可能にします。

 chmod +x pushover.py

または、WindowsのWinSCPで、 F9キーを押し、アクセス許可を0775に設定して、[ OK]を押します。

次のコマンドを実行して、スクリプトをテストします。

 python pushover.py

PushoverアプリのmotionEyeOSから、警告音付きの通知を受け取る必要があります。

motionEyeOS Webインターフェイスの[モーション通知]メニューに戻り、[コマンド実行]オプションをオンにして、[コマンド]フィールドにpython /data/pushover.pyと入力し、Pythonスクリプトを実行するように指示します。

[適用]ボタンをクリックします。セットアップ内のカメラごとに異なるRunA Commandスクリプトを適用できるため、複数のPythonスクリプトを作成して、それぞれがどのカメラの動きが検出されたかを示すことができることに注意してください。

あなた自身のDIYセキュリティカメラシステムを作る

おめでとうございます。これで、Raspberry Piを使用して独自のカスタマイズ可能なCCTVセキュリティシステムをセットアップしました。これには、カメラで検出された侵入者の存在を警告する電子メールとプッシュ通知が含まれています。