Messages : 11
Sujets : 2
Inscription : Aug 2015
Salut!
maintenant que je sais comment temporiser mes relais, j'ai un autre probleme surement tout simple, je n'arrive pas a les commander avec un bouton !
j'ai modifier un script trouver sur internet, mais evidemment ça ne donne rien (et j'ai pas spécialement besoin que ça me cause!):
Code :
[== Indéfini ==]
#!/bin/bash
setup ()
{
gpio mode 4 in
}
waitButton ()
{
echo -n "Waiting for button ... "
while [ `gpio -g read 4` = 1 ]; do
gpio write 0 0
done
echo "marche"
}
setup
while true; do
gpio write 0 1
done
et évidemment j'aurais ensuite besoin de lancer le fameux
Code :
[== Indéfini ==]
gpio write 0 0
sleep 5
gpio write 0 1
sur une simple pression sur le bouton poussoir...
ah et de lancer alternativement gpio write 0 0 et gpio write 0 1 à chaque pression, comme un télérupteur...
petite précision: mes relais ont des optocoupleurs (si j'ai bien compris) et il faut bien 0 pour les actionner et 1 pour les éteindre.
Merci d'avance pour votre aide et votre patience !
Messages : 1,410
Sujets : 49
Inscription : Jun 2013
As tu essayé de lancer la commande de lecture seule ? As tu bien 1 ? Idem en maintenant le doigt sur le bouton et dans ce cas la valeur de retour change ?
Avant d'inclure ça dans un script (et donc avoir plus de sources d'erreurs) il faut s'assurer que le statut du bouton est bien capté
Raspberry Pi Home Server :
http://www.pihomeserver.fr
Hotspot Wifi avec portail captif pour Raspberry Pi:
Kupiki Hotspot
Messages : 11
Sujets : 2
Inscription : Aug 2015
Salut!
J'ai bien tester la commande de lecture, ça passe bien de 0 à 1 et inversement, c'est pour ça que comprend pas pourquoi ça donne rien...
Messages : 1,410
Sujets : 49
Inscription : Jun 2013
Possible qu'il faille mettre "1" au lieu de 1
Raspberry Pi Home Server :
http://www.pihomeserver.fr
Hotspot Wifi avec portail captif pour Raspberry Pi:
Kupiki Hotspot
Messages : 1,410
Sujets : 49
Inscription : Jun 2013
D'un autre coté tu n'appelles jamais la fonction waitButton donc ça ne pourra pas fonctionner
Raspberry Pi Home Server :
http://www.pihomeserver.fr
Hotspot Wifi avec portail captif pour Raspberry Pi:
Kupiki Hotspot
Messages : 11
Sujets : 2
Inscription : Aug 2015
Il faut donc supprimer cette ligne?
Messages : 1,410
Sujets : 49
Inscription : Jun 2013
Si tu veux qu'il exécute la fonction waitButton il faut l'appeler quelque part. A toi de voir où en fonction de ton besoin. Si tu galères je te suggère de commencer par pratiquer un peu soit le shell script soit le python avant de vouloir te lancer dans le projet sinon tu risques de te perdre
Raspberry Pi Home Server :
http://www.pihomeserver.fr
Hotspot Wifi avec portail captif pour Raspberry Pi:
Kupiki Hotspot
Messages : 11
Sujets : 2
Inscription : Aug 2015
C'est vrai qu'il faut que je m'entraîne aux script!
Pour le moment je voulais un script shell simple pour actionner mes relais avec un bouton, mais sans grande connaissance du script c'est vrai que c'est pas de la tarte!
A la base le script que j'ai modifié servait à faire dire au shell l'état du gpio 4, et j'ai bêtement tenter de le modifier, mais sans succès... Je continu mon apprentissage!
Messages : 11
Sujets : 2
Inscription : Aug 2015
ah, je pense être sur la bonne voie! j'ai feuilleter des documents sur le script bash, et j'ai essayer ceci:
Code :
[== Indéfini ==]
#!/bin/bash
while [ `gpio -g read 4` = 1 ]; do
gpio write 0 0
until [ `gpio -g read 4` = 0 ]; do
gpio write 0 1
done
mais il me dit "fin de fichier prématuré".
j'ai aussi tester avec "if, elif, fi", ça marche mais juste sur le coup, faudrait que ça fasse une boucle en permanence, c'est pourquoi je pense qu'il faut utiliser "while et until", mais alors pourquoi ce "fin de fichier prématuré ???
Messages : 1,410
Sujets : 49
Inscription : Jun 2013
Essaye quelque chose dans le genre
Code :
Sauvegarder l'état actuel du bouton
Tant que vrai
Si état du bouton différent de l'état sauvegarder alors
Sauvegarder l'état actuel du bouton
Lire la valeur actuelle du relai
Basculer le relai
Fin si
Fin tant que
L'état du bouton provient du gpio read et la bascule se fait avec le gpio write avec la valeur "1 - position actuelle" (0 devient 1 et 1 devient 0)
Qqch dans le genre ...
Raspberry Pi Home Server :
http://www.pihomeserver.fr
Hotspot Wifi avec portail captif pour Raspberry Pi:
Kupiki Hotspot
Messages : 11
Sujets : 2
Inscription : Aug 2015
je croit bien avoir compris! mais le script reste en attente tant que je n'ai pas appuyer sur le bouton, et s'arrête juste après... ça sert à rien de devoir lancer un script à chaque fois qu'on veut appuyer sur un bouton! je continue mes études du shell, et je reviens...
Messages : 446
Sujets : 18
Inscription : Aug 2015
un truc qui tourne en permanence ... Bon, l'idée est la même mais on verifie si le courant est coupé :
Code :
[== Indéfini ==]
#!/bin/sh
#On initialise l'état
etat=$(acpi -b | grep -c Discharging)
#Tant que l'état est de 1 (Donc déchargement)
while [ "$etat" -eq "1" ]
do
#Pause d'une seconde pour éviter surcharge script
sleep 1
#On met un message
echo Plus de courant
#On revérifie l'état
etat=$(acpi -b | grep -c Discharging)
done # Et ce tant que etat = 1 donc que ça décharge Dès que etat ne vaut plus 1 (redéfini dans la boucle, on sort de celle-ci et on continue l'exécution du script
#Si ça vaut 0, on affiche 0
echo $etat
Messages : 1,410
Sujets : 49
Inscription : Jun 2013
@nonogt : il faut que tu lises les réponses plus attentivement. La deuxième ligne dit "tant que vrai". Donc le script ne se terminera jamais (sauf un ctrl-c)
Raspberry Pi Home Server :
http://www.pihomeserver.fr
Hotspot Wifi avec portail captif pour Raspberry Pi:
Kupiki Hotspot
Messages : 11
Sujets : 2
Inscription : Aug 2015
@chris57100: désolé, je surchauffe un peu du citron avec tout ça, je serait plus attentif, promis!