デジタル百葉箱製作覚え書き

ラズベリーパイで教材づくり IOT百葉箱

rsscan.shとrsscan1h.shについて

トラブルがないとネタがないんですね。
デジタル百葉箱2号機今日も順調に動作しています。


さて、昨日アップしたrsscan.shについて説明します。

#!/bin/bash

#20191220おー


picDATE=$(date +"%Y/%m/%d %H:%M:%S")

raspistill -w 640 -h 400 -o /home/pi/pic/now.jpg

echo $picDATE > /home/pi/pic/nowjpgdate.txt

sudo cp /home/pi/pic/now.jpg /var/www/html/

sudo cp /home/pi/pic/nowjpgdate.txt /var/www/html/

1行目はお約束で書くことになってるそうです。
4行目、日時のデータを変数に収めてます。
5行目撮影します。フォルダやファイル名を指定しています。常に上書きです。
6行目、日時のデータをテキストファイルに書き出します。これはWebページに撮影日時を表示させるためです。この変数を効率よくWebページに渡せればいいのですが、やり方がわからず、いったん手元のメモ用紙に書き出して持っていく、みたいな感じにしました。
7行目、now.jpgをWebフォルダにコピー、8行目日時のテキストデータを同様にコピー、です。Webフォルダにコピーなので、sudoでコピーします。


次。rsscan1h.shです。

#!/bin/bash

DATE=$(date +"%Y%m%d-%H")

#撮影できたか判断2019-12-20

if [ ! -e /var/www/html/date`date "+%Y%m%d-%H"`.jpg ] ; then


#ウェブカメラで撮影する。

raspistill -w 384 -h 288 -o /home/pi/pic/date`date "+%Y%m%d-%H"`.jpg

sleep 2s

sudo cp -u /home/pi/pic/date`date "+%Y%m%d-%H"`.jpg /var/www/html/


fi

1行目お約束。


2行目 date20191222-08 みたいな感じの日時データを変数DATEに収めてます。1時間に1回の撮影なので、分と秒はありません。これはファイル名として使います。


3行目 # が行頭についているのは、コメント行です。


4行目、もし、webフォルダに現在の日時のファイル date20191222-08.jpg みたいなのが、なかったら、次のことをしなさい、っていう。あら、$DATE使ってないという。
なんで確認するのかというと、デジタル百葉箱初号機で、fswebcamの撮影がまれに失敗して画像ファイルが生成されないことがあったんです。で、その対策で何度か撮影をリトライするようcrontabに書いてあるのですが、成功したときは再撮影の必要がないのでファイルの有無を確認する判断を組み込みました。エラー対策ですね。
この2号機のcrontabにも仕込んであります。でも2号機には必要なかったかも。
2号機、失敗しないので。


5行目空白。


6行目コメント行。


7行目raspistillで撮影しなさい。あらここもファイル名にせっかくの変数を使ってない。非効率な例です。


8行目、2秒待ちます。なんで待つのかというと、ファイルサイズが大きい写真を撮影したとき、次の処理が間に合わなくなる可能性があるかもしれないということで、ちょっと待ってあげます。
でも「待った?」と聞くとラズパイは「いまちょうど来たところ。」とこたえてくれると思うので、2秒待たなくても大丈夫だと思います。


9行目、Webフォルダにコピーします。なんで変数を使ってないのか自分。


10行目空白。


11行目、フィニッシュです。fi ってのが、なんかオシャレだと思いました。フランス映画を見終わったみたいな。


スクリプトというか、プログラムというか、これにはひとつの物語を感じてしまいます。