Shell 运行CRON作业时无法读取GPIO值
我有一个基本的脚本用于检测运动,因为它是由一个挂在Rasberry PI上的PIR传感器记录的。当从终端以用户“pi”和root用户身份手动运行时,脚本工作正常。但是,当我尝试在启动时运行它时,可能是传感器不工作,或者我的脚本无法从/sys/读取相应的值Shell 运行CRON作业时无法读取GPIO值,shell,cron,gpio,pigpio,Shell,Cron,Gpio,Pigpio,我有一个基本的脚本用于检测运动,因为它是由一个挂在Rasberry PI上的PIR传感器记录的。当从终端以用户“pi”和root用户身份手动运行时,脚本工作正常。但是,当我尝试在启动时运行它时,可能是传感器不工作,或者我的脚本无法从/sys/读取相应的值 剧本: crontab中的条目: 备注: 正如您在脚本中看到的,我在文本文件中有一些粗略的日志记录。”不会更新movement.txt,这意味着脚本肯定正在运行 未创建“movement.txt”,这意味着脚本无法读取相应的GPIO值(或者传感
我会在脚本的最顶端添加一个
sleep 120
(当然是在`#!/bin/bash之后),让事情先开始(只是一个猜测)。祝你好运不要使用sysfs接口。它已弃用,将在新内核中默认禁用。使用libgpiod
及其工具。@Sheller谢谢,但这并没有奏效@0安德烈用ligpiod
成功了。如果你想得到被接受的答案,你可以发布一个带有文档的答案,我会把它标记为正确的答案。谢谢你们两位抽出时间。
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
@reboot /home/pi/Desktop/motion_music_player.sh