Page 1 sur 1

Anemometre

Posté : mar. 12 avr. 2016 20:12
par kojiro
Bonjour à tous

j'aimerai pourvoir mesurer la vitesse du vent grâce à mon anemometre et mon rasp , mais étant débutant je ne sais absolument pas comment faire.

merci pour votre aide

(l'anémometre est équipé d'une prise rj45, il ressemble a celui ci:
http://www.selectronic.fr/anemometre-de ... -1745.html
)

Re: Anemometre

Posté : mar. 12 avr. 2016 21:35
par Manfraid
Salut, le gros soucis c'est qu'il n'y a aucune information sur le câblage c'est peu être du rj45 mais pas forcément de l'ethernet

Re: Anemometre

Posté : mer. 13 avr. 2016 00:01
par bruno83
Ayant l’habitude de ces produits,il y des ILS ,donc tu peux alimenter en 3.3 v si tu veux et avec une résistance de tirage, tu mesures la fréquence sur une entrée gpio, détection d’interruption en python par exemple (GPIO. add_event_detect(N°Broche,GPIO.front,callback=ProgIT,bouncetime=trebond))
avec la fréquence et tu obtiens la vitesse du vents.
Exemple anémomètre sur somfy voir lien
vitesse vent (en m/s) = F (en Hz) / 4,5 (voir dossier ressources somfy)
ou vitesse vent (en km/h) = 3,6 * F (en Hz) / 4,5
http://tsin.langevin-la-seyne.fr/SIN/store-somfy.html
sur ta ressource il manque la doc mais c'est certainement ainsi qu'il fonctionne car 11 € il n'y pas d'électronique interne.
A+ bruno

Re: Anemometre

Posté : mer. 13 avr. 2016 09:22
par kojiro
Tous d'abord merci pour votre!
Bruno je dois donc couper l'embout rj45 et dénuder les fils?
Merci pour la Doc je v voir sa.
Salut

Re: Anemometre

Posté : mer. 13 avr. 2016 11:38
par bruno83
Oui, tu peux couper et souder des connecteurs adaptés au pi ,les rj45 ont été mis pour des mini stations météo avec différents capteurs branchés dessus.

Re: Anemometre

Posté : lun. 18 avr. 2016 20:45
par kojiro
Salut

j´ai un problème avec le code suivant.

Code : Tout sélectionner

import RPi.GPIO as GPIO 
GPIO.setmode(GPIO.BOARD) 
GPIO.setup(7, GPIO.IN)
GPIO. add_event_detect(7,GPIO.front,callback=ProgIT,bouncetime=trebond)
j´obtiens une erreur et je ne vois pas d´ou cela peux venir.

Merci pour votre aide. ;)

Re: Anemometre

Posté : lun. 18 avr. 2016 21:12
par bruno83
ton code n'est pas bon
GPIO. add_event_detect (N°Broche,GPIO.front,callback=ProgIT,bouncetime=trebond)

N°Broche Numéro de la broche sur laquelle on souhaite identifier l’évènement.
front Type de transition à détecter : RISING, FALLING, BOTH
ProgIT Nom du sous-programme d’interruption
trebond Temps de retard (ms) pour ne pas tenir compte des rebonds mécaniques du bouton qui risquerait d’exécuter le programme d’interruption plusieurs fois.

pour mesurer simplement la fréquence (avec une erreur ,si non il faut un timer interne et synchroniser ton signal avec la liaison spi), tu comptes le nombre d'impulsions par exemple pendant 10 secondes et f (hz)= N*0.1 mais pour une mesure de vitesse de vent la précision est suffisante.
A+bruno

Re: Anemometre

Posté : mer. 15 juin 2016 19:04
par cyval
bonsoir,
je suis nouveau en programmation python.
je cherche à programmer une interruption afin de ne pas surcharger mon programme principal.
au vu des échanges ci-dessus, j'ai compris qu'il fallait déclarer l'interruption dans le programme principal avec les instructions suivantes :
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.IN)
GPIO. add_event_detect(7,GPIO.front,callback=ProgIT,bouncetime=trebond)

Re: Anemometre

Posté : mer. 15 juin 2016 19:16
par cyval
désolé, j'ai posté le message précédent par mégarde.

je disais donc après avoir déclarer l'interruption en prenant en compte les remarques de bruno83, il faut créer un script pour l'interruption.

Maintenant concernant le programme principal, comment fait-on pour que celui-ci soit toujours en cours d’exécution ?
J'avais pensé à une boucle en fin de programme principal avec comme condition une combinaison de touche (par exemple CTRL+R) mais j'ai un doute.
cette façon de faire ne me semble pas propre car je vais consommer de la ressource processeur pour détecter la fin d'exécution du programme principal ?

Si le programme principal est fermé, l'interruption n'est plus active ?
Ou elle le reste jusqu'à ce que la cde suivante soit exécuter ?
"GPIO.remove_event_detect(channel)"

Merci d'avance pour votre aide

cdlt