Ab jetzt wird geprüft, wie lange der Button gedrückt wird. Wird der Button kurz gedrückt ca. 3 – 5 Sek, wird nun ein Software-Neustart ausgelöst. Drückt man länger, wird der Rechner heruntergefahren und bleibt aus.
Hier geht es zum Schaltplan (Raspberry Pi Auschalter/Neustart)
# import required modules
import RPi.GPIO as GPIO
import time
import subprocess
SleepTime = 1
press = 0
# set GPIO pin
PWpinNum = 31 # PW Power switch
LEDpinNum = 29 # LED
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM) # BCM (P5 Header)
GPIO.setup(PWpinNum, GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.setup(LEDpinNum, GPIO.OUT)
print „\n“
def blink(step):
for i in range(0,25):
GPIO.output(LEDpinNum, False)
time.sleep(step)
GPIO.output(LEDpinNum, True)
time.sleep(step)
def shutdown():
print „shutdown\n“
blink(0.20)
GPIO.output(LEDpinNum, False)
subprocess.call([„shutdown“, „-h“, „now“])
def reboot():
print „reboot\n“
blink(0.1)
GPIO.output(LEDpinNum, False)
subprocess.call([„shutdown“, „-r“, „now“])
try:
GPIO.output(LEDpinNum, False)
while True:
if GPIO.input(PWpinNum):
if press == 0:
time.sleep(SleepTime)
elif press < 8:
reboot()
break
else:
shutdown()
break
else:
press +=1
print press
time.sleep(0.5)
except KeyboardInterrupt:
GPIO.output(LEDpinNum, True)
GPIO.cleanup()