IDLabs-IoT Le site dédié aux objets connectés

Un site des laboratoires pédagogiques de l'école CampusID

Présentation et Mise en œuvre de l’anémomètre ADA-1733 – Adafruit

Posted on 8 juillet 2018  in Non classé

Présentation de l’anémomètre Adafruit :

 

Un anémomètre est un appareil utilisé pour mesurer la vitesse du vent, et c’est un instrument commun pour une station météo. Les anémomètres sont faits pour rester dehors, et sont donc conçus pour résister aux écarts de températures, mais aussi à la pluie. Les connectiques de l’anémomètre d’Adafruit sont donc des connectiques étanches.

Cet anémomètre en particulier peut mesurer des vents de 0 à 32 mètres par secondes, soit de 0 à 115 kilomètres par heure, avec une précision de 2 mètres par seconde (soit environ 7km/h).

L’anémomètre fonctionne sur un courant entre 7 et 24 volts, et dispose de 3 fils, un noir, qui sert pour la masse, un marron, qui est l’alimentation de l’anémomètre, et le bleu, qui est le signal, et qui renverra une tension entre 0,4 et 2 volts, correspondant à la vitesse du vent.

Les informations reçus depuis l’anémomètre sont donc de type analogique. L’utilisation avec un Raspberry Pi directement n’est donc pas possible, il faudra passer par un convertisseur analogique/numérique.

L’autre possibilité qui sera étudié aussi, c’est l’utilisation d’un Arduino, qui lui, possède des entrées analogiques.

 

 

Mise en œuvre à l’aide d’une carte Arduino

 

 

            Câblage du projet :

 

Dans un premier temps, il faut connecter l’anémomètre et la carte Arduino. L’anémomètre ne présentant que trois fil, il faut donc connecter le fil noir à un pin de masse, le fil bleu a un pin d’entrée analogique, et le fil marron à un pin d’alimentation en 9v.

Il faudra donc prévoir pour l’anémomètre une alimentation supérieure à celle de la carte Arduino, qui fonctionne entre 3 et 5 volts.

 

 

            Programmation :

 

 

L’anémomètre va donc renvoyer une tension qui va varier entre 0.4 et 2 volts, ce qui correspond à la vitesse du vent, 0.4v étant un vent nul, et 2v un vent de 32.4m/s (116km/h).

La tension qui est renvoyé par l’anémomètre est linéaire, c’est-à-dire que pour chaque 0.1v de tension supplémentaire, la vitesse du vent augmente de 2m/s.

 

Le code qui suit, trouvé sur le site hackerscapes.com, permet de transformer les valeurs renvoyées par l’anémomètre en valeurs de vitesse du vent.

 


//Setup Variables

const int sensorPin = A0; //Defines the pin that the anemometer output is connected to
int sensorValue = 0; //Variable stores the value direct from the analog pin
float sensorVoltage = 0; //Variable that stores the voltage (in Volts) from the anemometer being sent to the analog pin
float windSpeed = 0; // Wind speed in meters per second (m/s)
float voltageConversionConstant = .004882814; //This constant maps the value provided from the analog read function, which ranges from 0 to 1023, to actual voltage, which ranges from 0V to 5V

int sensorDelay = 1000; //Delay between sensor readings, measured in milliseconds (ms)

//Anemometer Technical Variables

//The following variables correspond to the anemometer sold by Adafruit, but could be modified to fit other anemometers.

float voltageMin = .4; // Mininum output voltage from anemometer in mV.
float windSpeedMin = 0; // Wind speed in meters/sec corresponding to minimum voltage

float voltageMax = 2.0; // Maximum output voltage from anemometer in mV.
float windSpeedMax = 32; // Wind speed in meters/sec corresponding to maximum voltage

void setup()
{
     Serial.begin(9600);  //Start the serial connection
}
void loop()
{
     sensorValue = analogRead(sensorPin); //Get a value between 0 and 1023 from the analog pin connected to the anemometer
     sensorVoltage = sensorValue * voltageConversionConstant; //Convert sensor value to actual voltage
     //Convert voltage value to wind speed using range of max and min voltages and wind speed for the anemometer
     if (sensorVoltage <= voltageMin){
          windSpeed = 0; //Check if voltage is below minimum value. If so, set wind speed to zero. 
     }else {
          windSpeed = (sensorVoltage - voltageMin)*windSpeedMax/(voltageMax - voltageMin); //For voltages above minimum value, use the linear relationship to calculate wind speed.
     }
//Print voltage and windspeed to serial
Serial.print("Voltage: ");
Serial.print(sensorVoltage);
Serial.print("\t");
Serial.print("Wind speed: ");
Serial.println(windSpeed);
delay(sensorDelay);

}

 

 

Possibilité de mise en œuvre avec un Raspberry Pi ?

 

 

Pour pouvoir utiliser l’anémomètre Adafruit sur le Raspberry Pi, il faut donc passer par un convertisseur analogique/numérique, comme dit précédemment.

Le fonctionnement n’est donc pas [uniquement, restreint à] l’anémomètre Adafruit, mais commun a tout capteur analogique que l’on souhaite connecter à un Raspberry Pi, par le biais du port GPIO.

Dans un premier temps, il faut réaliser les branchements nécessaires entre les différents composants. Il existe plusieurs convertisseurs analogiques/numériques, nous prendrons ici l’exemple du MCP3008.

 

Ici, une représentation du MCP3008, ainsi que tout ses pins, et ce à quoi ils correspondent.

Les CH0 à CH8 sont les entrées analogiques, AGND et DGND sont les masses analogique et digitale et CLK correspond à l’horloge. Les ports Dout, Din, et CS sont a connecter au SPI du Raspberry Pi.

Sur le branchement suivant, l’anémomètre à été remplacé par un potentiomètre (deux sur l’image d’illustration du câblage) pour simuler la vitesse du vent, mais le branchement est le même qu’avec l’anémomètre, à savoir une alimentation, une masse, et un signal.

 

En ce qui concerne la programmation, il faut tout d’abord ajouter la routine ReadChannel, qui va s’occuper de la communication entre le Raspberry pi et le MCP3008, après avoir ouvert le port SPI :

Ensuite, il n’y plus qu’a utiliser cette routine pour lire les valeurs des entrées analogiques sur le MPC3008 :

 

 

Il faut ensuite, à l’aide d’une data sheet existante, ou en créant sa propre datasheet, calibrer le capteur. C’est-à-dire expliquer au programme que lors du renvoi d’un code particulier, il y a une correspondance dans la datasheet, comme ici, une vitesse de vent, ou sur d’autres capteurs, une température, ou bien d’autres choses encore.

 

Sources :

www.electroniqueamateur.blogspot.fr

www.microchip.com

www.raspberrypi-spy.co.uk

www.hackerscapes.com

www.modmypi.com

 

 

Les programmes sont issus des sites hackerspaces et electroniqueamateur.blogspot

 

0 thoughts on “Présentation et Mise en œuvre de l’anémomètre ADA-1733 – Adafruit”

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *