Shutdown-Taster für Raspberry Pi: Unterschied zwischen den Versionen

Aus CyberWiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 17: Zeile 17:
  sudo pip install rpi.gpio
  sudo pip install rpi.gpio
===II. Software===
===II. Software===
Zuerst erstellen wir das Python-Script shutdown.py:
sudo nano /home/pi/shutdown.py
Die Datei enthält folgende Befehlszeilen.
# shutdown script for Raspberry Pi
# watch LOW level on pin 5 to enter sleep mode
# status led on pin 7: ON = ready, BLINK = confirm button
import RPi.GPIO as GPIO
import os
import time
# use the pin number as on the raspi board
GPIO.setmode(GPIO.BOARD)
# set pin 7 as output and HIGH, pin 5 is input
GPIO.setup(7, GPIO.OUT)
GPIO.output(7, True)
GPIO.setup(5, GPIO.IN)
# start the loop for every .5 seconds, waiting for LOW on pin 5
# then 2 short flashes with led to confirm and shutdown to sleep mode
while True:
        if not (GPIO.input(5)):
                GPIO.output(7, False)
                time.sleep(.1)
                GPIO.output(7, True)
                time.sleep(.1)
                GPIO.output(7, False)
                time.sleep(.1)
                GPIO.output(7, True)
                os.system("sudo shutdown -h now")
        time.sleep(.5)

Version vom 17. April 2022, 17:21 Uhr

https://forum-raspberrypi.de/forum/thread/5633-hoch-und-runterfahren-mittels-taster-incl-status-led/?pageNo=1

Für einen sicheren Betrieb von Rechnern ist es erforderlich, diese vor dem Ausschalten herunterzufahren. Insbesondere im Headless-Betrieb (wenn also weder Bildschirm noch Tastatur angeschlossen sind) ist es extrem lästig jedesmal ein Remote Login durchzuführen nur um z. B. den Musikserver herunterzufahren.

Die Beschreibung wurde von obigem Link übernommen und hier ein wenig komprimiert.

Hier wird also beschrieben, wie man mit wenig Bauteilen und einem kleinen Python-Script das Starten und saubere Herunterfahren des Raspberry Pi über die GPIO Schnittstelle durch einen externen Taster realisieren kann. Zusätzlich dient optional eine LED als Statusanzeige für Betrieb und Tastenbetätigung.

I. Vorbereitung

Zu allererst müssen wie immer die Paketquellen aktualisiert werden:

sudo apt-get update

Danach kann dann alles installiert werden, was man zum ansteuern der GPIO Ports via Python braucht:

sudo apt-get install python-dev
sudo apt-get install python-rpi.gpio

Wer dabei eine Fehlermeldung (Unable to locate package python-rpi.gpio) erhält kann das Paket auf alternativem Wege installieren:

sudo apt-get install python-pip
sudo pip install rpi.gpio

II. Software

Zuerst erstellen wir das Python-Script shutdown.py:

sudo nano /home/pi/shutdown.py

Die Datei enthält folgende Befehlszeilen.

# shutdown script for Raspberry Pi
# watch LOW level on pin 5 to enter sleep mode
# status led on pin 7: ON = ready, BLINK = confirm button

import RPi.GPIO as GPIO
import os
import time

# use the pin number as on the raspi board

GPIO.setmode(GPIO.BOARD)

# set pin 7 as output and HIGH, pin 5 is input

GPIO.setup(7, GPIO.OUT)
GPIO.output(7, True)
GPIO.setup(5, GPIO.IN)

# start the loop for every .5 seconds, waiting for LOW on pin 5
# then 2 short flashes with led to confirm and shutdown to sleep mode

while True:
        if not (GPIO.input(5)):
                GPIO.output(7, False)
                time.sleep(.1)
                GPIO.output(7, True)
                time.sleep(.1)
                GPIO.output(7, False)
                time.sleep(.1)
                GPIO.output(7, True)
                os.system("sudo shutdown -h now")
        time.sleep(.5)