Tabla de contenido:

Botón de apagado para Raspberry Pi: 3 pasos
Botón de apagado para Raspberry Pi: 3 pasos

Video: Botón de apagado para Raspberry Pi: 3 pasos

Video: Botón de apagado para Raspberry Pi: 3 pasos
Video: Botón de encendido en una Raspberry Pi 3. 2024, Noviembre
Anonim
Botón de apagado para Raspberry Pi
Botón de apagado para Raspberry Pi

La Raspberry Pi es una plataforma informática muy útil que permite crear varias aplicaciones de proyectos de IoT / robótica / hogar inteligente /…. Sin embargo, lo único que no tiene, en comparación con una computadora normal, es un botón de apagado y apagado. Entonces, ¿cómo podemos crear uno nosotros mismos? Muy bien, ¡hagámoslo juntos!

Para este tutorial, necesitará lo siguiente:

  • 1 Raspberry Pi ya configurada y lista para usar
  • 1 protoboard o algo que te permitirá crear el circuito electrónico
  • 1 pulsador
  • 2 cables de puente

Si nunca ha usado una Raspberry Pi, puede consultar mi tutorial sobre cómo y qué hacer para configurarla:

www.instructables.com/How-to-Setup-a-Raspberry-Pi-and-Start-Using-It/

Paso 1: circuito electrónico

Circuito electrónico
Circuito electrónico
Circuito electrónico
Circuito electrónico
Circuito electrónico
Circuito electrónico

Nada súper complicado aquí, es un circuito bastante sencillo. Las 2 imágenes de arriba explican la construcción del circuito. Puede usar cualquier pin GPIO que desee para la entrada del botón, solo deberá asegurarse de actualizar el código para reflejar eso.

Expliquemos rápidamente cómo va a funcionar esto:

  • el cable ROJO lleva los 3.3V a un extremo del botón pulsador.
  • el cable NEGRO conecta el otro extremo del pulsador a un Pi GPIO que se utilizará como entrada.
  • de forma predeterminada, el botón está abierto, por lo que no hay voltaje que lo atraviese. Entonces, el cable NEGRO está a 0V cuando no se presiona el botón. Esto significa que el estado lógico de la entrada Pi GPIO es 0.
  • cuando se presione el botón, el voltaje lo atravesará y el cable NEGRO se conectará al 3.3V. La Raspberry Pi verá un voltaje de 3.3V en su entrada, correspondiente a un estado lógico de 1.

Paso 2: código Python

Código Python
Código Python

Ahora que el circuito está listo para usarse, necesitamos escribir el código que lo ejecutará, y estoy usando Python en un entorno PyCharm aquí. Configuré el botón para apagar la Raspberry Pi solo cuando se presiona más de 3 segundos en consecuencia. La razón por la que lo hago es que es muy fácil que se presione accidentalmente y no desea apagar su Pi por accidente.

La pantalla de impresión de arriba es de mi entorno PyCharm, y el código es el siguiente (con una pequeña diferencia en la línea 26 que está vinculada a otro proyecto pero no se requiere aquí):

# Este es un código para apagar la Raspberry Pi al presionar y mantener presionado un botón definido para apagar Raspberry PiGPIO.setwarnings (False) GPIO.setmode (GPIO. BCM) # Esquema de numeración de pines Broadcom GPIO.setup (button_poweroff, GPIO. IN, pull_up_down = GPIO. PUD_DOWN) # Botón configurado como entrada mientras es verdadero: GPIO.wait_for_edge (button_poweroff, GPIO. RISING) start = time.time () time.sleep (0.2) # Cambiar antirrebote mientras GPIO.input (button_poweroff) == 1: time.sleep (0.01) length = time.time () - start if length > hold_time: os.system ("sudo poweroff")

Lo primero, si ha conectado el pulsador a un GPIO diferente, es actualizar la línea 11 en la pantalla de impresión anterior con la entrada GPIO correspondiente:

button_poweroff = GPIO_X # Actualice con el GPIO correcto utilizado en su circuito

Además, la variable hold_time le permite modificar el tiempo de espera que hace que el Pi se apague.

Paso 3: Cómo iniciar el script automáticamente después del procedimiento de inicio

Cómo iniciar el script automáticamente después del procedimiento de inicio
Cómo iniciar el script automáticamente después del procedimiento de inicio
Cómo iniciar el script automáticamente después del procedimiento de inicio
Cómo iniciar el script automáticamente después del procedimiento de inicio

Ahora que tenemos el código listo, solo necesitamos ejecutarlo. Pero sería conveniente que pudiéramos tener este script ejecutado cada vez que arranca la Pi, de forma automática, para que el botón funcione sin que nosotros ejecutemos el script cada vez. Hay muchas maneras de hacerlo. He agregado aquí una línea en el archivo rc.local que se encuentra en la carpeta / etc / de su Pi. Se ejecuta como parte de la secuencia de arranque.

Necesita abrir una línea de comando y escribir los siguientes comandos (primera pantalla de impresión arriba):

CD /

cd, etc. sudo nano rc.local

El primer comando lo llevará desde su directorio / home / pi al directorio raíz, que es /.

El segundo comando lo llevará al directorio / etc /.

Finalmente, el tercero abrirá el archivo rc.local como superusuario, con todos los derechos de edición, que necesita para modificar el archivo.

Una vez en el archivo, solo necesita agregar una línea al final, pero antes de la declaración de salida 0 (segunda pantalla de impresión arriba):

# Agregue esta línea al archivo rc.local para iniciar el script

sudo python /home/pi/Documents/shutdown_with_hold.py &

Hay algunas cosas a las que deberá prestar atención, aquí:

  1. el nombre de su archivo: en la línea anterior, supongo que el archivo es shutdown_with_hold.py. Pero podría ser lo que quieras, solo actualiza el nombre con el tuyo.
  2. donde ha guardado su archivo: en la línea anterior, supongo que está guardado en su directorio / home / pi / Documents. Pero, de nuevo, puede estar en cualquier lugar. Solo necesita asegurarse de poner aquí la ruta absoluta a su archivo.
  3. el carácter "&" al final: esto es importante y permite que este comando se ejecute en segundo plano

¡Y eso es! Entonces, el script se ejecutará cada vez que su Pi esté ENCENDIDO, y solo tendrá que presionar más de 3 segundos el botón para apagarlo.

Recomendado: