Raspberry Pi Zero W スターターキットを買ってみました (4) “外部からアクセスできる監視カメラ”

Raspberry Pi Zero W スターターキットを買ってみました (3) “FlightAware PiAware”“の続きです。

 

1台目の”Raspberry Pi Zero W“(以下、Zero W)で”FlightAware“向けの”ADS-B“信号をフィードできるようになったので、2台目の”Zero W”(“2台目のRaspberry Pi Zero W スターターキットを買ってみました“)では何をやろうかなあ?と考えていると、あるモノを見て思いつきました。それは、”Piケース Official for Pi Zero”です。

 

(1) Piケース Official for Pi Zeroってなかなかいいじゃん!

こちらが、ラズベリーパイ財団公式のケースです。何と、上部の蓋が3種類も付いています。

それと、”Piカメラ Official V2 for 3/2/1/0用”に使える”3.8cmの22ピンコネクター”が同封されています。んんん、これはコスパ高いよね。

このケースを活かすんだったら、カメラを中心にした電子工作しかない!ということで、まずは組み立ててみました。さすが!公式のケースだけあって、サイズもピッタリですし、”Zero W”本体とカメラ部分を、ネジを使わずにしっかり固定できます。

カメラ専用の蓋を取り付けると、こんな感じに出来上がります。

ちなみに、各インターフェイスへのアクセスもバッチリです。1点だけデメリットに触れるとすれば、”Zero W”の起動を確認できるグリーンのLEDの状態が、ケースに隠れて分からないことかなあ。

これで準備完了です。早速、カメラをテーマにした電子工作にチャレンジしてみることにします。なお、POOH的な電子工作は、面倒なハンダ付けとか配線とは一切なし、とにかくソフトウェア中心にアプローチしていくスタイルになります。

 

(2)  工作を始める前にRaspbianを最新版にしておきましょう

以降、なかなかチャンスがないので、このタイミングで、最新の”Raspbian“にしておきます。

いつもなら、”sudo apt-get update && sudo apt-get upgrade”というコマンドで最新の状態にアップデートできるのですが、”Raspbian”自体が”STRETCH”にメジャーバージョンアップしたので、クリーンインストールしておきます。インストールの詳しい手順については、“Raspberry Piで航空機のADS-Bを受信してみました “デバッグ環境 まさかの故障->Raspbian再インストール” (7)”を参考にしてみて下さい。

なお、”Zero W”では、”Raspbian Lite”版のインストールが定石かとは思いますが、今回チャレンジするカメラ系工作では、フルバージョンのインストールを推奨していることと、フルバージョンでも、CPUの負荷も通常稼働に耐えられないほどでもないこと、今回は16GBのマイクロSDカードを使用していること、などを考え、フルバージョンをインストールしました。

 

このブログ記事を書いている段階では、”STRETCH”というバージョンは、ある意味、未完成なところがあるみたいです。一番気になる点は、日本語にローカライズできない(文字化けしてしまいます。)というところかもしれませんが、実際の通り、そもそも日本語表示にする必要はほぼほぼないと思います。

それと、POOHが気がついた範囲で言うと、”NTP“サービスがデフォルトのままではセットアップされていないので、個別にインストールする必要がありました。

“NTP”のインストールは、”sudo apt -y install ntp”でOK。

インストールした後のセットアップについては、“Raspberry Piで航空機のADS-Bを受信してみました “IPアドレス固定化 ラズパイ環境整備 NTP RealVNC” (2)”を参考にしてみて下さい。

 

(3) Zero Wを監視カメラにしてみましょう

今回はカメラがテーマなので、以前から試してみたかった”RPi-Cam-Web-Interface“による監視カメラ化に挑戦してみようと思います。

ソフトウェアのインストール手順は、Webページに記載の通りですので、ここではダイジェスト版でサクサクと進めていきます。

まずは、インストール

git clone https://github.com/silvanmelchior/RPi_Cam_Web_Interface.git
cd RPi_Cam_Web_Interface
./install.sh


インストールの途中、設定のオプション画面が表示されます。基本、このままで良いと思いますが、Webサーバにアクセスする際に認証をしたい場合は、”User”, “Password”欄に設定しておきます。ちなみに、最後の”jpglink”の詳しい用途は分かりませんが、基本的には”no”のままで良いみたいです。

なお、外出先から監視カメラにアクセスしたい場合は、後述の通り、”User”, “Password”欄に加えて、”Webport”欄も設定する必要があります。

インストールが完了すると、カメラ動作をスタートする?という画面が表示されますので、”Yes”を選択。

この後、macOSまたはWindows等のPCで、Webブラウザを起動後、”http://<raspberrypiのホスト名>.local/html/”、または”http://<raspberrypiのIPアドレス>/html/”を開けば、カメラで映している画面が表示されるはずです。

この段階では、必要最小限の設定だけ行っておきます。

まずは、”Camera Settings”ボタンを押した後、”Motion detect mode”欄で”internal”を設定。

続いて、”Edit schedule settings”ボタンを押した後、”PurgeSpace_ModeEx”と”PurgeSpace_Level”で、マイクロSDカードに記録した過去の動画や画像を削除する条件を設定しておきます。

 

動画をストリーミングしている状態で、どの程度の負荷がかかっているのかチェックしておきましょう。ま、気になるほどの負荷ではなさそうですね。

 

(4) 外出先から監視カメラをチェックできるようにしてみる

これまでの設定のままでは、外出先から室内に設置した監視カメラをチェックできないので、ちょっと後戻りして、インストールからやり直します。

