Good to Know Database

Raspbian: Software für den Raspberry Pi Power Button einrichten


Die auf der Seite Selbstbau-Anleitung: Raspberry Pi Power Button beschriebene Schaltung erweitert den Raspberry Pi Model B Rev 2.0 um zwei Taster um diesen herunter zu fahren und neu zu starten. Einer der beiden Taster ist an den GPIO31 Pin angeschlossen und benötigt eine zusätzliche Software. Diese Software wird auf dieser Seite beschrieben und ermöglicht das ordentliche Herunterfahren beziegungsweise einen Neustart des Systems zu initiieren.

Zur Auswertung des Eingangssignals am GPIO31 wird hier ein Python-Skript erstellt, welches automatisch beim Systemstart gestartet wird und den GPIO31 Pin überwacht. Wird der Shutdown Button für mindestens 0,5 Sekunden und kürzer als 3 Sekunden gedrückt, initiiert das Python-Skript einen Neustart des Systems. Wird der Shutdown Button jedoch für mehr als 3 Sekunden betätigt, fährt das System herunter und kann anschließend von der Stromversorgung getrennt oder über den Reset Button wieder aufgeweckt werden.

Als Grundlage wird hier das Raspbian Image vom 25.05.2013 (2013-05-25-wheezy-raspbian.zip) verwendet.

Erstellen Sie mit einem Editor das Python-Skript /usr/local/bin/shutdownbutton.py.

pi@raspberrypi ~ $ sudo vi /usr/local/bin/shutdownbutton.py

Fügen Sie in diese Datei das folgende Skript ein und speichern die Datei ab.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

#
# Creation:    09.06.2013
# Last Update: 07.04.2015
#
# Copyright (c) 2013-2015 by Georg Kainzbauer <http://www.gtkdb.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#

# import required modules
import time
import subprocess
import RPi.GPIO as GPIO

# set GPIO pin with connected button
GPIOPin = 31

# main function
def main():
  value = 0

  while True:
    # increment value if button is pressed
    if not GPIO.input(GPIOPin):
      value += 0.5

    # restart or shutdown selected
    if value > 0:

      # shutdown selected if value is larger than 3 or equal
      if value >= 3:
        subprocess.call(["shutdown", "-h", "now"])
        return 0

      # restart selected if value is less than 3
      elif GPIO.input(GPIOPin):
        subprocess.call(["shutdown", "-r", "now"])
        return 0

    # wait 500ms
    time.sleep(0.5)

  return 0

if __name__ == '__main__':
  # use GPIO pin numbering convention
  GPIO.setmode(GPIO.BCM)

  # set up GPIO pin for input
  GPIO.setup(GPIOPin, GPIO.IN)

  # call main function
  main()

Nachdem Sie die Datei erstellt haben, müssen Sie den Eigentümer und die Zugriffsrechte der Datei anpassen.

pi@raspberrypi ~ $ sudo chown root:root /usr/local/bin/shutdownbutton.py
pi@raspberrypi ~ $ sudo chmod 0755 /usr/local/bin/shutdownbutton.py

Damit das Python-Skript beim Systemstart automatisch gestartet wird, sollten Sie dieses in der /etc/rc.local eintragen.

pi@raspberrypi ~ $ sudo vi /etc/rc.local

Standardmäßig sollten Sie hier die folgenden Zeilen vorfinden.

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

exit 0

Fügen Sie jetzt vor dem Befehl exit, welcher sich in der letzten Zeile befindet, die folgende Zeile ein.

/usr/local/bin/shutdownbutton.py &

Nachdem Sie die /etc/rc.local angepasst haben, sollten Sie einen Neustart des Systes durchführen.

pi@raspberrypi ~ $ sudo shutdown -r now

Sobald das System wieder gestartet wurde, können Sie dieses über den Shutdown Button herunterfahren oder neu starten. Beachten Sie hierbei das bereits beschriebene Timing.

Weiterführende Tutorials

Raspbian: Automatisierte Installation der Software für den Raspberry Pi Power Button


Dieser Eintrag wurde am 09.06.2013 erstellt und zuletzt am 24.01.2016 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_36_2238.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2016 by Georg Kainzbauer