今回は前回のスマートリモコンに続き、2回目のIoTデバイス制作です。玄関モニター兼防犯カメラを作ってみました。作成難易度はスマートリモコンよりも簡単ですので皆さんも是非作ってみてください!
玄関モニター兼防犯カメラを作ろうと思ったきっかけはRaspberryPiにカメラを接続してなんかやりたい(漠然)と思ったからで、色々調べていたらUSBカメラを使えばRaspberryPiに安くかつ簡単に接続できるとのこと。
ということで、さっそくUSBカメラを即買いし、あったらいいなと思っていた玄関モニター兼防犯カメラを作ってみました!
ラズパイのカメラモジュールは高いイメージがあったので、今回は1300円ほどのLogicoolのUSBカメラを購入しました。
(調べてみたところラズパイのカメラモジュールなら1000円以下で買えるようです。また、ラズパイにはもともと静止画をや動画を撮るコマンドがインストールされているらしいのでカメラモジュールの方がいいかも)
目次
搭載した機能
- スマホやタブレットでいつでも外の様子が見れる
- 外出先からもカメラの映像がリアルタイムで見れる
- 動きを検知したら写真または動画を撮影
- 動きを検知したらLINEで自分に写真を送信
概要
ウェブカメラの映像をストリーミングするソフトウェアは調べてみたところいくつかありましたが、今回はその中でもインストールが簡単で動作が軽く、ストリーミングや動体検知の機能がデフォルトで備わっているMotionというソフトウェアを使います。このソフトウェアをインストールするだけでLAN内からカメラの映像が見れるようになります。外出先からカメラの映像を見るにはポートを開放する必要があります。それから、LINEへの通知にはLINE NotifyというAPIを利用しました。
購入したもの
・ウェブカメラ
作成手順
- 基本設定およびソフトウェアのインストール
- ポート開放とファイアーウォール等の設定
- LINE Notify の設定
基本設定およびソフトウェアのインストール
まず、ラズパイにUSBカメラを接続し、コマンドプロンプトで
lsusb
と入力して正しくカメラが接続できているか確認します。
正しく認識している場合、図のようにデバイス名が表示されます。
次に、必要なソフトウェアをインストールします。
コマンドプロンプトで以下のコマンドを入力し実行します。
sudo apt update
sudo apt upgrade
sudo apt install motion
正しくインストールできているかを以下のコマンドで確認します。
motion -h
motionが正しくインストールされていればmotionのバージョンが表示されます。※2020/11現在ではmotion 4.3.2が最新バージョンです。
続いてインストールしたmotionの設定を変更します。
以下のコマンドでmotionの設定ファイルを開き編集します。
sudo nano /etc/motion/motion.conf
編集個所は6か所です。以下のように変更してください。
stream_localhost off
daemon on
locate_motion_mode on
framerate 10
output_pictures best
ffmpeg_output_movies off
設定した内容は以下の通りです。
デフォルト | 変更後 | |
ストリーミング | 無効 | 有効 |
バックグラウンド実行 | 無効 | 有効 |
動体検知時に 枠を表示 | 無効 | 有効 |
frame rate | 2 | 10 |
画像保存 | 動きのある全フレームを 保存※ | 動きのあった全フレームのうち、 中間の1フレームを保存※ |
動画保存 | 動きがあった場合 | 無効 |
※今回動画の保存はSDカードの容量を圧迫してしまうためOFFに設定しましたが動画も保存したい場合は、ffmpeg_output_moviesはonのままで大丈夫です。
※画像・動画ファイルはデフォルトでは /var/lib/motion に保存されます。保存先を変更したい場合はtarget_dirの項目の右側に保存先のパスを入力します。
もっといろいろいじりたい方はmotionのホームページに、全てのオプションの意味と設定方法が載っているので参考にしてみてください。
バックグラウンドで自動起動する場合はもうひとつの設定ファイルを編集する必要があります。自動起動を有効にしたい場合は以下のコマンドを実行してください。
sudo nano /etc/default/motion
上記のコマンドを実行すると、ファイルの編集が始まるのでstart_motion_daemonと書かれているところをyesに変更します。
start_motion_daemon=no -> start_motion_daemon=yes
変更し保存したら、以下のコマンドで設定を有効化します。
sudo service motion start
以上で、motionの設定は終了です。
設定が完了したら、
http://192.168.*.***:8081
にアクセスするとストリーミングが見れるようになります。{}の中にはラズベリーパイのIPアドレスを入力してください。IPアドレスの確認方法については以下を参照してください。
また、
http://192.168.*.***:8080
にアクセスすると、以下のような画面が表示され、web上で設定を変更できるようになります。
上の画像のAllと書かれたところをクリックすると、以下のような画面に切り替わります。
この画面で ‘config’ をクリックすると web上で設定を変更できます。設定を変更したらmotionを再起動する必要があり、’action’ をクリックし ‘restart’ をクリックするとmotionが再起動し、設定内容が反映されます。
ポート開放とファイアーウォール等の設定、LINE Notify の設定についての記事は現在作成中です。