Dans ce guide, vous apprendrez à interfacer un anémomètre avec l’ESP32 pour mesurer la vitesse du vent. Nous expliquerons comment alimenter et connecter le capteur à la carte ESP32, et rédigerons un code simple pour obtenir les valeurs de vitesse du vent dans différentes unités.

Nous avons un guide similaire pour la carte ESP8266 avec un anémomètre : Mesurer la vitesse du vent (Arduino IDE)
Table des matières:
Tout au long de ce guide, nous aborderons les sujets suivants :
Présentation de l’anémomètre
Un anémomètre est un appareil qui permet de mesurer la vitesse du vent. Il est couramment utilisé dans les stations météorologiques.
L’utilisation de ce capteur est assez simple. Il produit un signal analogique dont la tension est proportionnelle à la vitesse du vent. Nous utilisons un anémomètre à trois coupelles comme celui de l’image ci-dessous.

Détails techniques de l’anémomètre
Selon le fabricant, l’anémomètre peut avoir des caractéristiques différentes. Par exemple, voici les caractéristiques de l’anémomètre utilisé dans ce guide :
- Tension d’entrée : 12-24 V CC.
- Tension de sortie : 0-5 V
- Plage de mesure : 0-32,4 m/s
- Résolution : +/- 0,3 m/s
Cela signifie que lorsque le signal analogique est à 0, la vitesse du vent est à 0. Cependant, dans mon cas, après avoir alimenté le capteur et appliqué un diviseur de tension, j’ai remarqué que lorsque l’anémomètre ne bougeait pas, la tension de sortie était de 0,033V et non 0 V.

Je considère donc que c’est la valeur la plus basse mesurée lorsque le capteur ne bouge pas. Je vous recommande de faire de même et de déterminer la valeur minimale lue sur le capteur à l’aide d’un multimètre.
Ces détails peuvent être différents selon le fabricant. Vous devez donc en tenir compte lors de la conversion du signal analogique en vitesse du vent.
Brochage de l’anémomètre
L’anémomètre est livré avec trois fils :
| Fil bleu | Signal |
| Fil noir | GND |
| Fil marron | Pouvoir |

Connexion de l’anémomètre à l’ESP32
L’anémomètre nécessite une tension d’entrée d’au moins 12 V. Vous ne pouvez donc pas l’alimenter directement depuis l’ESP32, vous avez besoin d’une source d’alimentation externe.

Nous alimentons le capteur à l’aide d’un adaptateur secteur 12 V et le connectons à l’anémomètre à l’aide d’une prise d’alimentation. Vous pouvez utiliser n’importe quelle autre source d’alimentation appropriée.

Conversion du signal de données de 5 V à 3,3 V
Dans le cas de mon capteur, il fonctionne dans la plage de 0 à 5V. Cependant, les broches analogiques de l’ESP32 ne peuvent lire qu’un maximum de 3,3 V. Nous devons donc convertir le signal 5V en un signal 3,3V. Pour ce faire, nous pouvons utiliser un diviseur de tension.
Remarque : si vous utilisez un anémomètre comme celui d’Adafruit, vous n’avez pas à vous en soucier car la tension de sortie maximale est de 2 V.
Un diviseur de tension est un circuit simple qui réduit une tension élevée en une tension plus petite. En utilisant 2 résistances et une tension d’entrée, nous pouvons créer une tension de sortie qui représente une fraction de l’entrée. Ci-dessous vous pouvez voir la formule que vous devez utiliser pour calculer les résistances dont vous avez besoin dans votre circuit :

Si nous utilisons une résistance de 1 k Ohm (R1) et une résistance de 2 k Ohm (R2), nous obtiendrons une sortie maximale de 3,3 V, ce qui est le maximum que l’ESP32 peut lire.
Voici donc à quoi ressemble le circuit diviseur de tension (dans lequel 5 V est la valeur maximale de la broche de données du capteur) :

