RaspberryPi 3 Model B+でIoT監視カメラをつくる(その1ハードウェア関連)
RaspberryPi(ラズパイ)でIoT監視カメラ
RaspberryPi 3 Model B+とカメラ(Raspberry Pi Camera Module V2)とモーションセンサー(HC-SR501)で監視カメラを作成したときの備忘録。
似たような機能を持った市販の監視カメラも幾つか販売されているが、それぞれちょっとずつ機能的に惜しい所がありそれならばと思い自作してみる事にした。
特に実現したかったのは、
- 動きがあるときだけ撮影する
- 撮影した画像をインターネット経由でクラウドにアップする
- 撮影したことをLINEで通知する
の3点。
1.は普通の監視カメラは24時間365日撮影をしているが、それをすると動画ファイルが直ぐにいっぱいになってしまうのでモーションセンサーを使って何らかの動きがあるときだけ撮影をする仕様にしたかった。
2.と3.については録画ファイルをラズパイ内に保存するだけでは無く、インターネットに接続して録画ファイルをクラウドにアップロードする同時に通知する機能を付けたかった。
いわゆるIoT(Internet of Things)を実現したいと思っていた(IoTカメラ)
またこのページの最後に記事に関する動画を載せているので参考にしてみて欲しい。
全体構成図
監視カメラシステムの全体構成図は以下の通り。
1 |
モーションセンサー(HC-SR501)にてモノの動きを感知する |
2 |
動きがあるときだけRaspberry Pi Camera Module V2にて撮影する |
3 |
ローカルディスクに撮影した動画を一旦保存する 尚、ファイル形式は.h264とする |
4 |
GoogleDriveにファイルをUp Loadした後、ローカルディスクのファイルは削除する Up Load処理は時間が掛かるのでファイルのコピー中に監視カメラが停止してしまうのも困るので別スレッドで処理する |
5 |
監視カメラが撮影したことをLINEで知らせる |
必要なハードウェア
RaspberryPi本体 |
RaspberryPi 3 B+本体とクリアケース、SDカード、スイッチ付き電源等必要な物が一通り揃ったセットを購入した
|
カメラ |
RaspberryPi用のカメラモジュールを購入した 撮影場所はセンサー付きポーチライトが付いていて夜間でも明るいので通常のカメラにしたが、状況によっては夜間撮影用の赤外線カメラにした方が良いのかも知れない
|
モーションセンサー |
モーションセンサー(HC-SR501) 2個で350円で購入した(2019年7月時点) 並行輸入品らしく10日程掛かったが無事に届いた また動作確認をしたが今の所2つとも正常に動いている
|
カメラの接続
RaspberryPi本体にカメラを接続する。
赤枠の位置にあるコネクタにカメラのケーブルを方向を間違えないように接続する。
コネクタは両側の爪を持ち上げてケーブルを差し込んだ後に爪を下げることにより固定される。
左右の爪を持ち上げてからケーブルを差し込む。
モーションセンサー
モーションセンサー(HC-SR501)の基盤の説明。
詳細はこちらのデータシートを参照。
コネクター |
|
||||||
感度調整 |
感度を3m~7mまで調整可能 時計回りに回転させると感度が最大(7m)になる |
||||||
遅延時間調整 |
遅延時間を5秒~300秒までの間で調整する 時計回りに回転させると時間が最大(300秒)になる 遅延時間とはモノを検知(Output=High)してから未検知なるまでの時間 また遅延時間は下記のジャンパスイッチがシングルトリガーの時に有効になる(のだと思う) ※ 英文でdelayとあったので”遅延”と訳して書いたけど日本語で遅延だと遅れるイメージがあるので訳としてはイマイチかも知れない |
||||||
ジャンパープラグによって2種類のモードが指定可能
初期設定時はシングルトリガーになっていたのでプログラミングしやすいリピートトリガーにジャンパスイッチを変更した シングルトリガー
リピートトリガー
|
|||||||
CdS |
CdS(光センサー)を取り付けることが出来る模様(未確認) 「暗い時だけライトを付ける」などの制御に使用することが出来る |
接続図
RaspberryPiとカメラモジュール、モーションセンサーとの接続は以下の通り
カメラの有効化と試し撮り
有効化
RaspberryPiの設定を変更してカメラを有効化する。
左上のメニューー>設定ー>RaspberryPiの設定
インターフェイスタブでカメラを”有効”にして再起動する。
尚、SSHとVNCは開発中の為に有効にしている。
開発が終了したらそのままにしておくと危険なのでもとに戻すつもり。
試し撮り
この段階でカメラが正常に動作するかの確認の為、試し撮りをしてみる。
LXTerminalを起動する。
コマンドラインから、
で静止画(camera.jpg)が撮影される。
同様に、
で10秒間の動画(video.h264)が撮影される。
動画はRaspberryPi上で再生した所、コマ落ちしてしまったがパソコン上では問題なく再生された。
尚、パソコンでの再生はVLCメディアプレーヤーをインストールして使わせてもらった。
フリーソフトで様々な環境、ファイル形式の動画が再生できるのでありがたく使わせてもらっている。
フォーカスの調整
今回のIoT監視カメラではフォーカスは工場出荷時の状態で変更をしていないが1m以内の近距離を撮影したい時にはフォーカスを調整する必要がある。
フォーカスの調整方法を別記事でまとめた。
その他初期設定
その他、初期状態のOSから以下の変更を行った。
パッケージの更新 |
$ sudo apt-get update
$ sudo apt-get upgrade 上記のコマンドにてパッケージ類を最新の状態にした |
ホスト名の変更 |
メニューから設定ー>RaspberryPiの設定、システムタブでホスト名を変更した |
デフォルトユーザpiの変更 |
デフォルトのユーザpiはそのままにしておくとセキュリティ上問題があるので別ユーザ名に変更した piを変更した時の記事はこちら |
固定IPの割当 |
無線LANのIP Addressを固定IPに変更した 再起動の度にDHCPから異なるIP Addressを割り当てられるとVNCやSSHで接続する時に面倒なのでIP固定にした 固定IPを設定した時の記事はこちら |
Python3をデフォルトにする |
pythonのデフォルトが2.7だったので(Kernel version:4.19)python3をデフォルトに変更した 変更した時の記事はこちら |
Python IDEのインストール |
OSはプリインストールされていたNOOBSからイメージファイルをダウンロード&コピーしてのインストールに変更している その時の記事はこちら Version:June 2019、Kernel version:4.19ではpython IDLE(Integrated DeveLopment Environment)が未インストールだったのでインストールしている $ sudo apt-get install idle-python3.7
でインストールした |
ハードウェアの設定、接続や初期設定についてはこれで終了。
記事が長くなったので一旦終了する。
次回以降でGoogleDriveにアクセスするための設定やLINEにメッセージを送信するための設定、pythonでのプログラミングなどを扱う予定。
尚、記事と同内容を動画にしているので実際の機器の接続の様子などは動画で確認して欲しい。
RaspberryPiで監視カメラ動画
カメラモジュール、モーションセンサー、RaspberryPiの初期設定などの動画