|
||||||||
|
||||||||
| This page is also available in English | ||||||||
| Intro | [cacher] |
J'avais envie de construire un instrument de mesure qui devrait être placé
à l'extérieur, exposé aux intempéries. Mon intérêt dans
ce projet est de voir si mon appareil est capable de résister aux températures de
l'hivers québecois (parfois plus que -40 degrés celcius en plus du vent et oui,
il a
résisté) et
d'apprendre quelles sont mes erreurs lorsqu'il y a un pépin.Rien de plus difficile qu'un anémomètre. Il y a la partie électronique qui compte les tours des coupes à protéger de la pluie (à long terme, l'oxydation causé par l'eau serait un problème), et il y a la partie mécanique qui doit résister au vent (ne pas casser par grand froid). La partie mécanique doit en plus offrire le moins de résistance possible pour permettre la lecture des petits vents. |
| Construction | [cacher] |
| Installation | [cacher] |
| Controle | [cacher] |
| Logiciel | [cacher] |
| Microcontroleur: Le microcontroleut utilisé est un ATmega128 d'atmel. Il est programmé pour calculer la durée de chaque tour. À la fin de chaque tour, le temps écoulé depuis le dernier, en millisecondes, est envoyé via le port série a 9600 bauds en suivant la syntaxe suivante: delta: xxxx\nLorsqu'il ne se passe plus rien (pas de tour complet depuis 10 secondes), le message suivant est transmis afin que le logiciel de loggage puisse noter un arrêt complet du vent: status: stopped\nVoici un fichier contenant tout le code source: (compile avec gcc et avr-libc) windmon_avr.tar.gz Et si vous voulez consulter les sources en ligne: main.c usart.c usart.h Loggeur: Du coté de l'ordinateur, un logiciel s'occupe d'enregister dans un fichier la moyenne des 5 dernières minutes et la vitesse maximale des 5 dernières minutes dans un fichier. Le code source du loggeur est disponible ici: windmonitor.c Et voici quelques scripts: Configure le port série et démarre windmon-run en arrière plan: windmon-init Démarre windmon avec le bon fichier de destination et redirige le port série vers l'entrée standard de windmon: windmon-run Récupération des donnés à distance: J'utilise snmp pour récupérer les dernières valeurs à distance. Voici les lignes que j'ai ajouté dans snmpd.conf: exec windspeed /usr/local/bin/windmon-getlastaverage exec windspeedmax /usr/local/bin/windmon-getlastmaxVoici les scripts dont il est question: Retourne la vitesse moyenne: windmon-getlastaverage Retourne le maximum des 5 dernières minutes: windmon-getlastmax Génération des graphiques: J'utilise mrtg pour générer des graphiques à partir de sources snmp. Voici l'extrait de la configuration mrtg: Target[wind]: 1.3.6.1.4.1.2021.8.1.101.1&1.3.6.1.4.1.2021.8.1.101.1:public@cola SetEnv[wind]: MRTG_INT_IP="gate2.raphnet.net" MRTG_INT_DESCR="ping" Title[wind]: Wind speed MaxBytes[wind]: 2000 AbsMax[wind]: 2000 Options[wind]: gauge YLegend[wind]: Revolution Per Minute ShortLegend[wind]: rpm PageTop[wind]: <H1>Wind speed</H1> <TABLE> <TR><TD>System:</TD> <TD>ND</TD></TR> <TR><TD>Maintainer:</TD> <TD>Raphael Assenat (raph@raphnet.net)</TD></TR> <TR><TD>Description:</TD><TD>Wind speed in rpm </TD></TR> <TR><TD>Max Speed:</TD> <TD>2000 rpm</TD></TR> </TABLE> Le résultat: ![]() Moyenne de 5 minutes. Cliquez sur l'image pour consulter des graphiques représentants de plus longues périodes. L'Anémomètre est installé dans la ville de St-Hubert au Canada dans la province de Québec. |
| Conclusions | [cacher] |
| Je n'ai pas calibré mon anémomètre alors je ne sais pas exactement la
vitesse du vent. Par contre, je peux voir les variations. Je prévois ajouter d'autres
types de senseurs à l'extérieur pour connâtre la direction du vent,
l'humidité, la température, détection d'éclairs,
détection de pluie, luminosité, pression... Lorsque j'aurai installé d'autres types de senseurs, je vais tenter d'établir des relations entre différentes mesures et le vent. (par exemple, est-ce qu'une brusque variation de température augmente le vent?) J'attends l'hivers avec impatience pour voir si mon anémomètre va résister ou pas. |
Codé manuellement avec
|