38 lines
823 B
Bash
38 lines
823 B
Bash
|
|
#!/bin/bash
|
||
|
|
|
||
|
|
GPIOPIN=4
|
||
|
|
MINTEMP=-30
|
||
|
|
MAXTEMP=40
|
||
|
|
CMD="${PWD}/external/Adafruit_Python_DHT/examples/AdafruitDHT.py"
|
||
|
|
OUTFILE="${PWD}/output"
|
||
|
|
|
||
|
|
touch "$OUTFILE"
|
||
|
|
CNT=0
|
||
|
|
|
||
|
|
function read_sensor () {
|
||
|
|
OUTPUT=`$CMD 22 $GPIOPIN`
|
||
|
|
T=`echo "$OUTPUT" | awk -F[=*%] '{print $2}'`
|
||
|
|
H=`echo "$OUTPUT" | awk -F[=*%] '{print $4}'`
|
||
|
|
CNT=$(($CNT+1))
|
||
|
|
echo "$CNT"
|
||
|
|
}
|
||
|
|
function check_output () {
|
||
|
|
if [[ $OUTPUT =~ Fail ]] || [[ ! $OUTPUT =~ Temp ]] || [[ ! $OUTPUT =~ Humidity ]] || [ ${T%.*} -lt $MINTEMP ] || [ ${T%.*} -gt $MAXTEMP ]; then
|
||
|
|
if [ $CNT -le 3 ]; then
|
||
|
|
sleep 5
|
||
|
|
read_sensor
|
||
|
|
check_output
|
||
|
|
else
|
||
|
|
echo "Error" > "$OUTFILE"
|
||
|
|
exit 0
|
||
|
|
fi
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
read_sensor
|
||
|
|
check_output
|
||
|
|
|
||
|
|
echo `date +%s` > "$OUTFILE"
|
||
|
|
echo "${T}" >> "$OUTFILE"
|
||
|
|
echo "${H}" >> "$OUTFILE"
|