Arrêtez votre Raspberry Pi à l’aide d’un trombone

raspberry_pi_gpio-shutdown-pins

Lorsque vous utilisez votre Raspberry Pi sans tête, l’une des premières choses dont vous devez vous préoccuper est de savoir comment l’éteindre en toute sécurité. L’arrêter en retirant simplement l’alimentation peut entraîner une carte SD corrompue ou des fichiers endommagés. Si vous l’aviez connecté à un réseau, vous pourriez bien sûr simplement s’y connecter en SSH et émettre la commande «halt». Cependant, que faire si vous ne pouvez pas vous y connecter? Ou que faire si vous vouliez simplement un moyen de l’éteindre simplement et facilement sans toucher du tout à un clavier?

Voici où Adafruit intervient et nous donne un script simple qui surveillera une broche GPIO et s’arrêtera s’il détecte un changement d’état. À quoi cela sert-il? Eh bien, cela signifie que vous devez simplement connecter deux broches sur le GPIO avec un trombone (ou tout autre élément conducteur) pour émettre la commande d’arrêt. J’ai pris le tutoriel Adafruit et quelques autres guides en ligne et rassemblé les instructions suivantes.

Installation

Tout d’abord, vous aurez besoin d’un Pi avec Git installé dessus.

sudo apt-get install git

Ensuite, vous téléchargez le script depuis le Github d’Adafruit:

git clone https://github.com/adafruit/Adafruit-GPIO-Halt

Si cela ne fonctionne pas, essayez:

git clone git://github.com/adafruit/Adafruit-GPIO-Halt

Un aparté: Le script est écrit en C, il peut donc être modifié si vous voulez, par exemple, allumer une LED lorsque la commande d’arrêt est émise. Tu pourrait réécrivez-le en tant que programme Python, bien sûr, ce qui pourrait faciliter l’adaptation de certains.

Accédez au nouveau répertoire, compilez et installez:

cd Adafruit-GPIO-Halt
make
sudo make install

Cela installe le script dans / usr / local / bin / gpio-halt. Vous devez ensuite l’exécuter en tant que service.

Notez s’il vous plaît

Dans les sections suivantes, si vous utilisez un Pi plus ancien avec un en-tête GPIO à 26 broches, utilisez la broche GPIO 7 au lieu de 21.

Exécutez-le automatiquement sur Jessie / Buster

Si vous utilisez Raspbian Jessie, vous devrez le faire via systemd:

sudo nano /lib/systemd/system/gpio-halt.service

Cela créera un fichier et l’ouvrira. Voici le contenu de ce fichier:

[Unit]
Description=Short pins 21 and ground to shutdown the Pi
After=multi-user.target

[Service]
Type=idle
ExecStart=/usr/local/bin/gpio-halt 21 &

[Install]
WantedBy=multi-user.target

Ensuite, rendez le script exécutable par les bons utilisateurs:

sudo chmod 644 /lib/systemd/system/gpio-halt.service

Ensuite, dites à systemd d’utiliser le script:

sudo systemctl daemon-reload
sudo systemctl enable gpio-halt.service

Et redémarrez votre Pi

sudo reboot

Lorsque le Pi revient, vous pouvez vérifier l’état du service en faisant:

sudo systemctl status gpio-halt.service

Exécutez-le automatiquement sur Wheezy

Si vous utilisez l’ancien Raspbian Wheezy, vous devrez le faire via rc.local:

sudo nano /etc/rc.local

Avant ‘exit 0’, ajoutez la ligne:

/usr/local/bin/gpio-halt 21 &

Maintenant, redémarrez votre Pi:

sudo reboot

Maintenant, utilisez-le

Prenez un trombone (ou un autre objet conducteur) et touchez les deux dernières broches GPIO verticales en même temps. Si vous utilisez un Pi 26 broches, ce sera GND et GPIO7. Si vous utilisez un Pi 40 broches, ce sera GND et GPIO21. Voir le diagramme ci-dessous. La première fois que vous faites cela, cela peut valoir la peine de connecter un moniteur pour que vous puissiez le voir se produire. Attendez environ 15 secondes pour que la procédure d’arrêt se termine, puis débranchez votre Pi en toute sécurité.

raspberry_pi_gpio-shutdown-pins

Remerciements

Grâce à Alex Eames pour repérer le script d’arrêt d’Adafruit. Merci à Adafruit, évidemment. Grâce à Matt Hawkins pour les instructions systemd.