ラズベリーパイで定点カメラ

ラズベリーパイで定点カメラ

ラズベリーパイにWebカメラを
接続して定点カメラにする設定方法です。

このラズベリーパイを使った定点カメラの利用方法

私は太陽光発電所の
検針メータの数値を
毎日同時刻に撮影して、
撮影した画像をクラウド上(DropBox)に
アップをするプログラムを自作しました。
自宅のPC及びスマホから
クラウド(DropBox)にアクセスする事に
より検針メータの
値を読み取る事ができます。
リアルタイムでは、ありませんが
毎日、簡易的ではありますが
太陽光発電所の
発電状況を
遠隔監視しています。

※Dropbox Uploderのバージョンが
Version 1.0以前(2016/08/10)のバージョンでは、
Dropbox API v1を使用しているので、
Dropbox API v1が2017/09/28で停止しているので、
それ以降は、動作しなくなっています。
Dropbox Uploaderのバージョンを確認してください。
CHANGELOGを見ればわかります。

1.定点カメラのセットアップ

定点カメラのセットアップをしていきます。

1-1.用意するもの

  • OSのインストールが完了しているラズベリーパイ
  • USB接続できるUSBカメラ
  • USBキーボード
  • USBマウス
  • HDMI端子が付いているモニター

USBキーボード・USBマウス・モニターは使用しません。
ラズベリーパイに直にログインして
作業される方は用意してください。

ラズベリーパイのセットアップ・環境設定は、
こちら
Webページを参照してください。

1-2.セットアップ手順

ラズベリーパイにWEBカメラ等の
セットアップしていきます。

1-2-1.WEBカメラをラズベリーパイのUSBへ接続する

WEBカメラをラズベリーパイのUSBポートへ接続して下さい。
※電源がOFFの状態で接続してください。

1-2-2.WEBカメラの確認

ラズベリーパイを起動後に、lsusbコマンドを
実行してWEBカメラが認識されているか確認をして下さい



画面をクリックすると別画面で大きく表示されます。

Bus 001 Device 005: ID 056e:700e Elecom Co., Ltd ←ElecomのWEBカメラ
Bus 001 Device 004: ID 0458:708c KYE Systems Corp. (Mouse Systems) ←バッファローのWEBカメラ
※例:エレコムとバッファローのWEBカメラの例です。

1-2-3.撮影をするためのソフトウェアのインストール

WEBカメラで撮影をするためのfswebcamをインストールします。

puttyでラズベリーパイにログインして、
下記のコマンドを入力してfswebcamをインストールします。

sudo apt-get install fswebcam



画面をクリックすると別画面で大きく表示されます。



画面をクリックすると別画面で大きく表示されます。

1-2-4.WEBカメラの撮影テスト

puttyでラズベリーパイにログインして、
下記のコマンドを入力して撮影のテストを行います。

WEBカメラを2台使う場合は、下記のように
--device /dev/video0及び--device /dev/video1でデバイスを指定する。
一台の場合は、--deviceオプションは無くても構いません。
fswebcam --device /dev/video0 -S 15 ./video0.jpg
fswebcam --device /dev/video1 -S 15 ./video1.jpg



画面をクリックすると別画面で大きく表示されます。



画面をクリックすると別画面で大きく表示されます。

1-2-5.撮影画像をPCへ転送して画像の確認をする

撮影した画像をWinSCPでPCへ転送して撮影画像の確認をします。

1-2-5-1.WinSCPでラズベリーパイへ接続

WinSCPを起動してラズベリーパイへログインします。
画面を参考にログインしてください。

ポスト名の箇所にラズベリーパイのIPアドレスを入力してください。
デフォルトでは、ユーザ名はpiです。


画面をクリックすると別画面で大きく表示されます。

パスワードを聞いてきますのでパスワードを入力して[OK]ボタンを押してください。
デフォルトのパスワードは、raspberryです。


画面をクリックすると別画面で大きく表示されます。

初めてのログインの時は下記のような警告が出ます、[はい]ボタンを押してください。
デフォルトのパスワードは、raspberryです。


画面をクリックすると別画面で大きく表示されます。

ログイン後に、画面の右側から撮影した画像を選択して、画面左側のPCへ画像を転送してください。


画面をクリックすると別画面で大きく表示されます。

画像を開いて撮影ができている事を確認してください。
※この画像はWEBカメラを2台向かい合わせて互いを撮影させています。



画面をクリックすると別画面で大きく表示されます。



画面をクリックすると別画面で大きく表示されます。

戻る

2.Dropboxのセットアップ

Dropbox関係のセットアップをしていきます。

2-1.Dropboxのアカウント作成

データをアップロードするための
Dropboxのアカウントを作成します。

下記のURLよりDropboxのWEBサイトにアクセスをしてアカウントを作成してください。
DropboxのWEBサイト

2-2.Dropbox developerからApp keyとApp secretを取得


Dropbox developerにアクセスをして
Dropbox Uploaderで
使用するApp keyとApp secretを
取得します。
取得手順は、
下記のリンクを参照してください。
Dropbox developerからApp keyとApp secretの取得

※App keyとApp secretは
Dropbox Uploaderの
過去のバージョン(Version 1.0)以前では、
必要でしたが、
今はaccess tokenでアクセスをしますので、
App keyとApp secretを使用しません。
この定点カメラでも使用はしません。
残しておきますが、
この項目自体は不要なものになっています。

2-3.Dropbox Uploaderのセットアップ

データをアップロードするための
Dropbox Uploaderをセットアップしていきます。

セットアップ手順は、
下記のリンクを参照してください。
Dropbox Uploaderのセットアップ

戻る

 
スポンサーリンク


3.スクリプトのセットアップ

(検針メータを)撮影して画像を、
Dropboxへアップロードする
プログラム(スクリプト)を
ラズベリーパイへセットアップしていきます。

※ 2017.10.13にメール送信の項目を追加しています。
それ以前に設定ファイルをダウンロードして煎る場合は、
  dropboxの設定を古い設定ファイルの設定で上書きしてください。

ダウンロード先より下記のファイルをダウンロードします。



画面をクリックすると別画面で大きく表示されます。

写真を撮影してDropBoxへアップロードするスクリプト(solor.py)
Dropbox Uploadスクリプト(dropbox.py)
写真撮影スクリプト(takepicture.py)
設定ファイル(solorpi.ini)

※写真撮影モジュール・設定ファイルは、メール送信と共通です。

3-1.設定ファイル(solorpi.ini)の編集

設定ファイル(solorpi.ini)をテキストエディタで開き
各項目を編集していきます。
※定点カメラでは、[sendmail]以下の設定は、
使いませんで、編集をする必要は有りません。
そのままにしておいてください。



画面をクリックすると別画面で大きく表示されます。

3-1-1.画像関連の設定

画像関連の設定を設定ファイルに設定していきます。

撮影した画像を識別するための
ファイル名の先頭文字を設定します。

下記の赤色の文字の場所を変更してください。部分
#画像ファイル名の接頭文字列
fileprefix=solorpi

例:撮影した画像の先頭文字をraspiにする場合は

#ラズベリーパイ上で画像を保存するディレクトリ
fileprefix=raspi
となります。

撮影した画像を保存するディレクトリを設定します。
下記の赤色の文字の場所を変更してください。
#ラズベリーパイ上で画像を保存するディレクトリ
local_picture_dir=/home/pi/pic

例:/home/pi/camというフォルダに保管する場合は

#ラズベリーパイ上で画像を保存するディレクトリ
local_picture_dir=/home/pi/camになります。

※フォルダが無い場合は、
WinSCPでフォルダを作成するか
putty から
mkdir /home/pi/pic
と入力してフォルダを作成します。



画面をクリックすると別画面で大きく表示されます。



画面をクリックすると別画面で大きく表示されます。



画面をクリックすると別画面で大きく表示されます。



画面をクリックすると別画面で大きく表示されます。

作成すると下記のようにフォルダが作成されます。


画面をクリックすると別画面で大きく表示されます。

写真のサイズを変更する場合は
下記の赤色の文字の場所を変更してください。

※カメラの性能と画像ファイルのサイズを考慮して設定してください。

#写真を撮影するためのコマンド
take_picture_cmd=fswebcam -r 640*512 -S 15

例:画像のサイズを1024*768にする場合は

#写真を撮影するためのコマンド
take_picture_cmd=fswebcam -r 1024*768 -S 15

撮影時のスキップ数を変更する場合
下記の赤色の文字の場所で撮影時のスキップ数を変更してください。

※スキップが短いときれいに撮影できません。
撮影場所で撮影をしながら調整をしてみてください。

#写真を撮影するためのコマンド
take_picture_cmd=fswebcam -r 640*512 -S 15

例:スキップ数を10にする場合は

#写真を撮影するためのコマンド
take_picture_cmd=fswebcam -r 1024*768 -S 10

3-1-2.Dropbox関連の設定

Dropboxの設定を設定ファイルに設定していきます。

dropboxuploderを/home/pi/Dropbox-Uploader/
以外の場所に配置した場合は下記の赤色の文字の場所を変更してください。

[dropboxuploder]

dropboxuploder_cmd=/home/pi/Dropbox-Uploader/dropbox_uploader.sh upload

戻る

4.ラズベリーパイ上にファイルを配置

ラズベリーパイ上にスクリプトを配置して、
実行可能な状態にします。

4-1.ラズベリーパイにファイルをアップロード