Vous pouvez utiliser n’importe quelle autre combinaison de résistances, mais vous devez prendre en compte la tension de sortie maximale autorisée par la combinaison de résistances utilisée.
Apprenez-en plus ici : Comment passer de 5 V à 3,3 V
Câblage du circuit : ESP32 avec anémomètre

Voici une liste des pièces dont vous avez besoin pour ce tutoriel :
Vous pouvez utiliser le schéma suivant comme référence pour câbler le capteur à l’ESP32. N’oubliez pas de connecter les broches GND entre elles :

Si vous utilisez un anémomètre comme celui d’Adafruit qui produit un maximum de 2 V, vous pouvez connecter la broche de sortie directement à la broche analogique ESP32 (vous n’avez pas besoin du diviseur de tension).
| Fil noir | GND de l’ESP32 et GND de la source d’alimentation |
| Fil bleu | Connectez-vous à la broche analogique ESP32 (via un diviseur de tension, si nécessaire), nous utilisons GPIO 34. |
| Fil marron | Alimentation 12 V (+) |
ESP32 avec l’anémomètre – Mesurer le code de vitesse du vent
Le code suivant lit le signal analogique de l’anémomètre et le convertit en vitesse du vent.
Vous pouvez télécharger le code suivant sur votre ESP32. Vous devrez peut-être modifier certaines variables en fonction des paramètres de votre anémomètre.
/*********
Rui Santos & Sara Santos - Raspberryme.com
Complete project details at https://Raspberryme.com/esp32-anemometer-wind-speed-arduino/
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Softwar
*********/
// Constants (Change the following variables if needed)
const int anemometerPin = 34; // GPIO pin connected to anemometer (analog pin)
const float minVoltage = 0.033; // Voltage corresponding to 0 m/s
const float maxVoltage = 3.3; // Voltage corresponding to 32.4 m/s (max speed) (when using voltage divider)
const float maxWindSpeed = 32.4; // Maximum wind speed in m/s
// Conversion factors
const float mps_to_kmh = 3.6; // 1 m/s = 3.6 km/h
const float mps_to_mph = 2.23694; // 1 m/s = 2.23694 mph
void setup() {
Serial.begin(115200);
}
void loop() {
// Read analog value from anemometer (ADC value between 0-4095 on ESP32 for 0-3.3V)
int adcValue = analogRead(anemometerPin);
// Convert ADC value to voltage (ESP32 ADC range is 0-3.3V)
float voltage = (adcValue / 4095.00) * 3.3;
// Ensure the voltage is within the anemometer operating range
if (voltage < minVoltage) {
voltage = minVoltage;
} else if (voltage > maxVoltage) {
voltage = maxVoltage;
}
// Map the voltage to wind speed
float windSpeed_mps = ((voltage - minVoltage) / (maxVoltage - minVoltage)) * maxWindSpeed;
// Convert wind speed to km/h and mph
float windSpeed_kmh = windSpeed_mps * mps_to_kmh;
float windSpeed_mph = windSpeed_mps * mps_to_mph;
// Print wind speed
Serial.print("Wind Speed: ");
Serial.print(windSpeed_mps);
Serial.print(" m/s, ");
Serial.print(windSpeed_kmh);
Serial.print(" km/h, ");
Serial.print(windSpeed_mph);
Serial.println(" mph");
delay(1000);
}
Afficher le code brut
Comment fonctionne le code ?
Tout d’abord, définissez la broche sur laquelle vous lisez le capteur, la tension de sortie minimale et maximale du capteur et la vitesse maximale du vent.
// Constants (Change the following variables if needed)
const int anemometerPin = 34; // GPIO pin connected to anemometer (analog pin)
const float minVoltage = 0.033; // Voltage corresponding to 0 m/s
const float maxVoltage = 3.3; // Voltage corresponding to 32.4 m/s (max speed) (when using voltage divider)
const float maxWindSpeed = 32.4; // Maximum wind speed in m/s
Ce sont les paramètres de notre capteur. Le vôtre pourrait être différent. Lorsque nous utilisons le diviseur de tension, la tension maximale que lira l’ESP32 est de 3,3 V, ce qui correspondra à la vitesse maximale du vent. Lorsque le capteur ne bouge pas, il délivre une tension de 0,033 (lue sur la sortie du diviseur de tension), on considère donc que la valeur minimale.
Ensuite, nous avons les facteurs de conversion pour convertir la vitesse du vent de m/s en km/h et mph.
// Conversion factors
const float mps_to_kmh = 3.6; // 1 m/s = 3.6 km/h
const float mps_to_mph = 2.23694; // 1 m/s = 2.23694 mph
Dans setup(), nous initialisons le Serial Monitor.
void setup() {
Serial.begin(115200);
}
Dans la boucle(), nous obtenons de nouvelles lectures du capteur chaque seconde.
Tout d’abord, nous lisons la valeur sur la broche ADC et la convertissons en valeur de tension. La valeur maximale lue sur la broche ESP32 ADC est de 4095, ce qui correspond à 3,3 V. Ainsi, nous pouvons convertir la valeur en tension en utilisant la ligne suivante :
// Convert ADC value to voltage (ESP32 ADC range is 0-3.3V)
float voltage = (adcValue / 4095.00) * 3.3;
Contenu connexe : ESP32 ADC – Lire les valeurs analogiques avec l’IDE Arduino
Ensuite, nous avons la condition suivante pour vérifier si les valeurs lues sont dans la plage définie.
if (voltage < minVoltage) {
voltage = minVoltage;
} else if (voltage > maxVoltage) {
voltage = maxVoltage;
}
Ensuite, nous pouvons facilement mapper la tension obtenue à une valeur de vitesse du vent (vous pouvez également utiliser la fonction Arduino map()).
float windSpeed_mps = ((voltage - minVoltage) / (maxVoltage - minVoltage)) * maxWindSpeed;
Ensuite, nous convertissons les valeurs obtenues en km/h et mph.
// Convert wind speed to km/h and mph
float windSpeed_kmh = windSpeed_mps * mps_to_kmh;
float windSpeed_mph = windSpeed_mps * mps_to_mph;
Enfin, nous imprimons les résultats obtenus.
// Print wind speed
Serial.print("Wind Speed: ");
Serial.print(windSpeed_mps);
Serial.print(" m/s, ");
Serial.print(windSpeed_kmh);
Serial.print(" km/h, ");
Serial.print(windSpeed_mph);
Serial.println(" mph");
delay(1000);
}
Tester le code
Téléchargez le code sur votre ESP32. Assurez-vous que le capteur est correctement câblé et alimenté.
Ouvrez le moniteur série à un débit en bauds de 115 200.
Faites tourner le capteur pour imiter le vent et voyez les valeurs imprimées sur le moniteur série chaque seconde.

Et c’est tout. Vous pouvez désormais lire la vitesse du vent avec votre ESP32. Vous pouvez désormais ajouter un anémomètre à votre station météo.
Conclusion
Dans ce tutoriel, vous avez appris à interfacer un anémomètre avec votre ESP32. Il s’agit d’un capteur fondamental à ajouter à votre station météo pour obtenir des données sur la vitesse du vent.
Nous avons des tutoriels pour plus de 20 capteurs avec l’ESP32. Vous pouvez les consulter ci-dessous :
Nous espérons que vous avez trouvé ce tutoriel utile. Vous aimerez peut-être également d’autres tutoriels connexes :
Merci d’avoir lu.
Cette vidéo vous emmène dans l’histoire de Raspberry Pi :

-
BTMETER BT-846A Pro Anémomètre HVAC Anemometre VMC Professionnel Mesure de la vitesse du vent, du débit d'air, de la température du vent et du CFM
-
Anémomètre numérique de vitesse du vent, XRCLIF jauges de vent compteur de vitesse de débit d'air pour mesurer la vitesse de la température du vent, jauge de thermomètre de compteur de vent
