Botón de apagado en la Raspberry Pi con GPIO

By Tutoriales Raspberry Pi, With 21 comments

 

Descripción

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 gráfica del sistema operativo que tengamos instalado. Se echa de menos un botón de encendido/apagado como el de cualquier otro dispositivo electrónico que se precie.

Como ya sabeis, apagar la Raspberry Pi “en caliente”, es decir, tirando del cable de alimentación o apagando el interruptor de la regleta donde esté conectada sin cerrar antes el sistema operativo hará que el sistema de archivos acabe corrompiéndose ya que existen una serie de procedimientos críticos que se realizan a nivel de software en el momento de cierre del sistema.

En este pequeño tutorial se muestra como montar un botón de encendido/apagado en la Raspberry Pi, pero lo mejor de todo es que podemos modificar el comando que se ejecutará al presionar el botón asi que podemos darle cualquier uso que imaginemos, como encender y apagar el WiFi o reiniciar las Raspberry, eso ya lo dejo a vuestro gusto…

 

Cableado y montaje

Para montar el botón podeis usar una breadboard para hacer pruebas o soldar los componentes directamente. En la imagen de más abajo podeis ver el esquema del cableado, como vereis he usado el pin de salida 3.3V y un pin GND, tambien el pin GPIO nº4 (BCM). Cuando se pulsa el botón 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.

Botón de apagado en la Raspberry Pi

Script Python

Una vez montado el esquema nos faltará iniciar un pequeño script en Python que detectará las pulsaciones del botón y lanzará el comando de apagado o de reiniciado de nuestra Raspberry Pi.

Este sería el código de nuestro script de apagado. En la línea 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 botón.

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

Automatización

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:

Una vez abierto escribimos “sudo python shutdown.py” justo antes de “exit 0” quedando asi:

Ahora podemos reiniciar o apagar nuestra Raspberry Pi sin problemas ya que la proxima vez que arranque se iniciará automaticamente el script.

ACTUALIZACIÓN: He encontrado otro script en Python que sirve para lo mismo y consume menos CPU!



 

Te ha gustado este artículo?, deja un +1 o un “Me gusta”!, a ti no te cuesta nada y a mi me motiva para seguir publicando contenidos interesantes!