クラウド対応デジタルフォトフレーム


デジタルフォトフレームとRaspberryを組み合わせることで、クラウド対応のディジタルフォトフレームを作ることができます。
イメージを以下に示します。



@スマホやタブレットで撮った写真をGoogleDriveやDropBoxにアップロードします。
ARaspberryでGoogleDriveやDropBoxから写真を取り込みます。
Bディジタルフォトフレームに写真をコピーします。

今回はDropBoxを使いました。
DropBoxから写真を取り込むために「Dropbox-Uploader」を使います。
「Dropbox-Uploader」のセットアップはこち らを参照して ください。

以下にスクリプトを示します。
なお、USB-SWはGPIO15でON/OFFを行っていま す。

#!/bin/bash
#set -x
#/tmp内のImageファイルを全て削除
files=`find /tmp -name "*.jpg" -print`
if test -n "$files" ; then
    sudo rm /tmp/*.jpg
fi

#DropBox内のファイル一覧を取得
/home/pi/Dropbox-Uploader/dropbox_uploader.sh list | tail -n +2 | awk '{ print $3 }' > /tmp/list1

#Downloadコマンドを作成
sed 's/^/\/tmp\//' /tmp/list1 > /tmp/list2
paste /tmp/list1 /tmp/list2 | sed 's/^/\/home\/pi\/Dropbox-Uploader\/dropbox_uploader.sh download /' > tmp/list.sh

#Download実行
bash /tmp/list.sh > /dev/null

#USB-SWのON
sudo sh -c "echo 15 > /sys/class/gpio/export"
sudo sh -c "echo out > /sys/class/gpio/gpio15/direction"
sudo sh -c "echo 1 > /sys/class/gpio/gpio15/value"

#SD Cardのマウント
#deviceは各自の環境に合わせて変更してください
device="/dev/sdb1"
dfcnt=0
while [ $dfcnt -eq 0 ]
do
  sudo mount -t vfat ${device} /mnt/sdcard
  dfcnt=`df | grep -c /mnt/sdcard`
  sleep 10
done

#SD Card内のImageファイルを全て削除
files=`find /mnt/sdcard -name "*.jpg" -print`
if test -n "$files" ; then
    sudo rm /mnt/sdcard/*.jpg
fi

#新しいImageファイルをコピー
sudo cp /tmp/*.jpg /mnt/sdcard/
sync
sync
sync

#SD Cardのアンマウント
sudo umount -l ${device}
sleep 5

#USB-SWのOFF
sudo sh -c "echo 0 > /sys/class/gpio/gpio15/value"
sudo sh -c "echo 15 > /sys/class/gpio/unexport"


赤文字の部分を手元の環境に合せて変更した上で、上記のスクリプトを「DropDown.sh」などのファイル名で保存、実行してください。
Dropboxの「アプリ→AppName」フォルダーに保存されてい る写真を、ディジタルフォトフレームで見ることができます。