运行CRON作业时无法读取GPIO值

问题描述

我有一个用于检测运动的基本脚本,该脚本由钩在RasBerry PI上的PIR传感器记录。当以'pi'用户和root用户身份从终端手动运行时,脚本可以正常运行。但是,当我尝试在启动时运行它时,似乎传感器无法正常工作或我的脚本无法从/ sys /中读取相应的值。

  1. 脚本:
echo "4" > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio4/direction

while true;  do
    trap 'echo "4" > /sys/class/gpio/unexport' 0
    stat=`cat /sys/class/gpio/gpio4/value`
    echo $stat > /home/pi/Desktop/no-movement.txt
    if [ $stat == 1 ]
    then
       echo $stat > /home/pi/Desktop/movement.txt
       /usr/bin/omxplayer /home/pi/Desktop/sample.mp3
    fi
done
exit 0

  1. crontab中的条目:
@reboot /home/pi/Desktop/motion_music_player.sh

备注:

  1. 如您在脚本中所看到的,我在文本文件中有一些粗略的记录。 'no-movement.txt'确实得到更新,这意味着脚本肯定正在运行。
  2. 未创建“ movement.txt”,这意味着脚本无法读取相应的GPIO值(或传感器出现问题,但仅在启动时,传感器才能正常工作)。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)