démarrage auto d'une appli et fermeture / bouton poussoir

Le connecteur GPIO du Raspberry Pi, comment l'utiliser sur les Mode A, B et B+

Modérateur : Francois

Répondre
F5SWB
Messages : 5
Enregistré le : mar. 17 mars 2015 08:13

démarrage auto d'une appli et fermeture / bouton poussoir

Message par F5SWB » dim. 19 févr. 2017 07:48

Bonjour à tous,

Voilà ce qui m'amène :

J'utilise un script qui est lancé en service au démarrage et qui me permet de quitter ou de redémarrer proprement l'OS avec un bouton poussoir.
Une fois le système en veille je peux redémarrer l'os (Jessie) avec une pression sur le bouton.
Ce que je souhaiterai faire c'est qu'à chaque boot il me lance une application puis lorsque j'appuie sur le bouton,
il kill l'appli et quitte le système ....

Mon script shutdown.py :

#!/bin/python
# Simple script for shutting down the raspberry Pi at the press of a button.
import RPi.GPIO as GPIO
import time
import os
GPIO.setmode(GPIO.BCM)
GPIO.setup(3, GPIO.IN, pull_up_down = GPIO.PUD_UP)
# Our function on what to do when the button is pressed
def Shutdown(channel): os.system("sudo shutdown -h now")
# Add our function to execute when the button pressed event happens
GPIO.add_event_detect(3, GPIO.FALLING, callback = Shutdown, bouncetime = 2000)
# Now wait!
while 1: time.sleep(1)

Mon service dans /lib/systemd/system/shutdown.service :

[Unit]
Description=Shutdown button
After=multi-user.target
[Service]
Type=idle
ExecStart=/usr/bin/python /home/pi/shutdown.py
[Install]
WantedBy=multi-user.target

Le script que je souhaite lancer automatiquement se nomme tcademo1v15.sh, il lance une application qui s'appelle tcanim1v15.

Donc ma question ou dois-je placer le script tcademo1v15 pour qu'il se lance automatiquement à chaque démarrage,
et surtout pour que je puisse le quitter proprement après l'appui sur le bouton poussoir ?
j'ai bien essayé dans /etc/rc.local mais le pb c'est qu'il m'est impossible de quitter l'application même avec un ctrl-c ?
Le but est de ne pas avoir de clavier pour quitter d’où la nécessitée du bouton poussoir ....

Merci pour votre aide et bon dimanche :)

Ferois
Messages : 39
Enregistré le : jeu. 16 mars 2017 09:08

Re: démarrage auto d'une appli et fermeture / bouton poussoir

Message par Ferois » jeu. 16 nov. 2017 11:01

J'utilise un système comparable au tien, tout python.

Le bouton poussoir relie une broche GPIO à la masse. Le programme principal, lancé par une ligne dans rc.local, et que je veux pouvoir abandonner comporte :

Code : Tout sélectionner

# 
GPIO.setup(stop_prog,GPIO.IN,pull_up_down=GPIO.PUD_UP)
#
while GPIO.input(stop_prog) :
 	# corps du programme

maxmed
Messages : 13
Enregistré le : lun. 13 nov. 2017 12:30

Re: démarrage auto d'une appli et fermeture / bouton poussoir

Message par maxmed » jeu. 16 nov. 2017 12:00

bonjour tu peux avec rc.local
il faut cependant que tu precise que tu veux l executer en taceh de fond avec la commande nohup

example : https://openclassrooms.com/courses/repr ... riere-plan

maxmed
Messages : 13
Enregistré le : lun. 13 nov. 2017 12:30

Re: démarrage auto d'une appli et fermeture / bouton poussoir

Message par maxmed » jeu. 16 nov. 2017 12:04

si tu veux que ton service puisse couper un programme il te suffi d 'utiliser la librairie subprocess

https://docs.python.org/3/library/subprocess.html

Répondre

Retourner vers « Le GPIO »