Blink led gpio python (debutant...)

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
pchatill
Messages : 139
Inscription : 12 août 2015, 15:57

Blink led gpio python (debutant...)

Message par pchatill »

Bonjour.
J'ai ecris (Oui, OK, copié...) un petit script python pour faire clignoter une led.
# Import des modules
import RPi.GPIO as GPIO
import time

# Initialisation de la numerotation et des E/S
GPIO.setmode(GPIO.BOARD)
GPIO.setup(3, GPIO.OUT, initial = GPIO.HIGH)

# On fait clignoter la LED
while True:
GPIO.output(3, not GPIO.input(3))
time.sleep(0.5)

Je le declenche sur Le ON action d'un composant virtuel: script:///home/pi/domoticz/scripts/python/blink.py
Ca marche, la led clignote indefiniment.
Maintenant je voudrais l'arreter sur le Off action du meme composant.
Je vois pas comment faire?
Merci
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
NAME="Debian GNU/Linux"
VERSION_ID="13"
VERSION="13 (trixie)"
VERSION_CODENAME=trixie
DEBIAN_VERSION_FULL=13.4
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Blink led gpio python (debutant...)

Message par patrice »

Bonsoir
Il faut donc faire un autre script python et mettre un GPIO.LOW sur la broche

Sans rien avoir testé et au feeling qq chose comme

Code : Tout sélectionner

import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BOARD)
GPIO.setup(3, GPIO.OUT, initial = GPIO.LOW)
GPIO.output(3, not GPIO.input(3))
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
pchatill
Messages : 139
Inscription : 12 août 2015, 15:57

Re: Blink led gpio python (debutant...)

Message par pchatill »

Merci pour la réponse.
C'est aussi ce que j'avais pensé.
Mais j'ai l'impression que je ne peux pas lancer un deuxieme script alors que le premier tourne.
Y'a pas moyen de 'tuer' ce script?
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
NAME="Debian GNU/Linux"
VERSION_ID="13"
VERSION="13 (trixie)"
VERSION_CODENAME=trixie
DEBIAN_VERSION_FULL=13.4
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Blink led gpio python (debutant...)

Message par patrice »

Bonsoir
Si on peut lancer plusieurs script en meme temps
mais dans ton cas il se passe la chose suivante : meme si ton 2eme script eteint ta LED , le premier boucle toutes les 0.5 sec pour la rallumer
donc on a l'impression que le 2emme script ne fait rien alors que en fait il a bossé

Donc dans ton 2eme script ajoute un
import os
puis
au tout début
os.system("killall -9 le_nom_du_processus_a_tuer")
ou bien
os.system("ps -C le_nom_du_processus_a_tuer -o pid=|xargs kill -9")

vérifie le nom du processus a tuer par un ps -ef|pg avant
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
pchatill
Messages : 139
Inscription : 12 août 2015, 15:57

Re: Blink led gpio python (debutant...)

Message par pchatill »

Merci pour ta réponse.
Mais j'ai vraiment l'impression que mon deuxieme script ne se lance pas: aucune trace dans les logs.
Alors que si le premier ne tourne pas, on voit bien le script se lancer...

Pour le kill process, apres avoir lance mon premier script, j'ai 28 nouveau processus qui tournent...
J'ai aucune idée de celui a tuer!
Ci joint une copie d'ecran avec les process tournant avant et apres le script.
ScreenHunter_025.jpg
ScreenHunter_025.jpg (158.78 Kio) Consulté 9220 fois
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
NAME="Debian GNU/Linux"
VERSION_ID="13"
VERSION="13 (trixie)"
VERSION_CODENAME=trixie
DEBIAN_VERSION_FULL=13.4
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Blink led gpio python (debutant...)

Message par patrice »

Bonjour

Nous allons procéder autrement :

-Comment se nomme ton 2eme script ?

- Tu va lancer ton 2eme script depuis une ligne de commande shell et me dire ce qui est affiché.

- Comment se nomme ton 1er script ?

Ensuite nous verrons
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
pchatill
Messages : 139
Inscription : 12 août 2015, 15:57

Re: Blink led gpio python (debutant...)

Message par pchatill »

J'ai ouvert 2 fenetres de commandes avec putty (Parce que lorsque j'ai lancé mon premier script: blink.py,
je n'ai pas la main pour lancer le deuxieme: stopblink.py)
Donc: sudo ./blink.py dans premiere console: ma Led clignote
sudo ./stopblink.py dans deuxieme console: ma led arrete de clignoter (et la console me rend la main, mais je ne reprends pas la main sur la premiere console, comme si le script continuait de tourner, bien que la led ne clignote plus)

Voici le message de la console (j'ai le meme message d'erreur avec le premier script, mais ca marche quand meme)
sudo ./stopblink.py
./stopblink.py:7: RuntimeWarning: This channel is already in use, continuing anyway. Use GPIO.setwarnings(False) to disable warnings.
GPIO.setup(35, GPIO.OUT, initial = GPIO.HIGH)
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
NAME="Debian GNU/Linux"
VERSION_ID="13"
VERSION="13 (trixie)"
VERSION_CODENAME=trixie
DEBIAN_VERSION_FULL=13.4
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Blink led gpio python (debutant...)

Message par patrice »

Bien

Donc dans le second script tu rajoute le kill all sur blink.py

os.system("killall -9 blink.py")
ou bien
os.system("ps -C blink.py -o pid=|xargs kill -9")

tu refais la meme manip avec tes 2 putty et en lancant stopblink.py tu devrais pouvoir récupérer la main dan ton premier script ce qui prouvera bien que on tue bien le 1ere script
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
pchatill
Messages : 139
Inscription : 12 août 2015, 15:57

Re: Blink led gpio python (debutant...)

Message par pchatill »

J'ai des erreurs de syntaxe:
Quand je lance mon deuxieme script depuis la console: sudo ./stopblink.py
File "./stopblink.py", line 3, in <module>
os.system("killall -9 blink.py")
NameError: name 'os' is not defined

Ou quand je lance directement depuis la console: os.system("killall -9 blink.py")
-bash: Erreur de syntaxe près du symbole inattendu « "killall -9 blink.py" »

Ou alors: os.system("ps -C blink.py -o pid=|xargs kill -9")
-bash: Erreur de syntaxe près du symbole inattendu « "ps -C blink.py -o pid=|xargs kill -9" »
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
NAME="Debian GNU/Linux"
VERSION_ID="13"
VERSION="13 (trixie)"
VERSION_CODENAME=trixie
DEBIAN_VERSION_FULL=13.4
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Blink led gpio python (debutant...)

Message par patrice »

Apres le #!..../python
Il faut faire un
import os
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Répondre