Ligne 1 : |
Ligne 1 : |
| == Introduction == | | == Introduction == |
− | Ce module est conçu comme un capteur prêt à l'emploi.
| + | {{ambox|text=Dans ce tutoriel, nous allons ruser un peu pour utiliser l'anémomètre avec microcontrôleur 3.3V.}} |
| | | |
− | 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.
| + | Cet anémomètre 0-30 m/s est conçu comme un capteur prêt à l'emploi. |
| | | |
| [[Fichier:Anemometre.png|267px]] | | [[Fichier:Anemometre.png|267px]] |
| + | |
| + | 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. |
| | | |
− | {{ambox|text=Dans ce tutoriel, nous allons ruser un peu pour utiliser l'anémomètre avec microcontrôleur 3.3V.}}
| + | '''Relation pragmatique entre vitesse du vent et ressenti:''' |
| + | |
| + | [[Fichier:vitesse-vent.jpg|800px]] |
| | | |
| '''Détails techniques:''' | | '''Détails techniques:''' |
Ligne 24 : |
Ligne 30 : |
| * Température de fonctionnement:-40℃ à 80℃ | | * Température de fonctionnement:-40℃ à 80℃ |
| * Raccordement | | * Raccordement |
− | * VCC: rouge, 9-24V
| + | ** VCC: rouge, 9-24V |
− | * GND: noir
| + | ** GND: noir |
− | * Signal en Tension: jaune (0 à 5V)
| + | ** Signal en Tension: jaune (0 à 5V) |
− | * Signal en Courant: bleu (non utilisé)
| + | ** Signal en Courant: bleu (non utilisé) |
| * Poids:1Kg | | * Poids:1Kg |
| | | |
| == Raccordement == | | == Raccordement == |
| + | |
| + | Dans le schéma ci-dessous, un {{pl|551|régulateur Step-up U3V12F9}} élève la tension de 5V à 9V pour faire fonctionner l'anémomètre. |
| + | |
| + | [[Fichier:MICROPYTHON-ANEMOMETER-10.jpg|640px]] |
| + | |
| + | Un couple de résistance, idéalement 5 KOhms + 10 KOhms, permet de réduire la tension de sortie au 2/3. |
| + | |
| + | Dans le cas présent il s'agit de résistances de 4.7K et 10K à disposition. Une fois mesurée avec précision, ces résistances sont de 4.6126 KOhms et 9.855 KOhms. |
| + | |
| + | Vesp = Vout * 9855 / (9855 + 4612.6) = Vout * 0.68117 |
| + | |
| + | Si l'entrée analogique de l'ESP32 mesure une tension de 0.627 V: |
| + | * Tension anémomètre Vout = Vesp / 0.68117 = 0.627 / 0.68117 = 0.920 V |
| + | * Vitesse vent (m/s) = 6 * Vout = 6 * 0.920 = 5.52 m/s |
| + | * Vitesse vent (Km/h) = m/s * 3.6 = 5.52 * 3.6 = 19.87 Km/h |
| | | |
| == 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 == |
| * Le {{pl|1852|module Anémomètre}} est disponible chez MCHobby | | * Le {{pl|1852|module Anémomètre}} est disponible chez MCHobby |
| + | * Le {{pl|551|régulateur Step-up 9V U3V12F9}} |
| + | * Le {{pl|1226|Carte Feather ESP32 - HUZZAH32}} |