Différences entre versions de « Arduino BMP280 »
(10 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
= Partie électronique = | = Partie électronique = | ||
== Le composant == | == Le composant == | ||
− | Le BMP280 est monté sur une platine. | + | Le BMP280 est monté sur une platine et dans le cas présent il s'agit de la version GY du BMP280. |
[[Fichier:BMP280_mounted.jpg|centré|150px]] | [[Fichier:BMP280_mounted.jpg|centré|150px]] | ||
− | Ce composant utilise le protocole I2C pour communiquer. | + | Ce composant utilise le protocole I2C pour communiquer. |
== Le montage == | == Le montage == | ||
Ligne 12 : | Ligne 12 : | ||
= Partie logicielle = | = Partie logicielle = | ||
== Import des librairies == | == Import des librairies == | ||
− | Avant de continuer, il faut importer la librairie nécessaire à l'utilisation du BMP280 et normalement, celle pour le protocole I2C est déjà installée. | + | Avant de continuer, il faut importer la librairie nécessaire à l'utilisation du BMP280, une librairie pour les capteurs ''Adafruit'' et normalement, celle pour le protocole I2C est déjà installée. |
{|align=center | {|align=center | ||
|- | |- | ||
− | |[[Fichier:Arduino_IDE_I2C_install.png|centré|400px]] || [[Fichier:Arduino_IDE_BMP280_install.png|centré|400px]] | + | |[[Fichier:Arduino_IDE_I2C_install.png|centré|400px]] || [[Fichier:Arduino_IDE_BMP280_install.png|centré|400px]] || [[Fichier:Arduino_IDE_ADAFRUIT_SENSOR_install.png|centré|400px]] |
|- | |- | ||
− | |align=center| Librairie I2C ||align=center| Librairie BMP280 | + | |align=center| Librairie I2C ||align=center| Librairie BMP280||align=center| Librairie capteur ''Adafruit'' |
|} | |} | ||
+ | |||
+ | == Modification de la librairie Adafruit == | ||
+ | La librairie ''Adafruit'' gère la version classique du BMP280 qui utilise l'adresse I2C ''0x77''. Dans la version ''GY'' cette adresse doit être modifiée et prend la valeur ''0x76'' à la place. | ||
+ | |||
+ | Les librairies se trouve dans le répertoire ''Arduino'' de votre dossier ''Mes Documents'', repérez la ligne suivante : | ||
+ | <source lang=c> | ||
+ | /*========================================================================= | ||
+ | I2C ADDRESS/BITS | ||
+ | -----------------------------------------------------------------------*/ | ||
+ | #define BMP280_ADDRESS (0x77) | ||
+ | /*=========================================================================*/ | ||
+ | </source > | ||
+ | Modifiez la comme suit : | ||
+ | <source lang=c> | ||
+ | /*========================================================================= | ||
+ | I2C ADDRESS/BITS | ||
+ | -----------------------------------------------------------------------*/ | ||
+ | #define BMP280_ADDRESS (0x76) | ||
+ | /*=========================================================================*/ | ||
+ | </source > | ||
== Récupérer la température == | == Récupérer la température == | ||
− | + | Un exemple de code qui permet de récupérer la température, la pression et l'altitude: | |
<source lang="c"> | <source lang="c"> | ||
− | #include < | + | #include <Wire.h> |
− | #include < | + | #include <Adafruit_Sensor.h> |
+ | #include <Adafruit_BMP280.h> | ||
+ | |||
+ | Adafruit_BMP280 bmp; // I2C | ||
+ | |||
+ | //Variables | ||
+ | float pressure; //Pour stocker la pression (Pa) | ||
+ | |||
+ | void setup() { | ||
+ | Serial.begin(9600); | ||
+ | //Connexion au capteur | ||
+ | if (!bmp.begin()) { | ||
+ | Serial.println("Could not find a valid BMP280 sensor, check wiring!"); | ||
+ | while (1); | ||
+ | } | ||
+ | Serial.println(F("Reading BMP280 : ")); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | //Lecture des valeurs du capteur | ||
+ | pressure = bmp.readPressure(); | ||
+ | Serial.print(F("Pressure (Pa / mB): ")); | ||
+ | Serial.print(pressure); | ||
+ | Serial.print(F(" Pa / ")); | ||
+ | Serial.print(pressure/100); | ||
+ | Serial.println(F(" mB")); | ||
+ | Serial.print(F("Temperature: ")); | ||
+ | Serial.print(bmp.readTemperature()); | ||
+ | Serial.println(F(" °C")); | ||
+ | Serial.print(F("Altitude: ")); | ||
+ | /* | ||
+ | * Changez en fonction de la pression barométrique de votre ville | ||
+ | * http://www.meteociel.fr/observations-meteo/pression.php | ||
+ | */ | ||
+ | Serial.print(bmp.readAltitude (1020)); | ||
+ | Serial.println(F(" m")); | ||
+ | Serial.println(F("/***************************/")); | ||
+ | delay(5000); | ||
+ | } | ||
</source> | </source> | ||
== Résultat == | == Résultat == | ||
− | + | Voila le résultat : | |
− | [[Fichier: | + | [[Fichier:Arduino_BMP280_reading_serial.png.png|centré|400px]] |
+ | On voit clairement les variations d'altitudes lorsque l'on bouge le BMP280. |
Version actuelle datée du 9 novembre 2016 à 19:06
Partie électronique
Le composant
Le BMP280 est monté sur une platine et dans le cas présent il s'agit de la version GY du BMP280.
Ce composant utilise le protocole I2C pour communiquer.
Le montage
Le montage suivant prévoit deux fils pour utiliser le protocole I2C, en plus des fils pour l'alimentation.
Partie logicielle
Import des librairies
Avant de continuer, il faut importer la librairie nécessaire à l'utilisation du BMP280, une librairie pour les capteurs Adafruit et normalement, celle pour le protocole I2C est déjà installée.
Librairie I2C | Librairie BMP280 | Librairie capteur Adafruit |
Modification de la librairie Adafruit
La librairie Adafruit gère la version classique du BMP280 qui utilise l'adresse I2C 0x77. Dans la version GY cette adresse doit être modifiée et prend la valeur 0x76 à la place.
Les librairies se trouve dans le répertoire Arduino de votre dossier Mes Documents, repérez la ligne suivante :
/*=========================================================================
I2C ADDRESS/BITS
-----------------------------------------------------------------------*/
#define BMP280_ADDRESS (0x77)
/*=========================================================================*/
Modifiez la comme suit :
/*=========================================================================
I2C ADDRESS/BITS
-----------------------------------------------------------------------*/
#define BMP280_ADDRESS (0x76)
/*=========================================================================*/
Récupérer la température
Un exemple de code qui permet de récupérer la température, la pression et l'altitude:
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>
Adafruit_BMP280 bmp; // I2C
//Variables
float pressure; //Pour stocker la pression (Pa)
void setup() {
Serial.begin(9600);
//Connexion au capteur
if (!bmp.begin()) {
Serial.println("Could not find a valid BMP280 sensor, check wiring!");
while (1);
}
Serial.println(F("Reading BMP280 : "));
}
void loop() {
//Lecture des valeurs du capteur
pressure = bmp.readPressure();
Serial.print(F("Pressure (Pa / mB): "));
Serial.print(pressure);
Serial.print(F(" Pa / "));
Serial.print(pressure/100);
Serial.println(F(" mB"));
Serial.print(F("Temperature: "));
Serial.print(bmp.readTemperature());
Serial.println(F(" °C"));
Serial.print(F("Altitude: "));
/*
* Changez en fonction de la pression barométrique de votre ville
* http://www.meteociel.fr/observations-meteo/pression.php
*/
Serial.print(bmp.readAltitude (1020));
Serial.println(F(" m"));
Serial.println(F("/***************************/"));
delay(5000);
}
Résultat
Voila le résultat :
On voit clairement les variations d'altitudes lorsque l'on bouge le BMP280.