Table des matières:

Bouton de mise hors tension pour Raspberry Pi : 3 étapes
Bouton de mise hors tension pour Raspberry Pi : 3 étapes

Vidéo: Bouton de mise hors tension pour Raspberry Pi : 3 étapes

Vidéo: Bouton de mise hors tension pour Raspberry Pi : 3 étapes
Vidéo: Бесшумное zigbee реле в подрозетник без нулевой линии, особенности монтажа, установка конденсатора 2024, Novembre
Anonim
Bouton d'arrêt pour Raspberry Pi
Bouton d'arrêt pour Raspberry Pi

Le Raspberry Pi est une plate-forme informatique très utile qui permet de créer diverses applications de projet IoT/robotique/smart-home/…. La seule chose qu'il n'a pas, par rapport à un ordinateur normal, est un bouton d'arrêt et de mise hors tension. Alors, comment pouvons-nous en créer un nous-mêmes ? D'accord, faisons-le ensemble !

Pour ce tutoriel, vous aurez besoin des éléments suivants:

  • 1 Raspberry Pi déjà configuré et prêt à l'emploi
  • 1 maquette ou quelque chose qui vous permettra de créer le circuit électronique
  • 1 bouton poussoir
  • 2 fils de liaison

Si vous n'avez jamais utilisé de Raspberry Pi, vous pouvez consulter mon tutoriel sur comment et quoi faire pour le configurer:

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

Étape 1: Circuit électronique

Circuit électrique
Circuit électrique
Circuit électrique
Circuit électrique
Circuit électrique
Circuit électrique

Rien de super compliqué ici, c'est un circuit assez simple. Les 2 images ci-dessus expliquent la construction du circuit. Vous pouvez utiliser la broche GPIO de votre choix pour l'entrée du bouton, vous devrez juste vous assurer de mettre à jour le code pour refléter cela.

Expliquons rapidement comment cela va fonctionner:

  • le fil ROUGE prend le 3.3V à une extrémité du bouton-poussoir.
  • le câble NOIR relie l'autre extrémité du bouton poussoir à un Pi GPIO qui servira d'entrée.
  • par défaut, le bouton est ouvert, il n'y a donc aucune tension qui le traverse. Le câble NOIR est donc à 0V lorsque le bouton n'est pas enfoncé. Cela signifie que l'état logique de l'entrée Pi GPIO est 0.
  • lorsque le bouton sera enfoncé, la tension le traversera et le câble NOIR sera relié au 3,3V. Le Raspberry Pi verra alors une tension de 3,3V à son entrée, correspondant à un état logique de 1.

Étape 2: Code Python

Code Python
Code Python

Maintenant que le circuit est prêt à être utilisé, nous devons écrire le code qui l'exécutera, et j'utilise ici Python dans un environnement PyCharm. J'ai configuré le bouton pour éteindre le Raspberry Pi uniquement lorsqu'il est enfoncé plus de 3 secondes par conséquent. La raison pour laquelle je le fais est qu'il est très facile de l'appuyer accidentellement et que vous ne voulez pas éteindre votre Pi par accident.

L'écran d'impression ci-dessus provient de mon environnement PyCharm, et le code est le suivant (avec une différence mineure à la ligne 26 qui est liée à un autre projet mais non requise ici):

# Il s'agit d'un code pour éteindre le Raspberry Pi lorsque vous appuyez et maintenez un bouton défini pour désactiver Raspberry PiGPIO.setwarnings(False)GPIO.setmode(GPIO. BCM) # Schéma de numérotation des broches BroadcomGPIO.setup(button_poweroff, GPIO. IN, pull_up_down=GPIO. PUD_DOWN) # Bouton défini comme entrée pendant que True: GPIO.wait_for_edge(button_poweroff, GPIO. RISING) start = time.time() time.sleep(0.2) # Bascule anti-rebond tandis que GPIO.input(button_poweroff) == 1: time.sleep(0.01) length = time.time() - start if length > hold_time: os.system("sudo poweroff")

La première chose, si vous avez connecté le bouton-poussoir à un autre GPIO, est de mettre à jour la ligne 11 sur l'écran d'impression ci-dessus avec l'entrée GPIO appropriée:

button_poweroff = GPIO_X # Mise à jour avec le bon GPIO utilisé sur votre circuit

De plus, la variable hold_time vous permet de modifier le temps d'attente qui déclenche l'arrêt du Pi.

Étape 3: Comment lancer le script automatiquement après la procédure de démarrage

Comment lancer le script automatiquement après la procédure de démarrage
Comment lancer le script automatiquement après la procédure de démarrage
Comment lancer le script automatiquement après la procédure de démarrage
Comment lancer le script automatiquement après la procédure de démarrage

Maintenant que le code est prêt, il ne nous reste plus qu'à l'exécuter. Mais, ce serait pratique si nous pouvions exécuter ce script à chaque démarrage du Pi, de manière automatique, de sorte que le bouton fonctionnerait sans nous pour exécuter le script à chaque fois. Il existe de nombreuses façons de le faire. J'ai ajouté ici une ligne dans le fichier rc.local qui se trouve dans le dossier /etc/ de votre Pi. Il est exécuté dans le cadre de la séquence d'amorçage.

Vous devez ouvrir une ligne de commande et taper les commandes suivantes (1er printscreen ci-dessus):

cd /

cd etc sudo nano rc.local

La première commande vous emmènera de votre répertoire /home/pi vers le répertoire racine, qui est /.

La deuxième commande vous amènera alors dans le répertoire /etc/.

Enfin, le troisième ouvrira le fichier rc.local en tant que superutilisateur, avec tous les droits d'édition, dont vous avez besoin pour modifier le fichier.

Une fois dans le fichier, il suffit d'ajouter une ligne à la fin de celui-ci, mais avant l'instruction exit 0 (2ème printscreen ci-dessus):

# Ajoutez cette ligne au fichier rc.local pour lancer le script

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

Il y a quelques points auxquels vous devrez faire attention, ici:

  1. le nom de votre fichier: dans la ligne ci-dessus, je suppose que le fichier est shutdown_with_hold.py. Mais cela pourrait être ce que vous voulez, mettez simplement à jour le nom avec le vôtre.
  2. où vous avez enregistré votre fichier: dans la ligne ci-dessus, je suppose qu'il est enregistré dans votre répertoire /home/pi/Documents. Mais encore une fois, cela peut être n'importe où. Vous devez juste vous assurer de mettre le chemin absolu de votre fichier ici.
  3. le caractère "&" à la fin: c'est important, et il permet à cette commande de s'exécuter en tâche de fond

Et c'est tout! Alors maintenant, le script sera exécuté à chaque fois que votre Pi sera allumé, et vous n'aurez qu'à appuyer plus de 3 secondes sur le bouton pour l'éteindre.

Conseillé: