此脚本在我的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
答案 0 :(得分:0)
您需要一种机制,以便在醒来时收到通知。也许gpio会选择一个可以阻止它直到所需事件的选项。否则,您只需要定期轮询设备。或者,你可以保持旋转循环而不做任何输出。例如,
while sleep 1; do ...