I've a small and sweet Raspberry Pi Zero. When I switch on my Raspy zero without a monitor or keyboard or LAN, I don't want switch off the Pi directly by putting off the socket by the line. In fact this action can compromise the Raspy. You can breaking the kernel, and the system can crashing after that.
I've written a code that put the last pin in standby for a connection between the ground. When I connect the last pin with ground, the code starting. The code is a simple:
sudo shutdown -h now
Open your Terminal. Type in terminal:
Now you can see Nano editor. The Nano editor is a simple text editor installed on Raspbian PIXEL. You can write the code on Nano, and after you can start the program by typing:
You must use this command in directory where the file
is. If you have written the program in /home/pi/Desktop/, you can type:
After you can connect the pin 21 with ground, and see your Raspberry Pi ZERO switching off.
Now is the moment to connect the pin. After the starting of Raspberry Pi, you can connect the last pin to ground.
You can read on screen, the command:
sudo shudown-h now and the Raspberry Pi switch off.
Now if you want start automatically the script do you modify the rc.local file. This file start when you switch on the Raspberry Pi:
#!/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 python /home/pi/Desktop/shutdown.py & exit 0
Now you can mount a switch like in photo. I've mounted a tilt switch. When I turn upside down the Raspberry Pi, this switches it off.