Ligne 6 : |
Ligne 6 : |
| [[Fichier:Anemometre.png|267px]] | | [[Fichier:Anemometre.png|267px]] |
| | | |
− | Le capteur produit une tension de sortie proportionnelle à la vitesse du vent (entre 0 et 5V), il suffit donc de brancher ce capteur sur une entrée analogique pour déterminer la vitesse du vent sur un microcontrôleur 5V comme Arduino UNO. | + | Le capteur produit une tension de sortie entre 0 et 5V proportionnelle à la vitesse du vent. |
| + | |
| + | Il suffit donc de brancher ce capteur sur une entrée analogique pour déterminer la vitesse du vent sur un microcontrôleur 5V comme Arduino UNO. |
| | | |
| La vitesse du vent est calculée avec la formule 6*VOut. Une tension de 2.5V correspond à une vitesse de 15m/s. | | La vitesse du vent est calculée avec la formule 6*VOut. Une tension de 2.5V correspond à une vitesse de 15m/s. |
| + | |
| + | '''Relation pragmatique entre vitesse du vent et ressenti:''' |
| + | |
| + | [[Fichier:vitesse-vent.jpg|800px]] |
| | | |
| '''Détails techniques:''' | | '''Détails techniques:''' |
Ligne 48 : |
Ligne 54 : |
| | | |
| == Code == | | == Code == |
| + | |
| + | Le code MicroPython ci-dessous effectue une lecture sur l'entrée analogique A3 (IO39). Cette lecture 12 bits (0-4095) est convertie en tension d'entrée (0-3.3V). |
| + | |
| + | Elle est ensuite convertie en tension de sortie sur l'anémomètre (0-5V) pour enfin être converti en vitesse exprimée en m/s. |
| + | |
| + | Enfin, la vitesse en km/h est obtenue en multipliant la vitesse en m/s par 3.6. |
| + | |
| + | Voici le contenu du script que vous pouvez téleverser sur votre carte MicroPython pour y être exécuté. |
| + | |
| + | <syntaxhighlight lang="python"> |
| + | # |
| + | # Anemometer measurement |
| + | # |
| + | # See tutorial: https://wiki.mchobby.be/index.php?title=MICROPYTHON-ANEMOMETER |
| + | from machine import Pin, ADC |
| + | from time import sleep |
| + | |
| + | A3 = 39 # Analog 3 on IO39 |
| + | # Resistor Divider at ADC input |
| + | R_BRIDGE_RATIO = 0.68117 # See tutorial |
| + | |
| + | ana = ADC(Pin( A3 )) |
| + | ana.atten( ADC.ATTN_11DB ) # Full 3.3V Range |
| + | |
| + | while True: |
| + | value = ana.read() # 0..4095 |
| + | v_esp = 3.3 * value / 4096 |
| + | v_anem = v_esp / R_BRIDGE_RATIO |
| + | # Wind speed in meter per second |
| + | speed_mps = 6 * v_anem |
| + | # wind speed in Km per Hour |
| + | speed_kmph = speed_mps * 3.6 |
| + | |
| + | print( "value: ", value ) |
| + | print( "m/s:", speed_mps ) |
| + | print( "km/h:", speed_kmph ) |
| + | print( "--------------------" ) |
| + | sleep( 0.5 ) |
| + | </syntaxhighlight> |
| + | |
| + | Ce qui produit les résultats suivants: |
| + | |
| + | <nowiki>value: 0 |
| + | m/s: 0.0 |
| + | km/h: 0.0 |
| + | -------------------- |
| + | value: 28 |
| + | m/s: 0.1987045 |
| + | km/h: 0.7153363 |
| + | -------------------- |
| + | value: 47 |
| + | m/s: 0.3335397 |
| + | km/h: 1.200743 |
| + | -------------------- |
| + | value: 40 |
| + | m/s: 0.2838636 |
| + | km/h: 1.021909 |
| + | -------------------- |
| + | value: 62 |
| + | m/s: 0.4399886 |
| + | km/h: 1.583959 |
| + | -------------------- |
| + | value: 48 |
| + | m/s: 0.3406363 |
| + | km/h: 1.226291 |
| + | -------------------- |
| + | value: 74 |
| + | m/s: 0.5251477 |
| + | km/h: 1.890532 |
| + | -------------------- |
| + | value: 78 |
| + | m/s: 0.553534 |
| + | km/h: 1.992723 |
| + | -------------------- |
| + | value: 80 |
| + | m/s: 0.5677272 |
| + | km/h: 2.043818 |
| + | -------------------- |
| + | value: 123 |
| + | m/s: 0.8728806 |
| + | km/h: 3.14237 |
| + | -------------------- |
| + | value: 117 |
| + | m/s: 0.8303011 |
| + | km/h: 2.989084 |
| + | -------------------- |
| + | value: 73 |
| + | m/s: 0.5180511 |
| + | km/h: 1.864984 |
| + | -------------------- |
| + | value: 131 |
| + | m/s: 0.9296533 |
| + | km/h: 3.346752 |
| + | -------------------- |
| + | value: 190 |
| + | m/s: 1.348352 |
| + | km/h: 4.854068 |
| + | -------------------- |
| + | value: 177 |
| + | m/s: 1.256096 |
| + | km/h: 4.521947 |
| + | </nowiki> |
| + | |
| + | == Vitesse du vent et Broker MQTT == |
| + | Si vous comptez mesure la vitesse du vent pour alimenter un broker MQTT, nous recommandons de ne pas noyer le broker sous un flot continu d'information. |
| + | |
| + | Il est recommandé d'effectuer des mesures en continu pendant une période de temps déterminée (par exemple 15min) afin de déterminer un maxima et un minima. |
| + | |
| + | Ensuite en envoyer les deux informations (minima et maxima) vers le broker. |
| | | |
| == Où acheter == | | == Où acheter == |