Raspberry Piへカメラを取り付けて、Motionソフトにより自宅監視サイト(但し自宅Wifi圏内でのみ閲覧可能)を構築した


はじめに

3月19日:Vim記述で誤りありましたので、修正しています。

 Raspberry Piを使った工作を始めました。今回はタイトルの通りカメラを取り付けて、Motionソフトにより自宅内の部屋を監視するサイト(自宅内Wifi限定)を構築しましたので、まとめたいと思います。

 要点は下記です。

  • カメラモジュールをRaspberry Pi 4へ取り付ける
  • カメラで撮影できるようにRaspberry Pi4で設定する
  • Motionソフト導入及びサイトで閲覧する

カメラモジュールをRaspberry Pi 4へ取り付ける

今回購入したのはこちらのラズパイ用カメラです。1500円と非常に安価です。
 https://www.amazon.co.jp/raspberry-%E3%82%AB%E3%83%A1%E3%83%A9%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB-Raspberry-%E3%81%A8%E3%82%B1%E3%83%BC%E3%82%B9500W%E7%94%BB%E7%B4%A0-%E6%84%9F%E5%85%89%E3%83%81%E3%83%83%E3%83%97OV5647%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BC/dp/B07NSS1QRW/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=lotw+camera&qid=1584354810&s=computers&sr=1-1-catcorr

 まずはこちらを組み立てます。
 

 全体的にコンパクトなパッケージにカメラ、ケース、説明書が入っていました。カメラのケースを作るのですが、こちらは写真をほぼ撮っていませんでした。。
 ネジが非常に小さく入れにくいものの、ケースとなるプラスチックを合わせてネジで止めるだけなのであまり難しくはありませんでした。
 
 次にこのモジュールをラズパイに設置する方法です。

 カメラモジュールを設置するコネクタ部には黒いカバーがされており通常は差し込む隙間がありません。従って、カバーを爪で持ち上げてその隙間に差し込みます。この時、金属センサー面がラズパイ側とカメラ側で設置するように入れ込みましょう。

設置した写真がこちらです。購入したラズパイ側の箱は強くはめ込んでいません。

カメラで撮影できるようにRaspberry Piで設定する

 こうして設置が完了しましたラズパイですが、次にカメラで撮影できるようにラズパイ上で設定を行います。以後、rootユーザーとしてログインして設定を行っております。

 ※root以外のユーザーとしてログインしている場合、設定を進められないところがあったためです。sudoersに登録を行いましたが、それでも上手くいかず。。ここはもう少し調べてみます。

 

 設定からインターフェース→カメラを有効にします。

次に、LXterminalと呼ばれるWindowsで言うコマンドプロンプトに相当するアプリケーションを起動させます。
 このLXterminalはLinux コマンドで命令を行います。私自身、Linuxコマンドは初めてでしたので、検索しながら手探りで行っています。
 カメラが接続されているかは下記を打ち込みエンターを押します。

LXterminal
vcgencmd get_camera

成功すると下記のように出ます。detected=0となると接続されていないことになりますので、これまでのどこかで誤ったことが起きているはずです。

LXterminal
supported=1 detected=1

デバイス側の問題がある場合は、下記コマンドによってラズパイ内のデバイスを最新バージョンへアップデートできます。

LXterminal
sudo apt-get upgrade

一旦カメラで撮影してみる

 接続が確認できたら試しにカメラで写真を撮影してみましょう。

LXterminal
sudo raspistill -o image.jpg

このコマンドにより一枚写真を撮影することができます。写真自体はLXterminal上でカレントディレクトリとなっているフォルダに格納されます。

近くの置物にはピントが合っていなく、後ろの背景にピントが合っているように見えます。

参考URL
https://www.pc-koubou.jp/magazine/17276

Motionソフト導入及びサイトで閲覧する

 さて、カメラの設定まで終わりましたので、次にリアルタイムで撮影した映像を確認できるようにしたいと思います。
 今回は、Motionと呼ばれるソフトをラズパイ上にインストールし、LXterminalのコマンドによりそのソフトを起動させ、URL上にて確認できるようにします。

下記コマンドによりMotionをインストールします。

LXterminal
sudo apt-get install motion

そして、下記コマンドによりMotionを動かせるように以下を編集します。

LXterminal
sudo vim /etc/default/motion

start_motion_daemon=no
↓
start_motion_daemon=yes

まず、ここでコマンドが受け付けずエラーになる方はVimと呼ばれるテキストエディタのインストールが必要になるため、下記コマンドによりインストールします。

LXterminal
sudo apt-get install vim

さて、ここで編集画面が下記のように出てきますが、Vim独特の編集の仕方を知る必要があります。
参考URL
https://qiita.com/kon_yu/items/b8864ff566b8b67a9810

編集不可画面から可能画面へは、iコマンド(insert:編集可能)または、sコマンド(substitute:挿入)を押すことで切り替えることができます。
編集可能画面から不可画面へはEscキーで切り替わります。
編集可能画面と編集不可な画面がs,escキーで切り替えられるので、
切り替え後yesとnoを打ち込みましょう。そして切り替えた後は編集不可の画面で:wqコマンドにより抜けることができます。

さて、これで実際に設定が完了しました。実際に撮影してみましょう。こちらのコマンドによりMotionを起動させます。

LXterminal
sudo motion -n  

撮影した動画は
http://raspberrypiのIP:8081/
このURL上で確認することができます。

実際撮影した動画のキャプチャー画像が上になります。写真よりもやはり荒い品質でした。
しかし、家中Wifiが通じているところででは見ることができます。
家事、仕事をしているときに離れたところで寝ている子供の様子を見る等適用ができるかなぁ、と思ったりしました。

終わりに

 今回、Raspberry Piへカメラを設置して撮影する環境構築を行いました。設置自体は難しくありませんでした。しかし、Linuxコマンド上で設定をしたりrootユーザーでないと設定が進まなかったりといったラズパイ内の設定に理解不足な点が多々ありました。
 次はこのカメラの設定を変えて撮影方法を変えてできないか検討してみたいと思います。また、Wifi外でも見れるようにサーバー構築or AWS等クラウドサービス活用を行ってみたいと思います。
 カメラの性能として1500円で安すぎたかな、と思いましたが全然そんなことはなく、おもちゃとして遊ぶには十分すぎる性能です。楽しい時代になりましたね。。

大変参考にさせて頂いたURL
https://qiita.com/westvirginia/items/ba79f7549b43da116467