image_pdfimage_print


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.

Teilen:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Post Navigation