用于启动程序的Python GPIO-hardware按钮

时间:2015-07-01 09:41:54

标签: python daemon gpio autostart

我写了一个小脚本来按下一个按钮启动pythonscript,该按钮连接到我的RasPi上的GPIO和GND:

import RPi.GPIO as GPIO
import time
import os

GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_UP)

def main():
    while True:
        input_state = GPIO.input(18)
        if input_state == False:
            print('Button Pressed')
            os.system("/home/pi/bootF.py")
            time.sleep(0.2)

if __name__ == '__main__':
    main()

这完全没问题,但是当我将脚本添加到我的rc.local

    /bin/sleep 20 && python /home/pi/buttonResponse.py & #also tried sudo python

并且当我按下按钮时它在启动后获得PID没有任何反应。我相信这与sudo有关,但我目前还不知道如何管理它。再次,用" sudo python buttonResponse.py"手动启动在这一点上工作。

这是我的grep在启动后的样子(按钮不起作用):

pi@raspberrypi ~ $ ps -ef | grep python
    root      2372     1  1 07:49 ?        00:00:00 /usr/bin/python -O /usr/share/wicd/daemon/wicd-daemon.py
    root      2402     1 69 07:49 ?        00:00:54 python /home/pi/buttonResponse.py
    root      2438  2372  1 07:49 ?        00:00:01 /usr/bin/python -O /usr/share/wicd/daemon/monitor.py
    pi        2478  2456  0 07:50 pts/1    00:00:00 grep --color=auto python

这就是我的grep在手动启动脚本后的样子,清空rc.local(有效!):

pi@raspberrypi ~ $ ps -ef | grep python                                         root      2372     1  1 07:54 ?        00:00:00 /usr/bin/python -O /usr/share/wicd/daemon/wicd-daemon.py
root      2435  2372  2 07:54 ?        00:00:01 /usr/bin/python -O /usr/share/wicd/daemon/monitor.py
root      2466  2445  0 07:55 pts/0    00:00:00 sudo python buttonResponse.py
root      2467  2466 90 07:55 pts/0    00:00:21 python buttonResponse.py
pi        2493  2476  0 07:55 pts/1    00:00:00 grep --color=auto python

有人可以帮我吗?

0 个答案:

没有答案