Apagado seguro de la Raspberry Pi

Una de las cosas que peor le sientan a nuestra Raspberry Pi es el apagar quitando la corriente, para ello vamos a montar un sistema que apague la pI al pulsar o cruzar mediante un jumper los pines 39 GND y 37 GPIO 26

Crearemos el fichero piShutdown.py

#boton de apagado en los pines 39 GND y 37 GPIO 26

from gpiozero import Button 
import time 
import os

contador = 0

stopButton = Button(26) 

while True:
     if stopButton.is_pressed:
        time.sleep(0.5) 
        if stopButton.is_pressed:
           os.system("echo mmc0 >/sys/class/leds/led0/trigger")
           os.system("/bin/bash  /home/antonio/scripts/sapagado.sh")
           time.sleep(1)
           os.system("shutdown now -h") 
     time.sleep(0.5)
     contador = contador + 1
     if contador > 9:
        contador = 0
        # On
        os.system("echo 1 >/sys/class/leds/led0/brightness")
     else:
        # Off
        os.system("echo 0 >/sys/class/leds/led0/brightness")

Básicamente comprueba si se ha pulsado el GPIO 26 , y si se ha pulsado lo vuelve a comprobar al medio segundos , si es así devuelve el control del led de actividad a mmc0 , luego llama a un script que no enviara un mensaje por Telegram y luego procede a hacer un apagado seguro de la Raspberry pi

Mientras no se pulse el botón de apagado el led de actividad se apagara y hará un parpadeo de 500 ms cada 5 segundos

y el script sapagado.sh contendrá lo siguiente

curl -s -X POST https://api.telegram.org/bot"687657145443yiuu23:AAGZ-y0JLtiuyiuyi545454ZURxciyuiyue54545c14W73oMfsiyuiyfdsTt9K8"/sendMessage -d chat_id="4434540345919" -d text="🔌🔌🔌 Se ha pulsado el boton de apagar en la placa : $(echo $HOSTNAME | awk '{ print $1}') 🔌🔌🔌"

y para que arranque automaticamente modificaremos el fichero /etc/rc.local

sudo nano /etc/rc.local

dejandolo mas o menos asi

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

#boton de apagado en los pines 39 GND y 37 GPIO 26
sudo python3 /home/antonio/piShutdown.py &

exit 0

Y con esto y un bizcocho ………