ラズベリーパイに使うファイルをアップロードしていきます。
ラズベリーパイのホーム(/home/pi)フォルダに
上記のスクリプトと設定ファイルをアップロードします。



画面をクリックすると別画面で大きく表示されます。

4-2.スクリプトファイルに実行権を付加

下記のコマンドを入力して
実行権を追加します。

chmod +x solorpi.py
chmod +x dropbox.py
chmod +x takepicture.py



画面をクリックすると別画面で大きく表示されます。

4-3.スクリプトの動作確認

puttyを起動して下記のコマンドを入力して
スクリプトが正しく動作するか確認をします。

WEBカメラが1台の場合

/home/pi/solorpi.py

写真が撮影されてdropboxにアップされたら正常に動作しています。



画面をクリックすると別画面で大きく表示されます。



画面をクリックすると別画面で大きく表示されます。

PC上のdropboxと同期を取っているフォルダに
ラズベリーパイ上で撮影したファイルが
作成されます。


画面をクリックすると別画面で大きく表示されます。

WEBカメラが2台の場合

1台目のデバイスの撮影
/home/pi/solorpi.py/dev/video0
※/dev/video0は1台目のデバイスです。

写真が撮影されてdropboxにアップされたら正常に動作しています。



画面をクリックすると別画面で大きく表示されます。



画面をクリックすると別画面で大きく表示されます。

PC上のdropboxと同期を取っているフォルダに
ラズベリーパイ上の1台目で撮影したファイルが
作成されます。


画面をクリックすると別画面で大きく表示されます。

2台目のデバイスの撮影
/home/pi/solorpi.py /dev/video1
※/dev/video1は2台目のデバイスです。

写真が撮影されてdropboxにアップされたら正常に動作しています。



画面をクリックすると別画面で大きく表示されます。



画面をクリックすると別画面で大きく表示されます。

PC上のdropboxと同期を取っているフォルダに
ラズベリーパイ上の1台目で撮影したファイルが
作成されます。


画面をクリックすると別画面で大きく表示されます。

戻る

5.cronの設定

上記の項でラズベリーパイ上に設定した
プログラム(スクリプト)を
決まった時間に起動させるために
ラズベリーパイのcronに
スクリプトを登録していきます。

5-1.定点撮影スクリプト(solorpi.py)の登録

Webカメラを定期的に
撮影をしてDropboxに
アップロードするスクリプト(solorpi.py)を
cronに登録します。

puttyから下記のコマンドを入力して
crontab -e

cronの編集をします。



画面をクリックすると別画面で大きく表示されます。

書式は
分<スペース>時間<スペース>日<スペース>月<スペース>曜日<スペース>実行するコマンド

例:毎日 9:00にsolorpi.pyを実行

0 9 * * * /home/pi/solorpi.py

例:毎日 17:30にsolorpi.pyを実行

30 17 * * * /home/pi/solorpi.py

撮影する時間を設定

指定は個々で例を参考に撮影する時間帯で指定してください。



画面をクリックすると別画面で大きく表示されます。

設定完了後は[Ctrl]+[X]を押して下さい。



画面をクリックすると別画面で大きく表示されます。
[Y]を押して編集を完了してください。

5-2.撮影画像削除処理の登録

cronに撮影した画像を削除する処理を追加します。
削除するタイミングとしては、
毎日の撮影を開始する前の時間に
撮影画像を保存するフォルダの
画像を削除しておきます。

puttyから下記のコマンドを入力して
crontab -e

cronの編集をします。

下記のコマンドをcronに追加しておいてください。
/home/pi/picフォルダに有る
拡張子がjpgのファイルを全て削除します。

30 5 * * * rm /home/pi/pic/*.jpg



画面をクリックすると別画面で大きく表示されます。
設定完了後は[Ctrl]+[X]を押して下さい。
[Y]を押して編集を完了してください。

5-3.再起動の設定

ラズベリーパイを1日1回再起動するようにします。

puttyから下記のコマンドを入力して
※sudo を必ず入力してください。

sudo crontab -e

cronの編集をします。

毎日朝5時にラズベリーパイを再起動する設定です。
下記の設定をrootのcronに登録します。
rebootの設定とsolorpi.pyの設定を
入力しているcronは別ユーザのcronなので
solorpi.pyの設定が見えなくても問題ありません。

0 5 * * * /sbin/reboot



画面をクリックすると別画面で大きく表示されます。
設定完了後は[Ctrl]+[X]を押して下さい。



画面をクリックすると別画面で大きく表示されます。
[Y]を押して編集を完了してください。



画面をクリックすると別画面で大きく表示されます。
[Enter]を押して終了してください。

戻る
これで完了です。
お疲れ様です。

 
スポンサーリンク


© 2024 ラズベリーパイとサンデープログラミング