Capteur de pression atmosphérique par arduino : Différence entre versions

 
(2 révisions intermédiaires par le même utilisateur non affichées)
Ligne 34 : Ligne 34 :
 
{{Tuto Step
 
{{Tuto Step
 
|Step_Title=Copier
 
|Step_Title=Copier
|Step_Content=Copier-coller ce code dans le programme arduino puis le téléverser dans la carte : #include "Wire.h"  
+
|Step_Content=Copier-coller ce code dans le programme arduino puis le téléverser dans la carte :<syntaxhighlight lang="arduino">
<nowiki>#</nowiki>include "Adafruit_BMP085.h" // librairie spéciale pour cette famille de capteurs
+
#include "Wire.h"  
Adafruit_BMP085 mySensor; // on crée un objet du type souhaite
+
 
float tempC; // variable qui contiendra la température  
+
#include "Adafruit_BMP085.h" // librairie spéciale pour cette famille de capteurs  
 +
 
 +
Adafruit_BMP085 mySensor; // on crée un objet du type souhaite  
 +
 
 +
float tempC; // variable qui contiendra la température  
 +
 
 
float pression; //variable pour la pression
 
float pression; //variable pour la pression
//A noter : la pression est renvoyé en Pa (Pascal), la météo donne la pression en hectoPascal, suffit d'enlever les 2 derniers chiffres tout simplement...
+
 
 +
//A noter : la pression est renvoyé en Pa (Pascal),  
 +
//la météo donne la pression en hectoPascal,  
 +
//suffit d'enlever les 2 derniers chiffres tout simplement...
 +
 
 
void setup() {
 
void setup() {
  Serial.begin(9600); //Pour changer, on lance la transmission PC - arduino
+
 
  mySensor.begin();  //Et la communication capteur-arduino
+
Serial.begin(9600); //Pour changer, on lance la transmission PC - arduino
}
+
mySensor.begin();  //Et la communication capteur-arduino
 +
 
 +
}  
 +
 
 
void loop() {
 
void loop() {
  tempC = mySensor.readTemperature(); //On lit la temperature  
+
 
  pression=mySensor.readPressure(); //et on lit la pression
+
tempC = mySensor.readTemperature(); //On lit la temperature  
Serial.print("Temperature : ");  
+
pression=mySensor.readPressure(); //et on lit la pression
Serial.print(tempC);
+
 
Serial.println("C");
+
Serial.print("Temperature : "); Serial.print(tempC); Serial.println(" °C");
Serial.print("Pression: ");
+
 
Serial.print(pression);
+
Serial.print("Pression: "); Serial.print(pression); Serial.println(" Pa");  
Serial.println(" Pa");
+
 
Serial.println("");
+
Serial.println(""); delay(1000);  
delay(1000);  
 
 
}
 
}
 +
</syntaxhighlight><br />
 
}}
 
}}
 
{{Tuto Step
 
{{Tuto Step
 
|Step_Title=Resultat
 
|Step_Title=Resultat
 
|Step_Content=On ouvre ensuite la fenêtre du terminal (bouton en haut a droite du menu du programme arduino)
 
|Step_Content=On ouvre ensuite la fenêtre du terminal (bouton en haut a droite du menu du programme arduino)
}}
 
{{Tuto Step
 
|Step_Title=Test
 
|Step_Content=il faut faire des tests !
 
 
}}
 
}}
 
{{Notes
 
{{Notes

Version actuelle datée du 21 septembre 2024 à 20:04

Auteur avatarTess | Dernière modification 21/09/2024 par Antonydbzh

Capteur de pression atmosphérique par arduino 600px-BMP085.png
A noter que le capteur utilisé permet également d'avoir la température.
Licence : Attribution (CC-BY)

Étape 1 - Realiser

Réaliser le montage suivant :

C'est à dire : SDA a A4, SCL a A5, GND a GND et VIN a 5V




Étape 2 - Télécharger

  • Télécharger la librairie du capteur et placer la dans /Arduino/librairies (on dézippe et on crée un nouveau dossier).

Lien pour le téléchargement : https://github.com/adafruit/Adafruit-BMP085-Library/archive/master.zip

Étape 3 - Copier

Copier-coller ce code dans le programme arduino puis le téléverser dans la carte :
#include "Wire.h" 

#include "Adafruit_BMP085.h" // librairie spéciale pour cette famille de capteurs 

Adafruit_BMP085 mySensor; // on crée un objet du type souhaite 

float tempC; // variable qui contiendra la température 

float pression; //variable pour la pression

//A noter : la pression est renvoyé en Pa (Pascal), 
//la météo donne la pression en hectoPascal, 
//suffit d'enlever les 2 derniers chiffres tout simplement...

void setup() {

 Serial.begin(9600); //Pour changer, on lance la transmission PC - arduino
 mySensor.begin();   //Et la communication capteur-arduino

} 

void loop() {

tempC = mySensor.readTemperature(); //On lit la temperature 
pression=mySensor.readPressure(); //et on lit la pression

Serial.print("Temperature : "); Serial.print(tempC); Serial.println(" °C");

Serial.print("Pression: "); Serial.print(pression); Serial.println(" Pa"); 

Serial.println(""); delay(1000); 
}

Étape 4 - Resultat

On ouvre ensuite la fenêtre du terminal (bouton en haut a droite du menu du programme arduino)

Comment ça marche ?

Observations : que voit-on ?

Le capteur renvoie la pression et la température. On peut faire varier cette température en posant son doigt dessus afin de la voir augmenter.

Explications

De manière simple

Il s'agit d'un capteur numérique : le capteur est en fait uniquement la partie du milieu qui est sensible a la pression et la température. Les valeurs sont ensuite renvoyées à l'arduino par les broches A4 et A5. Les fonctions de la librairie permettent ensuite de récupérer des valeurs concrètes sans avoir besoin de faire des calcules.

Plus d'explications

Allons plus loin dans l'explication

Le transport des informations se fait par le biais du bus I2C, bus très utilisé dans les capteurs arduino. Contrairement au bus OneWire, celui-ci a besoin de 2 fils (A4 et A5) afin d'envoyer les data (SDA) et l'horloge (SCL). Afin d'avoir plus de détails sur le calcul des valeurs, un coup d'oeil directement dans la librairie est nécéssaire : tout y est. https://github.com/adafruit/Adafruit-BMP085-Library

Applications : dans la vie de tous les jours

Le capteur peut servir de thermomètre ainsi que de baromètre. Il manquerait simplement un écran lcd afin de ne pas avoir besoin de l'ordinateur pour lire les valeurs. La pression peut ainsi permettre de connaitre le temps qu'il va faire (les cartes des hautes et des basses pressions sont utilisées par les météorologues) ainsi que l'altitude qui fait varier la pression.


Dernière modification 21/09/2024 par user:Antonydbzh.

Commentaires

Published