Documente Academic
Documente Profesional
Documente Cultură
BotndeapagadoenlaRaspberryPiconGPIO|FPaez.com
info@fpaez.com
Esta web usa cookies propias y de terceros para mejorar tu experincia en lnea. Al seguir navegando en este sitio web entendemos que aceptas su uso.
Aceptar
Search
Menu
INICIO
RASPBERRY PI
ARDUINO
ELECTRONICA
TIENDA ONLINE
CONTACTO
Search
3
AGO
Descripcin
Uno de los fallos (bajo mi punto de vista) de la Raspberry Pi es el no disponer de una forma limpia de apagar la placa sin
interactuar con el terminal o con la interfaz grfica del sistema operativo que tengamos instalado. Se echa de menos un
botn de encendido/apagado como el de cualquier otro dispositivo electrnico que se precie.
Como ya sabeis, apagar la Raspberry Pi en caliente, es decir, tirando del cable de alimentacin o apagando el
interruptor de la regleta donde est conectada sin cerrar antes el sistema operativo har que el sistema de archivos
acabe corrompindose ya que existen una serie de procedimientos crticos que se realizan a nivel de software en el
momento de cierre del sistema.
En este pequeo tutorial se muestra como montar un botn de encendido/apagado en la Raspberry Pi, pero lo mejor de
todo es que podemos modificar el comando que se ejecutar al presionar el botn asi que podemos darle cualquier uso
Tweets
Seguir
FPaez.com
@fpaezcom
8h
FPaez.com
@fpaezcom
8h
que imaginemos, como encender y apagar el WiFi o reiniciar las Raspberry, eso ya lo dejo a vuestro gusto
Cableado y montaje
FPaez.com
@fpaezcom
8h
Para montar el botn podeis usaruna breadboard para hacer pruebas o soldar los componentes directamente. En la
imagen de ms abajo podeis ver el esquema del cableado, como vereis he usado el pin de salida 3.3V y un pin GND,
Twittear a @fpaezcom
tambien el pin GPIO n4 (BCM).Cuando se pulsa el botn se crea un cortocircuito entre el pin 3.3V y GND as que he
puesto una resistencia de 330 Ohms para no achicharrar la placa.
POSTS RECIENTES
Comprar chip para PSX y PSOne en
Espaa
http://fpaez.com/botondeapagadoenlaraspberrypicongpio/
1/5
3/1/2016
BotndeapagadoenlaRaspberryPiconGPIO|FPaez.com
Localizador GPS con Arduino y Ublox
Neo M2
Nano
LM3914N y LEDs
BMP180
Raspberry Pi
ETIQUETAS
Script Python
Una vez montado el esquema nos faltar iniciar un pequeo script en Python que detectar las pulsaciones del botn y
App
Este sera el cdigo de nuestro script de apagado.En la lnea 11 podeis ver sudo halt que es el comando para apagar la
Raspberry, lo podeis cambiar por sudo reboot o cuaquier otro comando que querais ejecutar cuando se presione el
botn.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import os
import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(4,GPIO.IN)
Pygame
Python Radio
Pi Retrogaming
Raspberry
Retropie SecurOS
sensor
prev_input = 0
while True:
input = GPIO.input(4)
if ((not prev_input) and input):
os.system("sudo halt")
prev_input = input
#Pequea pausa
time.sleep(0.05)
Automatizacin
El problema de este sistema esta en que deberemos iniciar el script manualmente desde consola cada vez que
arranquemos la Raspberry asi que vamos a automatizar el proceso. Abrimos un terminal y escribimos:
1 sudo vi /etc/rc.local
Una vez abierto escribimos sudo python shutdown.pyjusto antes de exit 0 quedando asi:
1 sudo python shutdown.py
2 exit 0
Ahora podemos reiniciar o apagar nuestra Raspberry Pi sin problemas ya que la proxima vez que arranque se iniciar
automaticamente el script.
ACTUALIZACIN: He encontrado otro script en Python que sirve para lo mismo y consume menos CPU!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# Importamos los modulos para enviar comandos al sistema y acceder a los pines GPIO
from subprocess import call
import RPi.GPIO as gpio
# Definimos una funcion para que el script no se detenga
def loop():
raw_input()
# Definimos una funcion que se ejecutar cuando se llame a la interrupcin
def shutdown(pin):
call('halt', shell=False)
gpio.setmode(gpio.BOARD) # Ponemos la placa en modo BOARD
gpio.setup(4, gpio.IN) # Configuramos el pin 4 como entrada
# Configuramos una interrupcin para cuando se aprete el boton
gpio.add_event_detect(4, gpio.RISING, callback=shutdown, bouncetime=200)
loop() # Iniciamos la funcin para que el script siga en marcha
Te ha gustado este artculo?, deja un +1 o un Me gusta!, a ti no te cuesta nada y a mi me motiva para seguir publicando
contenidos interesantes!
Twittear
26
18
Megusta
26
Share
Compartir
Artculos Relacionados:
http://fpaez.com/botondeapagadoenlaraspberrypicongpio/
2/5
3/1/2016
BotndeapagadoenlaRaspberryPiconGPIO|FPaez.com
Sensor
ultrasnico HCSR04 para
Controlar un
servomotor con
Raspberry Pi
Sensor de
movimiento
infrarojo HC-
Detector de
humo y gases
txicos con
COMMENTS (17)
Marcelo
09/12/2015 at 12:08 AM
Erick
09/11/2015 at 5:06 PM
Hola, tengo una duda, al inicio estaba funcionando bien el primer script, despus de reiniciar la raspberry ya no
est funcionando la manera automatizada. Me aparece el siguiente error al arrancar:
python; cant open file shutdown.py : [Errno 2] No such file or directory
[FAIL] startpar: service(s) returned failure: rc.local failed!
Alguien me podra decir a que se debe?? ya verifiqu que estn los archivos y que el cdigo es correcto.
Saludos
Luis
06/10/2015 at 10:32 AM
Buenas a todos y gracias por el artculo. No tengo ni idea de electronica y quera hacer la siguiente pregunta. N
o quiero usar una broadboard adicional sino directamente colocar el botn de apagado seguro en los pines de
la raspberry. Pero no entiendo muy bien como conectar la resistencia ni que tipo de resistencia usar. A parte lo
quiero para usar con la distribucin retropie, el script es compatible con esta distribucin?. Me podras ayudar
con este tema y hacerme un esquema para novatos de como debera colocar todo.
Muchas gracias de antemano y felicidades por el post.
David
11/08/2015 at 5:09 PM
Buenas Armando y compaeros yo hice una recreativa pero preferido cargar en vez el pipley el mame desde el
inicio con el retrogame para ir cargando procesos al inicio solo debemos poner & detrs de cada linea de pro
ceso
d1e90
05/03/2015 at 5:11 AM
buenas noches espero se encuentren bien, me podran ayudar debo hacer captura de 400 fotos,
mediante un pulsador con mi raspicam y python, solo he logrado tomar 1 y tambin deseo que caca que encie
nda la raspberry y presione el pulsador capture las imgenes hasta que la raspberry se apague con otro pulsad
or. de antemano muchas gracias.
estar atento
Francesc
05/03/2015 at 12:46 PM
Armando
05/12/2014 at 11:29 AM
Hola, he probado su artculo y me funciona perfecto tu primer script. El problema es que mi Raspberry arranca
ya otro programa en Python (estoy usando una distribucin de piplay para emular juegos). Cmo hago para qu
e se ejecute este script despues del otro (en .profile se ejecuta python launchmenu.py que supongo es la que a
rranca la interface. Si pongo despues && elprograma.py funcionara?
Lo he automatizado segn su artculo y se queda esperando a que pulse el botn y no llega a arrancar nunca el
men principal. teniendo que quitarlo del proceso automtizado.
Gracias y enhorabuena por su artculo
Francesc
05/12/2014 at 2:16 PM
Hola Armando, has puesto sudo python shutdown.py en el archivo /etc/rc.local?. Eso pasa por
que el script de shutdown tiene un bucle infinito y no deja avanzar el programa hasta que no se r
ompe el bucle. Intenta lanzar los 2 scripts desde rc.local, primero el shutdown y luego el de pipla
y. Recuerda poner los 2 comandos justo antes de exit 0.
Bricoarcade
06/12/2014 at 8:00 AM
Buenas Francesc y Armando. Creo que la solucin es que ejecutes el script Python t
erminando en & y no en && -lo que hace que se lance en segundo plano-. As lo hac
emos nosotros ya que a veces, usamos una versin muy modificada/personalizada
http://fpaez.com/botondeapagadoenlaraspberrypicongpio/
3/5
3/1/2016
BotndeapagadoenlaRaspberryPiconGPIO|FPaez.com
emos nosotros ya que a veces, usamos una versin muy modificada/personalizada
de la distribucin que mencionas y le incluimos un botn de apagado.
La orden sera sudo python shutdown.py&
Espero que te sirva.
Francesc
06/12/2014 at 9:17 AM
Bricoarcade
08/12/2014 at 3:04 PM
Armando
09/12/2014 at 11:37 AM
Gracias, me ha servido la orden que indicaba con un solo &. Aun as, s
olo me funciona el script de Francesc, seguir intentando a ver qu p
uede ser.
Walter
29/11/2014 at 2:26 AM
funciona para Raspberry pi b+ y son los mismo pines gpio ya que son 40 en la b+
Por favor ayudemen
Francesc
29/11/2014 at 7:20 AM
Aqu tienes un mapa de los pines GPIO de la Raspberry Pi B+, la disposicin es la misma pero am
pliada. Espero que te ayude!, saludos!
http://fpaez.com/wp-content/uploads/2014/11/gpiobplus.png
William
09/11/2014 at 4:24 AM
Miguel Angel
04/08/2014 at 6:09 AM
Muy buen artculo!, estaba buscando algo asi!. Gracias por compartir!!.
Francesc
04/08/2014 at 2:31 PM
Deja un comentario
Tu direccin de correo electrnico no ser publicada. Los campos necesarios estn marcados *
Comentario
Nombre *
Correo electrnico *
Web
PUBLICAR COMENTARIO
http://fpaez.com/botondeapagadoenlaraspberrypicongpio/
4/5
3/1/2016
LTIMOS TUTORIALES
BotndeapagadoenlaRaspberryPiconGPIO|FPaez.com
PAGO SEGURO
Espaa
Neo M2
SOBRE FPAEZ.COM
ETIQUETAS
Radio
Python
Raspberry Pi Retrogaming
sensor Servidor Servomotor Streaming
SecurOS
Nano
http://fpaez.com/botondeapagadoenlaraspberrypicongpio/
5/5