#!/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"