アウトラインについては、”RPi-Cam-Web-Interface“の”Remote access to website with User/Pass and changing port”に記載の内容をご覧下さい。

 

(a) RPi-Cam-Web-Interfaceを再インストールします

面倒ですが、”RPi-Cam-Web-Interface”を再インストールします。”RPi-Cam-Web-Interface”フォルダを全削除してから、前述の手順でインストールしていきます。

で、この画面が表示されたら、今回は、”User”, “Password”欄に加えて、”Webport”欄にも、ご自身が決めた内容を設定して下さい。ちなみに、”Webport”欄には、”ポート番号“を設定するのですが、”0番〜1023番”までは、WELL KNOWNという領域なので、個人では利用できません。モノの本によると、個人で利用できるPRIVATE PORTSと呼ばれる”49152番〜65535番”を設定するのがお行儀の良いやり方らしいです。

インストールが終わったら、Webブラウザで、”http://<raspberrypiのIPアドレス:<設定したポート番号>>/html/”にアクセスすると、ユーザ認証画面が表示されるので、先程、”User”, “Password”欄で設定した内容を入力して、”ログイン”すれば、”RPi-Cam-Web-Interface”のメイン画面に切り替わるはずです。

 

(b) “Zero W”のIPアドレスを固定化します

普通に”Zero W”を無線LANで接続していると、”DHCP“という通信方式で、”Zero W”を起動する都度、任意のIPアドレスが割り当てられるようになっています。

例えば、”ifconfig”コマンドで、現在アサインされているIPアドレスを見てみると、無線LANであれば、”wlan0″欄の”inet”欄に、現在のIPアドレスが表示されます。

ただ、”Zero W”を起動する都度、IPアドレスが変更されてしますと、外出先からのアクセスができないので、”Zero W”のIPアドレスを固定化しておきます。

ネットで調べてみると、”/etc/wpa_supplicant/wpa_supplicant.conf”の内容を編集する方法があるようですが、

今回は、個人的に実績がある“sudo nano /etc/dhcpcd.conf”の内容を変更する方法で対応してみました。詳しい内容は、“Raspberry Piで航空機のADS-Bを受信してみました “IPアドレス固定化 ラズパイ環境整備 NTP RealVNC” (2)”をご覧下さい。

 

(c) ルーターのポートを開放する

我が家で使っているインターネット・ルーターは、”ひかり電話ルータ (RV-S340NE)“なので、以下の説明は、そのルーターのものになります。

こちらは、”基本設定”画面です。我が家は、”OCN“を使っているので、こんな感じに設定してあります。

“詳細設定”にある”静的IPマスカレード設定”画面を開きます。

具体的には、編集画面で、固定化した”Zero W”のIPアドレスと、”RPi-Cam-Web-Interface”のインストール時に設定したポート番号を入力して保存します。

これで、インターネット・ルーター側の設定は完了です。

 

(d) 自分のインターネット・ルーターにアサインされているグローバルIPアドレスを調べる

こちら“の”IPアドレス確認”画面を開くと、自分のインターネット・ルーターに割り当てられている”グローバルIPアドレス“が表示されます。

 

(e) iPhoneのWiFiをオフにして監視カメラにアクセスしてみる

別に、iPhoneでなくても良いのですが、とにかく、ご自身のスマホで、念のために、WiFiを一時的にオフにした状態で、監視カメラにアクセスしてみましょう。

アクセスするURLは、”http://<先程調べたグローバルIPアドレス:<ポート番号>>/html/”です。

ちゃんと、認証画面が表示され、

はい、監視カメラのメイン画面が表示されました。

ここまでの手順までだと、ごく普通の認証手続きしかできていないので、このまま、本番稼働に持っていくには不安がありますよね。”ssh“なら”公開鍵認証方式“だと思うんだけど、”http“だと”https“なのかなあ?んんん、少し勉強してみることにしようっと。

 

(f) “RPi-Cam-Web-Interface”の設定を追加しておきます

セキュリティ面の充実化に向けて、更なる調査を進める一方で、”RPi-Cam-Web-Interface”の設定も、いくつか追加しておきました。

まずは、”Camera Settings”ボタンを押した後、”Motion detect mode”欄で”internal”を設定するとともに、

動体検知する際、動体検知のきっかけになった画像もフォローするために、バッファ・サイズを”ミリセカンド”で設定しておきます。例えば、3秒前から動体検知時の録画を開始したければ、”3000ms”と設定しておきます。

続いて、”Edit schedule settings”ボタンを押した後、”PurgeSpace_ModeEx”と”PurgeSpace_Level”で、マイクロSDカードに記録した過去の動画や画像を削除する条件を設定するとともに、

折角なので、”Zero W”の設置場所を示す経度緯度、GMT時間との差を設定しておいて、スケジュール設定を利用する時に備えておきます。

これら以外にも、設定できる内容は山のようにあるので、その辺りは、実際に使いながら、追々ということで。

 

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

スイッチサイエンス Raspberry Pi Zero W ケースキット
価格:2808円(税込、送料別) (2017/9/14時点)

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

TechShare Raspberry Pi用遠隔操作カメラキット(組立済み) TSI-Pi-101-WA2
価格:5940円(税込、送料別) (2017/9/14時点)

ホームページ”THE POOH FILES”にも是非お立ち寄り下さい。

tomohiko

長年に渡りMacintosh向けの自作アプリを作り続けているPOOHです。最近はiPhone,iPad向けアプリ開発にも挑戦中。グルメ、旅行、露天風呂、写真、サイクリング、映画、STAR TREKが大好き。レトロでSFなおもちゃを大量にコレクション。プレーリードッグと同居中。

おすすめ

コメントを残す