RaspberryPi shutdown button
Last Friday I got some spare time (finally!) and, with the help and tools of my friend Alfredo, we placed a button in the RaspberryPi case so, when I push it, a custom command its executed on the RaspberryPi, like for example, a clean system shutdown.
First lets start with some pictures of the final result:
And now the schematics (pins used in the schematics are 3.3v, GND and GPIO):
We mainly followed this post, but used a different GPIO port, we soldered the components (once we tested the schematics on a protyping board) and modified the code to launch a custom command. This is the resulting code we used to do a system shutdown (I removed some comments from the original code of the post):
import os import time import RPi.GPIO as GPIO GPIO.setmode(GPIO.BCM) GPIO.setup(4,GPIO.IN) prev_input = 0 while True: input = GPIO.input(4) if ((not prev_input) and input): os.system("sudo halt") prev_input = input #slight pause to debounce time.sleep(0.05)
The line highlighted is the one you should modify to set your custom command. To test it, you have to execute it as root:
$ sudo python gpio_button.py
and press the button. Finally, to launch this code in the startup process, just add it to /etc/rc.local (just before the exit 0):
$ sudo vi /etc/rc.local
Next steps: modify the program to detect single click, double-click and long click.