|
#!/bin/sh
####-----------------------------------------------------------------
## fswebcamによる静止画の取り込み。
## 17:00 ~ 6:00の間、運用休止して、断り写真にする。
## 12:00に取った写真をwebcamdayにDAYyyyymmdd.jpgで
## 毎日保存する。
## 6:00に取った写真をwebcam0600にDAYyyyymmdd.jpgで
## 毎日保存する。
## 10分毎に取った写真をwebcamminにMINyyyymmdd.jpgで
## 毎日上書き保存する。(IEの一時ファイルの更新対策)
## USBカメラ動作不良の時、故障写真(ngcamera.jpg)にする。
## fwebcamにketsuka.txtのファイルを作り、属性を
## 666にしておく。
## カメラは、BUFFALO BSW20K06H USB PC Camera
####-----------------------------------------------------------------
#
Kymd="DAY$(date +%Y%m%d).jpg" # date(yyyymmdd)
Kyear=$(date +%Y) # 年(yyyy)
Khour=$(date +%H) # 時(00-23)
Kmm=$(date +%M) # 分(00-59)
K1200m=$(date +%H%M) # 時(00-23)分(00-59)
Kmd=$(date +%m%d) # 月日(mmdd)
#--------------------------------------------------------------------
# 6 時 から 17 時まで撮影する
#------------------------------------- Main Start -------------------
if [ $Khour -ge 6 -a $Khour -lt 17 ]; # Main (A)
then
#
#--------------------------------------------------------------------
# ( ( 分 + 5 ) ÷ 10 ) × 10 の整数計算をする
# 分を10分単位にする
#--------------------------------------------------------------------
#
KMmm=`expr \( \( $Kmm + 5 \) / 10 \) \* 10`
#
Khmm=$Khour
#echo "Khmm : $Khmm"
if [ $KMmm -eq 0 ]; # (A) 0分は、"00"にする
then
KMmm="00"
else # (A)
if [ $KMmm -eq 60 ]; # (B) 60分の時 "時+1"にする
then
KMmm="00" # 分は、"00"にする
Khmm=`expr $Khour + 1`
Kcnt=${#Khmm} # C) 文字数取得
if [ $Kcnt -eq 1 ];
then
Khmm="0$Khmm" # 一桁の時、"0"を追a?
fi # (C)
fi # (B)
fi # (A)
#--------------------------------------------------------------------
#
# 文字列 "月日"+"時"+"分"に、する
KKmm="$Kmd$Khmm$KMmm"
# 文字列 "時"+"分"に、する
Khm="$Khmm$KMmm"
## MINmmdd.jpg
Khhmm = \
"/var/www/html/www.smiyasaka.com/\
webcammin/MIN$KKmm.jpg"
#
Kminute=$(date +%M) # 分
INFILE = "/var/www/html/www.smiyasaka.com/\
webcam/camdata.jpg"
#
#--------------------------------------------------------------------
# catコマンドでUSBの情報を取得する。
# その中に "S: Product=BUFFALO
# BSW20K06H USB PC Camera"の
# 記述があるかないかでUSBカメラの動作を判断する。
#--------------------------------------------------------------------
#
ketsuka="/var/www/html/www.smiyasaka.com/\
webcam/ketsuka.txt"
cat /proc/bus/usb/devices > $ketsuka
USB1=$(grep "S: \
Product=BUFFALO BSW20K06H USB PC Camera" $ketsuka)
# ELECOM USB Camera
if [ -z "$USB1" ];
then
USB1=$(grep "S: Product=USB2.0 Camera" $ketsuka)
fi
# ELECOM USB Camera
if [ -z "$USB1" ];
then
USB1=$(grep "S: Product=Venus USB2.0\
Camera" $ketsuka)
fi
# Logicool USB Camera C270sCW
if [ -z "$USB1" ];
then
USB1=$(grep "S: SerialNumber=E981E810" $ketsuka)
fi
# Logicool USB Camera C270 H25.10.28
if [ -z "$USB1" ];
then
USB1=$(grep "S: SerialNumber=49333B40" $ketsuka)
fi
#
#
# USBカメラが動作している時には、抽出文字列が$USB1に
# セットされる。
#
#echo USB1 Data = $USB1
if [ -z "$USB1" ];
then
cp /var/www/html/www.smiyasaka.com/webcam/\
ngcamera.jpg $INFILE
#echo "camera NG"
exit
else # camera
#--------------------------------------------------------------------
# yahoo の温度を表示させる。
#--------------------------------------------------------------------
Y_file=$(cat /var/www/html/www.smiyasaka.com/myyahoo.txt)
#echo Read Data $Y_file
#
ary=(`echo $Y_file`) # 配列へ代入
#
#時刻:${ary[0]} 温度:${ary[1]} 雨量:${ary[2]}
#風速:${ary[3]} 日照時間:${ary[4]}
# 数値文字列を数値に変換する。
Kjikan=${ary[0]}
Kame=${ary[2]}
Mame=${ary[2]}
Ksun=${ary[4]}
#echo jikan = $Kjikan
#echo ame = $Kame
#echo sun = $Ksun
# 数字以外を削除する
Kjikan=$(echo $Kjikan | sed -e "s/[^0-9]//g")
# 簡易的に数字以外を削除する
Kjikan=`expr $Kjikan / 1`
#
# ex 10時のデータが 1024 になるので 100 で割って小数点で
# 分割した。 計算結果は、余りなしの整数値になる。
#
Kjikan100=`expr $Kjikan / 100`
#echo jikan 2 = $Kjikan
# H26.03.03 追加 0 の時には、24 が無いので元のデータを
# セットする。
#--------------------------------------
if [ $Kjikan100 -eq 0 ];
then
Kjikan=$Kjikan
else
Kjikan=$Kjikan100
fi
#--------------------------------------
# 不要な文字列を削除する
Kame=$(echo $Kame | sed -e "s/[^0-9]//g")
Kjikan=`expr $Kjikan / 1`
Kame=`expr $Kame / 1`
#
Ksun=$(echo $Ksun | sed -e "s/[^0-9]//g")
# $Ksun="" の判定 ( ""/0 でエラーに成る為の対策 )
if [ -z $Ksun ];
then
Ksun=0
else
Ksun=`expr $Ksun / 1`
fi
echo "Ksun = $Ksun"
#-------------------------------------------------------------------
T_00="__"
T_0="_"
T_1="時現在"
T_2="度"
T_4="天気"
#-------------------------------------------------------------------
# 天気の種分けを判定する。 雨量を追加
#----------------------------------- Tenki Start -------------------
if [ $Kame -ne 0 ]; # Tenki (A)
then
T_3="雨("$Mame"mm)" #"rainy" + (雨量)
else # Tenki (A)
#------------------------------------------------------------
# 快晴,晴,曇/晴,晴/曇の判定
# 7 時~ 18 時の間は、天気表示しない
#------------------------------------------------------------
if [ $Kjikan -ge 7 -o $Kjikan -le 18 ]; # Tenki (B)
then
#---------------------------------------------------------
# 日照時間が無い時(---)には、天気表示しない。
#---------------------------------------------------------
T_3="_"
T_4="_"
#
if [ ${ary[4]} != "---"]; # Tenki (C)
then
T_4="天気"
if [ $Kame -eq 0 -a $Ksun -gt 50 ]; # Tenki (D)
then
#---------------------------------------------
if [ $Ksun -gt 59 ];
then
T_3="快晴" # "very fine"
else
T_3="晴" # "fine"
fi
#---------------------------------------------
else # Tenki (D)
#---------------------------------------------
if [ $Ksun -gt 5 ];
then
T_3="曇/晴" #"cloudy/fine"
if [ $Ksun -gt 35 ];
then
T_3="晴/曇" #"fine/cloudye"
fi
else
T_3="曇" #"cloudy"
fi
#----------------------------------------------
fi # Tenki (D)
fi # Tenki (C)
#-------------------------------------------------------------
else # Tenki (B)
T_3="_"
T_4="_"
fi # Tenki (B)
fi # Tenki (A)
#----------------------------------- Tenki END --------------------
fi # camera
#------------------------------------ camera END --------------------
#
# タイトル文字合成 __○時現在_○度_天気○
#
Title=$T_00$Kjikan$T_1$T_0${ary[1]}$T_2$T_0$T_4$T_0$T_3
#
#----------------------- CentOS 6.5 ----------------------------
#-- BUFFALO Brightness=55% Contrast=60% -r 1280x1024 --
#-- ELECOM Brightness=45% Contrast=40% -r 1280x1024 --
#-- Logicool Brightness=65% Contrast=15% -r 1280x960 ----
#
/usr/bin/fswebcam -p YUYV --bottom-banner \
--line-colour '#FF000000'\
--banner-colour '#FF000000' -S 6 -r 1280x960\
--title $Title\
--font '/var/www/html/www.smiyasaka.com/\
VL-Gothic-Regular.ttf:32'\
--text-colour '#FFFF00'\
-s Brightness=65%\
-s Contrast=15%\
--timestamp '%Y-%m-%d %H:%M' --jpeg 95 --save $INFILE
#
#--------------------------------------------------------------------
# 6:00 と 6:01に保存する処理 日の出と太陽の位置を見る
#--------------------------------------------------------------------
if [ $K1200m -eq 0600 -o $K1200m -eq 0601 ];
then
cp $INFILE \
/var/www/html/www.smiyasaka.com/|
webcam0600/$Kymd
chown miyasaka:miyasaka\
/var/www/html/www.smiyasaka.com/webcam0600/$Kymd
fi
#--------------------------------------------------------------------
# 11:59 と 12:00に保存する処理
#--------------------------------------------------------------------
if [ $K1200m -eq 1211 -o $K1200m -eq 1212 ];
then
cp $INFILE \
/var/www/html/www.smiyasaka.com/webcamday/$Kymd
chown miyasaka:miyasaka\
/var/www/html/www.smiyasaka.com/webcamday/$Kymd
fi
#--------------------------------------------------------------------
# 10分毎に保存する処理
# 定刻に、写真が取得できない時があるので、
# 連続3回取るようにする。
#--------------------------------------------------------------------
#echo $Kminute
#echo $Khhmm
case $Kminute in
59|00) cp $INFILE $Khhmm;; # 00分
09|10) cp $INFILE $Khhmm;; # 10分
19|20) cp $INFILE $Khhmm;; # 20分
29|30) cp $INFILE $Khhmm;; # 30分
39|40) cp $INFILE $Khhmm;; # 40分
49|50) cp $INFILE $Khhmm;; # 50分
esac
#------------------------------------- Main Else -------------------
else # Main (A)
#--------------------------------------------------------------------
# 17:00~17:05の間だけ(終了画面)
# stop.jpg ---> camdata.jpg をする。
#--------------------------------------------------------------------
if [ $Khour -ge 17 ];
then
Tday="1705"
if [ `expr $K1200m \<$Tday` = 1 ];
then
cp /var/www/html/www.smiyasaka.com/webcam/\
stop.jpg $INFILE
fi
fi
fi # Main (A)
#------------------------------------- Main END --------------------
|
|