Vous n'êtes pas identifié(e).
En gros, j'ai un vivarium avec une espèce de phasme tropical que j'élève et qui nécessite un micro climat particulier.
Le RASP est équipé d'une carte interrupteur relais 8 canaux 5V -> 230V que je pilote grâce aux GPIO du RASP. Je suis donc en mesure de contrôler des résistances chauffante pour la température et aussi un brumisateur pour l'humidité de l'air.
Ma question; J'aimerais via un script SH qui se déclenchera via crontab, automatiser la récupération des valeurs température et humidité et les injecter dans des variables.
Après c'est relativement simple de traiter les variables et de déclencher ou non les résistances et brumisateur selon les mesures récupérées. Mais je suis complètement bloqué pour automatiser la connexion, la récupération des valeurs et les injecter dans les variable.
J'aimerais que ça soit automatique sans mon intervention.
En vous remerciant par avance pour votre aide !
Françoué
Edit à bendia : séparation commande et retour comme indiqué là Voir le tuto : Le code, ça pique moins les yeux en couleur
Hors ligne
Il me semble donc qu'en utilisant sans l'option I (interactive), tu devrais arrivé à tes fins genre
Re-Edit : une solution en anglais là http://www.mathieupassenaud.fr/control- … h-scripts/ je corrige donc mon script
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
Hors ligne
me redirige vers la page help -_-
Edit à toto :
Mis la commande root sous la balise Commande root de la fenêtre d'édition du forum pour que ce soit plus lisible par tous.
Hors ligne
Hors ligne
#
En gros je suis connecté mais je gratte encore pour trouver mes valeurs !
Edit à toto :
Mis la commande en Commande root du forum.
Hors ligne
Donc là j'ai Characteristic value/descriptor: 02 f6 en retour de la commande. Maintenant il me faudrait un coup de pouce pour récupérer dans la variable uniquement 02f6 pour que ça donne:
Sans l'espace afin que je puisse traduire cette variable en décimal et la diviser par 10.. je pensais à truc du genre:
à titre d'info ça donne -> 758 en décimal et je divise par 10. J'obtiens 75,8% d'humidité !
Je pensais à un truc comme ça:
Merci d'avance pour vos retours !
Edit à toto :
Mis les balises du forum, etc...
Hors ligne
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
Ça te permet de récupérer
Reste ensuite à virer les espaces en début de chaine et au milieu.
De ce fait, je ne suis pas certain que cut soit la commande la plus appropriée, peut-être sed ou awk feraient-il mieux l'affaire ?
Cependant, il me semble que bash et autres shells considères les retours des commandes comme des chaines de caractères, et non comme des valeur numérique. Pour ça, il faut utiliser bc, où tu galères un peu avec les flotants
Du coup, un script shell est-il la meilleure solution pour faire ça ? Est-ce qu'utiliser le wrapper Python pour gatttool ne serait pas plus simple, au moins pour te renvoyer une valeur (que je garderais en pour mille perso), que tu peux ensuite gérer avec le shell pour commander tes broches GPIO ? Ceci-dit, il existe aussi un tas de modules python pour piloter ces mêmes broches. Si j'avais à le faire je ferrais tout en Python, qui te permettra aussi assez simplement de te faire une IHM, parce que les automates muets, je trouve ça compliqué à dépanner
Faudra peut-être déplacer le sujet dans la section script ou programation bientôt
@smolski : il était déjà dans le premier message le tuto sur la coloration syntaxique, à moi le point choco
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
Hors ligne
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
Edit : un poil d'explications quand même
Pour obtenir la valeur hexa, on utilise avec cut le délimiteur : ( option -d":") pour séparer le retour en 2 champs, et on récupère uniquement le deuxième champ avec l'option -d2
Pour obtenir la valeur hexa sans les espaces, on demande à sed de les remplacer par rien, donc de les supprimer
Et enfin, on converti la chaine hexa en décimal
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
Hors ligne
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
Hors ligne
Hors ligne
Par contre pas de virgule après la division !
Oui, il faut utiliser bc pour les virgules. Ou un truc (peut-être crado) du genre
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
Hors ligne
Hors ligne
Et voilà, niveau historique ça donne ->
vendredi 13 janvier 2017, 18:06:42 (UTC+0100)
75.9 % d'humidité
l'humidité est supérieur à 75%, fin du programme
vendredi 13 janvier 2017, 18:07:36 (UTC+0100)
74.8 % d'humidité
Déclenchement de l'humidificateur
75.7 % d'humidité
Déclenchement de l'humidificateur
79.2 % d'humidité
Déclenchement de l'humidificateur
82.7 % d'humidité
Déclenchement de l'humidificateur
85.6 % d'humidité
fin d'humidification, fin du programme
Du coup je vois exactement ce qui se passe !
Et pour finir, il faut que le script bosse tout seul sans que j'ai besoin de l'actionner, j'ajoute une ligne au fichier /etc/crontab ->
*/5 * * * * root /root/hum.sh
Je lui demande de se déclencher toutes les 5 minutes tous les jours.
Enfin le script est "intelligent" car je dois vaporiser les ronces histoire que les phasme puise boire un peu. C'est une "simulation" de la rosé du soir et du matin.
Donc l'humidité est relativement importante. Du coup bah le script ne se déclenche pas !
Hors ligne
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
Hors ligne
Hors ligne
Hors ligne