Bash脚本在检测到移动时拍摄快照

时间:2014-11-10 13:46:22

标签: bash raspberry-pi

此脚本在我的Raspberry Pi上运行。我想读取一个返回0或1的运动传感器的状态。使用raspistill我拍照。它工作正常,但不知何故,echo "motionb is 0"的部分经常被调用。我希望它只被调用一次,然后在没有运动时再不被调用。

还有人有一些改进建议吗?我感谢任何帮助:)

#!/bin/bash

motionB=false

while true; do
        motion=$(gpio read 0)
        if [ $motion -eq 1 ]
        then
                if [ "$motionB"==false ]
                then
                        echo "Want to take photo!"
                        DATE=$(date +"%Y-%m-%d_%H%M")
                        raspistill -vf -hf -o /var/www/images/$DATE.jpg
                        motionB=true
                        echo "Took Photo!!"
                fi
        else
                if [ "$motionB"==true ]
                then
                        echo "motionB is false"
                        motionB=false
                fi
        fi
done

1 个答案:

答案 0 :(得分:0)

您需要一种机制,以便在醒来时收到通知。也许gpio会选择一个可以阻止它直到所需事件的选项。否则,您只需要定期轮询设备。或者,你可以保持旋转循环而不做任何输出。例如,

while sleep 1; do ...