2012年12月29日土曜日

デジカメをPQI Air CardでAndroidのテザリング子機として接続し、写真を自動で読み込んでみる。


ひとりぶろぐのmoyashiさんが楽しい事をしていたので真似してみた。



やりたい事は

テザリングONにしたAndroid端末にPQI Air Cardが接続したら自動でPQI Air Card内に保存された写真をAndroid端末内に取り込む。

Eye-Fiのダイレクトモード使えばいいじゃん?あれはダメだ、Eye-Fiと接続している間はネットに繋がらなくなるから。


使うアプリなどは以下



PQI Air Card側の設定

基本的にはmoyashiさんのところに書かれている通り。
autorun.shもそもままでもOKですが私はちょいと書き換えて使う事にしました。

#!/bin/sh
 
# IPアドレス情報を含むMentionの送り先のTwitter IDを記入
twitter_id=meyskld
 
# Stew GateのTokenを取得してxxxの代わりに記入 http://stewgate.appspot.com/sg1/
token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 
# もしうまくテザリングできなかったらsleepの数字を増やす
sleep 5
 
# 以下スクリプト本体
ifconfig mlan0 down
/usr/bin/w2
 
# sleep disable
kcard_cmd -s 0
 
stewgate='http://stewgate.appspot.com/sg1/post/'
 
script=`cat <<'EOT'
if (-e '/mnt/sd/counter.txt') {
    open(DATAFILE, "< /mnt/sd/counter.txt") or die("error :$!");
    my $count = ;
    $count = $count + 1;
    print "$count";
    open(DATAFILE, "> /mnt/sd/counter.txt") or die("error :$!");
    print DATAFILE $count;
} else {
    open(DATAFILE, "> /mnt/sd/counter.txt") or die("error :$!");
    print "0";
    print DATAFILE "0";
}
EOT
`
 
cnt=`perl -e "$script" ;`
 
sync; sync; sync
 
ip=`ifconfig mlan0 | grep inet | perl -e ' =~ / +inet addr:([0-9\.]+).+/;print "$1\n";'`
 
wget -O - --post-data="_t=${token}&msg=${twitter_id} Connected PQI Air Card IP: ${ip} ${cnt}" ${stewgate}

TwiProwlで私のID、「meyskld」というワードでタイムラインを監視させているのでMention飛ばす必要は無いのでこんな感じに。
PQI Air CardがAPに接続した事が分かればそれでOK…な感じです。

TwiProwlの設定

がんばれ

Taskerの設定

TaskerのPlug inとしてNotify My Androidを使用する事が出来ます。

Notify My AndroidがPQI Air CardがAPに接続しましたよ通知を受け取ったタイミングでFolderSyncの同期を始めるよう、Taskerのスクリプトを書きます。

TaskerでNew Profileを作成。
First ContextにEvent→3rd Party→Notifi My Androidを選択

中身はこんな感じにする。

実行するタスクはFolderSyncの同期を実行するようにするだけ。

テザリングの親機によってはDHCPで割り当てされるIPアドレスが繋がっている子機次第で変動する場合があると思います。
その場合はTaskerで割り当てされるであろうIPアドレス分、Profileを作成すれば良いだろう。

J Butterflyはテザリング設定の「許可されたユーザーのみ」設定を有効にしたら常に同じIPアドレスを割り当てるような動作をしてる(っぽい、あまりその辺検証してない)


FolderSyncの設定

アカウントにPQI Aire Cardに割り当てされるIPアドレスをサーバーアドレスとしてftpアカウントを追加する。
ログイン方法は匿名ログインを使用でOKだ。

次にFolderpairの登録を行う。
特に難しい設定は無いので説明は省く。
気をつける点としては「接続」設定の「Edge/3G/4Gを使用」にチェックを入れておく必要があるくらい。

PQI Air Cardとのやり取りはWiFiで行うのだが、Android端末はWiFi接続ではなく、3Gや4Gで繋がっているため、Taskerで呼び出した際に「Edge/3G/4Gを使用」にチェックを入れておかないと同期を始めてくれない。

同期フィルターでrawファイルを同期しないようにフィルターを登録するなりすると幸せになれるかと思います。


以上で設定はおわり。
Android端末のテザリングをONにした状態でカメラの電源を入れ、しばらく経つと勝手に写真を吸い上げ始めます。



GXRとPQI Air Cardの相性悪くてまともに使えないんだよなぁ…