Sie sind auf Seite 1von 5

3/1/2016

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

Botn de apagado en la Raspberry Pi con GPIO


Inicio Tutoriales Raspberry Pi Botn de apagado en la Raspberry Pi con GPIO

Search

INSTAGRAM

3
AGO

Botn de apagado en la Raspberry Pi con GPIO


By Francesc Tutoriales Raspberry Pi GPIO, Raspberry Pi With 17 comments

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

Hola @mel_chisedek, gracias por seguirme, un


saludo! via uapp.ly

FPaez.com
@fpaezcom

8h

Hola @muchirijohn_m, gracias por seguirme, un


saludo! via uapp.ly

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

Hola @Florian_lee, gracias por seguirme, un


saludo! via uapp.ly

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.

BLOG PROTEGIDO POR

POSTS RECIENTES
Comprar chip para PSX y PSOne en

Espaa

Mdulo BlueTooth HC-06 y Arduino

http://fpaez.com/botondeapagadoenlaraspberrypicongpio/

Localizador GPS con Arduino y Ublox

1/5

3/1/2016

BotndeapagadoenlaRaspberryPiconGPIO|FPaez.com
Localizador GPS con Arduino y Ublox

Neo M2

Juego Simon Says con Arduino


Construye tu propio PONG con Arduino

Nano

Primeros pasos con Arduino


Vmetro con un circuito integrado

LM3914N y LEDs

Sensor de temperatura, presin y altitud

BMP180

Prevenir las 3 luces rojas en Xbox360


Instalar tarjeta de sonido USB en

Raspberry Pi

ETIQUETAS

Script Python

Arduino Audio Backup Batera BlueTooth chip

Una vez montado el esquema nos faltar iniciar un pequeo script en Python que detectar las pulsaciones del botn y

App

lanzar el comando de apagado o de reiniciado de nuestra Raspberry Pi.

CPU Cmara Dreamcast Emuladores Fecha Google

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

GPIO GPS GPU HC-06 HC-O5 Hora Humedad


infrarojos juego Lakka LED leds LM3914N Minecraft
Modo quiosco Monitorizacin MSP430 Nano OLED
Pantalla Playstation PONG PSOne PSX Push PWM

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

Servidor Servomotor Sim900 Simon Sistema Sonido


Speech Steam Streaming Tactil Tarjeta SD Telegram

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)

Temperatura Ultrasonidos vumetro WhatsApp


Xbox360

Para iniciar el script tan solo debemos escribir en el terminal:


1 sudo python shutdown.py

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

Detector de humo y gases txicos con Raspberry Pi

COMMENTS (17)
Marcelo

09/12/2015 at 12:08 AM

Muchas gracias funciono perfecto.

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

Hola Diego, este tutorial puede que te ayude: http://fpaez.com/raspbery-pi-control-de-la-camaracon-python/


Saludos

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

Muchas gracias por la ayuda!!, se agradece tu colaboracin!

Bricoarcade

08/12/2014 at 3:04 PM

Al revs, gracias a ti por estos artculos que pueden serv


ir a mucha gente que empieza con Raspberry.

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

Lo probar en mi proyecto, muchisimas gracias por compartir

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

Gracias a ti por comentar!

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

GPS Humedad infrarojos LED PSOne PSX

Mdulo BlueTooth HC-06 y Arduino

Neo M2

Juego Simon Says con Arduino


Construye tu propio PONG con Arduino

SOBRE FPAEZ.COM

Arduino Batera chip Cmara Emuladores GPIO

Comprar chip para PSX y PSOne en

Localizador GPS con Arduino y Ublox

ETIQUETAS

Radio

Python

Raspberry Pi Retrogaming
sensor Servidor Servomotor Streaming

Todos los pagos que realices en este sitio

SecurOS

web son 100% seguros gracias a la

Telegram Temperatura Ultrasonidos WhatsApp

proteccin al comprador de PayPal.

El sitio web FPaez.com no tiene ningn


tipo de relacin con la fundacin
Raspberry Pi ni con Arduino LLC.
Todos los derechos reservados.

Nano

Creado por Paginaswebyseo.es. Todos los derechos reservados.

http://fpaez.com/botondeapagadoenlaraspberrypicongpio/

5/5

Das könnte Ihnen auch gefallen