2015年03月16日

Raspberry Piで写真を撮影してDropboxにアップロードしてみる

【今日のゴール】
RaspberryPiにWEBカメラを接続し、1時間に1回、写真を撮って、Dropboxにアップする。

【使うもの】
WEBカメラ。自分は、下記のを使っています。

ELECOM Webカメラ 130万画素 マイク内蔵 イヤホンマイク付属 HD対応 ブラック UCAM-DLN130TBK

【前提】
下記のエントリーを参考に、DropboxAPIでRaspberryPiからファイルアップロードができること

Raspberry PiでDropboxにファイルをアップロードしてみた

【手順】
  • WEBカメラを接続
  • fswebcamのインストール
  • シェルの作成、cronの登録

WEBカメラを接続

WEBカメラをRaspberryPiにUSB接続します。

下記コマンドを実行し、認識しているか確認します。
$ lsusb
自分の場合は、以下のように表示されました。
Bus 001 Device 007: ID 056e:700d Elecom Co., Ltd


fswebcamのインストール

fswebcamというソフトウェアを使って撮影します。まずはインストール。
$ sudo apt-get update 
$ sudo apt-get install fswebcam
インストールが完了したら、試しに撮影してみます。
[-F 100 ]オプションは露出時間です。デフォルトだと暗いのでオプションで設定しています。
$ fswebcam -F 100 /tmp/test.jpg

シェルの作成、cronの登録

撮影してDropboxにアップロードするシェルを作り、1時間に一回実行するようにcronに登録します。

シェルの作成
$ sudo vi /usr/local/sbin/take_picture_DboxUpload.sh
シェルを作成し、以下のように編集します。
#!/bin/sh

# 定数定義
# ファイル名, ファイルパス、露出時間
FILENAME=raspi`date +%Y%m%d%H%M`.jpg
FILE=/tmp/${FILENAME}
EXPOSURE=100

# 撮影する
fswebcam -F ${EXPOSURE} ${FILE}

# 写真が存在しかつ、ファイルサイズが1以上であれば、アップロードする
if [ -f $FILE -a -s $FILE ]; then
    dropbox_uploader.sh upload $FILE $FILENAME
else
    exit 1
fi

# 写真を削除
rm -f $FILE

# 終了
exit 0
保存したら、実行権限をつけます。
$ sudo chmod +x /usr/local/sbin/take_picture_DboxUpload.sh

cronの登録

今回は、1時間に1回(毎時10分)にpiユーザで先ほど作成したシェルを実行するように設定します。
cron.dの中に新しくファイルを作ります。
sudo vi /etc/cron.d/pic_dropbox_cron
以下の様に編集します。
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

10 * * * * pi /usr/local/sbin/take_picture_DboxUpload.sh
保存したら、パーミッションを644にします。
sudo chmod 644 /etc/cron.d/pic_dropbox_cron


以上で1時間に1回、自動的に撮影し、Dropboxにアップロードをしてくれるようになります。




ちなみに、今回は、/etc/cron.d の中にファイルを追加して設定しましたが、crontabに追加してもOKです。




posted by Raspberry Pi at 15:45 | Raspberry Pi | このブログの読者になる | 更新情報をチェックする