Différences entre versions de « MICROPYTHON-ANEMOMETER »
(19 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 2 : | Ligne 2 : | ||
{{ambox|text=Dans ce tutoriel, nous allons ruser un peu pour utiliser l'anémomètre avec microcontrôleur 3.3V.}} | {{ambox|text=Dans ce tutoriel, nous allons ruser un peu pour utiliser l'anémomètre avec microcontrôleur 3.3V.}} | ||
− | Cet anémomètre est conçu comme un capteur prêt à l'emploi. | + | 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 proportionnelle à la vitesse du vent | + | 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 30 : | Ligne 36 : | ||
* Poids:1Kg | * Poids:1Kg | ||
− | {{ | + | == 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}} |
Version actuelle datée du 1 novembre 2021 à 20:54
Introduction
Dans ce tutoriel, nous allons ruser un peu pour utiliser l'anémomètre avec microcontrôleur 3.3V. |
Cet anémomètre 0-30 m/s est conçu comme un capteur prêt à l'emploi.
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.
Relation pragmatique entre vitesse du vent et ressenti:
Détails techniques:
- Modèle:JL-FS2 à 3 soucoupes
- Matériau: alliage d'aluminium
- Gamme du signal de sortie:0 à 5V
- Tension d'alimentation: 9-24V Continu
- Consommation:<=0.3W sous 24V
- Vitesse du vent de mise en rotation:0.4 à 0.8 m/s
- Résolution:0.1 m/s
- Gamme de mesure:0 à 30 m/s
- Erreur:+/-3%
- Distance de transmission: > 8m
- Câble transmission (3 fils)
- Température de fonctionnement:-40℃ à 80℃
- Raccordement
- VCC: rouge, 9-24V
- GND: noir
- Signal en Tension: jaune (0 à 5V)
- Signal en Courant: bleu (non utilisé)
- Poids:1Kg
Raccordement
Dans le schéma ci-dessous, un régulateur Step-up U3V12F9 élève la tension de 5V à 9V pour faire fonctionner l'anémomètre.
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
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é.
#
# 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 )
Ce qui produit les résultats suivants:
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
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
- Le module Anémomètre est disponible chez MCHobby
- Le régulateur Step-up 9V U3V12F9
- Le Carte Feather ESP32 - HUZZAH32