Table des matières:
- Étape 1: Circuit électronique
- Étape 2: Code Python
- Étape 3: Comment lancer le script automatiquement après la procédure de démarrage
Vidéo: Bouton de mise hors tension pour Raspberry Pi : 3 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
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
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
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
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:
- 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.
- 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.
- 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é:
Bouton de mise en sourdine physique de Zoom Meetings : 7 étapes (avec photos)
Bouton de mise en sourdine physique des réunions Zoom : si vous utilisez les réunions Zoom pour le travail ou l'école, ce bouton est fait pour vous ! Appuyez sur le bouton pour activer le mode muet ou maintenez le bouton enfoncé pour quitter la réunion (ou y mettre fin si vous êtes l'hôte). Un Ce qui est bien, c'est que cela fonctionne même si votre zoom windo
Moniteur de tension pour batteries haute tension : 3 étapes (avec photos)
Moniteur de tension pour batteries haute tension : Dans ce guide, je vais vous expliquer comment j'ai construit mon moniteur de tension de batterie pour mon longboard électrique. Montez-le comme vous le souhaitez et connectez seulement deux fils à votre batterie (Gnd et Vcc). Ce guide suppose que la tension de votre batterie dépasse 30 volts, w
Convertisseur de tension abaisseur en mode de commutation abaisseur de tension CC – CC (LM2576/LM2596) : 4 étapes
Convertisseur de tension abaisseur en mode de commutation abaisseur de tension CC - CC (LM2576/LM2596) : La fabrication d'un convertisseur abaisseur très efficace est un travail difficile et même les ingénieurs chevronnés ont besoin de plusieurs conceptions pour trouver la bonne. Un convertisseur abaisseur (convertisseur abaisseur) est un convertisseur de puissance DC-DC, qui abaisse la tension (tout en augmentant
Alimentation CC à tension réglable à l'aide du régulateur de tension LM317 : 10 étapes
Alimentation CC à tension réglable à l'aide du régulateur de tension LM317 : Dans ce projet, j'ai conçu une simple alimentation CC à tension réglable à l'aide du circuit intégré LM317 avec un schéma de circuit d'alimentation LM317. Comme ce circuit a un pont redresseur intégré, nous pouvons donc connecter directement une alimentation 220V/110V AC à l'entrée
Améliorez votre lancement spatial avec un bouton de mise en scène physique pour le programme spatial Kerbal : 6 étapes
Améliorez votre lancement spatial avec un bouton de mise en scène physique pour le programme spatial Kerbal : j'ai récemment acheté la version de démonstration du programme spatial Kerbal. Kerbal Space Program est un jeu de simulation qui vous permet de concevoir et de lancer des fusées et de les diriger vers des lunes et des planètes lointaines. J'essaie toujours d'atterrir avec succès sur la lune (o