Viele nutzen ein Netzteil mit einen Kippschalter dran, diese sind sehr unpraktisch zum richtigen Runterfahren des Systems. Sie trennen die Stromzufuhr und nach bedarf kann man damit wieder einschalten. Das ist das selbe wie jedes mal den Stecker zu ziehen und wieder einzustecken, sprich Sinnentfremdet wie ich finde. Dabei bietet das Raspberry Pi viele Möglichkeiten, Bastlerische Freiheit. Über die GPIO-Pins kann man viele Dinge steuern, so auch einen Powerswitch zum Ein -und Ausschalten. Dieser setzt sich auch zwei Kabeln und einen Taster (Druckschalter – momentan, Kippschalter oder Permanentschalter – rastend) zusammen. Man kann dazu noch eine LED hinzufügen damit man sieht das dieses Gerät auch Tatsächlich läuft. Wir benötigen also zwei Kabel, rot für die GPIO Verbindung und schwarz die Masse (GND) und einen einfachen Drucktaster. Angeschlossen wird das rote Kabel an den PIN 5 (GPIO 03) und schwarz an PIN 9 (GND).
Konfiguaration
Console/Terminal
sudo apt-get update; sudo apt-get dist-upgrade sudo apt-get install python-dev python3-dev gcc python-pip wget https://pypi.python.org/packages/e2/58/6e1b775606da6439fa3fd1550e7f714ac62aa75e162eed29dbec684ecb3e/RPi.GPIO-0.6.3.tar.gz sudo tar -zxvf RPi.GPIO-0.6.3.tar.gz cd RPi.GPIO-0.6.3 sudo python setup.py install sudo python3 setup.py install
im Homeverzeichnis die Datei powerswitch.py mit folgenden Inhalt erstellen
#!/usr/bin/python import RPi.GPIO as GPIO import time import subprocess GPIO.setmode(GPIO.BOARD) GPIO.setup(5, GPIO.IN, pull_up_down = GPIO.PUD_UP) oldButtonState1 = True while True: buttonState1 = GPIO.input(5) if buttonState1 != oldButtonState1 and buttonState1 == False: subprocess.call("shutdown -h now", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) oldButtonState1 = buttonState1 time.sleep(.1)
dann die Datei ausführbar machen
chmod +x powerswitch.py
nun soll dieser Pythonscript auch beim starten geladen werden
sudo nano /etc/rc.local
... python /home/pi/powerswitch.py & exit 0
Ganz wichtig ist das der python Befehl vor dem “exit 0 kommt”.
Nun muss noch in der config.txt
und den Eintrag dtparam=i2c_arm=off
suchen und abändern in
dtparam=i2c_arm=on
dann ein reboot und der Powerswitch sollte funktionieren.
Die LED ist etwas einfacher, die kommt nur an den PIN 8 (GPIO 14) und PIN 39 (GND).
Das wars.