KY-052 Capteur de pression BMP280
Ce capteur de pression mesure la pression de l'air à la sortie du capteur.
- Arduino
- Raspberry Pi
- Raspberry Pi Pico
- Micro:Bit
Ce capteur de pression mesure la pression de l'air à la sortie du capteur (petit trou sur le boîtier argenté du capteur) et transmet le résultat codé sur le bus I2C.
**Une bibliothèque appropriée est nécessaire pour ce module - voir les exemples de code ci-dessous.
Données techniques
Plage de mesure (pression) | 300 à 1100 hPa (équivalent à +9000 à -500 m au-dessus/au-dessous du niveau de la mer) |
Précision relative | ±0,12 hPa, équivalent à ±1 m (950 à 1050hPa à 25°C) |
Précision absolute | ±1 hPa (950 à 1050 hPa, 0 à +40 °C) |
Décalage du coefficient de température | 1,5 Pa/K, correspond à 12,6 cm/K (25 à 40°C à 900hPa) |
Interfaces numériques | I²C (jusqu'à 3,4 MHz), SPI (3 et 4 fils, jusqu'à 10 MHz) |
Consommation d'énergie | 2,7µA à une fréquence d'échantillonnage de 1 Hz |
Plage de mesure (température) | -40 à +85 °C |
Affectation des broches
Ce capteur peut être connecté et fonctionner sur des systèmes 5V ainsi que sur des systèmes 3.3V. Veuillez noter qu'une seule des broches d'alimentation respectives est connectée, ce qui correspond au niveau de tension du système utilisé.
Arduino | Capteur |
---|---|
5V | SDO |
5V | CSB |
Pin A4 | SDA |
Pin A5 | SCL |
5V | +V |
GND | GND |
Exemple de code Arduino
Ce capteur n'émet pas son résultat de mesure sous forme de signal sur une broche de sortie, mais le communique via le bus I2C. Le capteur peut être contrôlé via ce bus et les mesures respectives de la pression et de la température peuvent être lancées et évaluées.
Pour charger l'exemple de code suivant sur votre Arduino, nous vous recommandons d'utiliser l'IDE Arduino. Dans l'IDE, vous pouvez choisir le port et la carte qui conviennent à votre appareil.
Les bibliothèques suivantes sont également utilisées pour l'exemple de code :
Adafruit_BMP280 de Adafruit | publié sous la licence BSD
Vous pouvez facilement ajouter ces bibliothèques via le gestionnaire de bibliothèques de l'IDE Arduino. Copiez ensuite le code ci-dessous dans votre IDE. Pour télécharger le code sur l'Arduino, il suffit de cliquer sur le bouton " Upload ".
/***************************************************************************
This is a library for the BMP280 humidity, temperature & pressure sensor
Designed specifically to work with the Adafruit BMEP280 Breakout
----> http://www.adafruit.com/products/2651
These sensors use I2C or SPI to communicate, 2 or 4 pins are required
to interface.
Adafruit invests time and resources providing this open source code,
please support Adafruit andopen-source hardware by purchasing products
from Adafruit!
Written by Limor Fried & Kevin Townsend for Adafruit Industries.
BSD license, all text above must be included in any redistribution
***************************************************************************/
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_BMP280.h>
// Définir les broches du BMP280
#define BMP_SCK 13
#define BMP_MISO 12
#define BMP_MOSI 11
#define BMP_CS 10
// Initialiser BMP280
Adafruit_BMP280 bmp;
void setup() {
// Initialiser le moniteur série
Serial.begin(9600);
Serial.println(F("KY-052 BMP280 Test"));
// Établir une connexion avec BMP280
if (!bmp.begin()) {
Serial.println(F("N'a pas trouvé de capteur BMP280 valide, vérifier le câblage!"));
while (1);
}
}
void loop() {
// Sortir les valeurs de mesure du BMP280
Serial.print(F("Température = "));
Serial.print(bmp.readTemperature());
Serial.println(" °C");
Serial.print(F("Pression = "));
Serial.print(bmp.readPressure());
Serial.println(" Pa");
Serial.print(F("Hauteur = "));
// Cette valeur doit être modifiée en fonction de la pression atmosphérique actuelle de votre lieu.
// sinon, il y a des imprécisions.
// Les services météorologiques peuvent vous renseigner
// 1013.25 hPa est la pression atmosphérique moyenne au niveau de la mer.
Serial.print(bmp.readAltitude(1013.25));
Serial.println(" m");
Serial.println();
delay(2000);
}
Ce capteur de pression mesure la pression de l'air à la sortie du capteur (petit trou sur le boîtier argenté du capteur) et transmet le résultat codé sur le bus I2C.
**Une bibliothèque appropriée est nécessaire pour ce module - voir les exemples de code ci-dessous.
Données techniques
Plage de mesure (pression) | 300 à 1100 hPa (équivalent à +9000 à -500 m au-dessus/au-dessous du niveau de la mer) |
Précision relative | ±0,12 hPa, équivalent à ±1 m (950 à 1050hPa à 25°C) |
Précision absolute | ±1 hPa (950 à 1050 hPa, 0 à +40 °C) |
Décalage du coefficient de température | 1,5 Pa/K, correspond à 12,6 cm/K (25 à 40°C à 900hPa) |
Interfaces numériques | I²C (jusqu'à 3,4 MHz), SPI (3 et 4 fils, jusqu'à 10 MHz) |
Consommation d'énergie | 2,7µA à une fréquence d'échantillonnage de 1 Hz |
Plage de mesure (température) | -40 à +85 °C |
Affectation des broches
- Ce capteur peut être connecté et fonctionner sur des systèmes 5V ainsi que sur des systèmes 3.3V. Veuillez noter qu'une seule des broches d'alimentation respectives est connectée, ce qui correspond au niveau de tension du système utilisé - pour plus d'informations, consultez les exemples ci-dessous pour connecter l'Arduino (5V) ou le Rasperry Pi (3.3V).
Exemple de code Raspberry Pi
Affectation des broches Raspberry Pi
Raspberry Pi | Capteur |
---|---|
3,3V | SDO |
3,3V | CSB |
GPIO 2 / SDA [Pin 3] | SDA |
GPIO 3 / SCL [Pin 5] | SCL |
3,3V | +V |
GND | GND |
Le programme utilise la bibliothèque Python BMP280 de la société Adafruit pour piloter le BMP280, qui est monté sur ce module de capteur. Elle est publiée sous la Licence MIT OpenSource .
Celle-ci doit d'abord être installée. Pour ce faire, il faut procéder de la manière suivante :
Tout d'abord, nous devons installer pip3 pour pouvoir télécharger la bibliothèque et pour cela nous utilisons la commande :
sudo apt-get install python3-pip
L'étape suivante consiste à configurer l'environnement virtuel. Pour ce faire, entrez les commandes suivantes :
mkdir your_project
cd your_project
python -m venv --system-site-packages env
source env/bin/activate
Utilisez les commandes suivantes pour télécharger et installer la bibliothèque.
pip3 install adafruit-circuitpython-bmp280
L'exemple de code Python suivant peut maintenant être utilisé. Le programme lance la mesure au niveau du capteur et fournit les valeurs mesurées pour la pression atmosphérique, la température et l'altitude au-dessus du niveau de la mer.
# Les modules requis sont importés et configurés
import time
import board
import adafruit_bmp280
# Créer un objet capteur qui communique via le bus I2C standard du RPi
i2c = board.I2C() # utilise board.SCL et board.SDA
bmp280 = adafruit_bmp280.Adafruit_BMP280_I2C(i2c)
# Modifiez cette valeur pour qu'elle corresponde à la pression atmosphérique (hPa) au niveau de la mer à l'endroit où vous vous trouvez.
bmp280.sea_level_pressure = 1013.25
while True:
print("\nTempérature: %0.1f C" % bmp280.temperature)
print("Pression: %0.1f hPa" % bmp280.pressure)
print("Altitude = %0.2f mètres" % bmp280.altitude)
time.sleep(2)
Ce capteur de pression mesure la pression de l'air à la sortie du capteur (petit trou sur le boîtier argenté du capteur) et transmet le résultat codé sur le bus I2C.
**Une bibliothèque appropriée est nécessaire pour ce module - voir les exemples de code ci-dessous.
Données techniques
Plage de mesure (pression) | 300 à 1100 hPa (équivalent à +9000 à -500 m au-dessus/au-dessous du niveau de la mer) |
Précision relative | ±0,12 hPa, équivalent à ±1 m (950 à 1050hPa à 25°C) |
Précision absolute | ±1 hPa (950 à 1050 hPa, 0 à +40 °C) |
Décalage du coefficient de température | 1,5 Pa/K, correspond à 12,6 cm/K (25 à 40°C à 900hPa) |
Interfaces numériques | I²C (jusqu'à 3,4 MHz), SPI (3 et 4 fils, jusqu'à 10 MHz) |
Consommation d'énergie | 2,7µA à une fréquence d'échantillonnage de 1 Hz |
Plage de mesure (température) | -40 à +85 °C |
Affectation des broches
- Ce capteur peut être connecté et fonctionner sur des systèmes 5V ainsi que sur des systèmes 3.3V. Veuillez noter qu'une seule des broches d'alimentation respectives est connectée, ce qui correspond au niveau de tension du système utilisé - pour plus d'informations, consultez les exemples ci-dessous pour connecter l'Arduino (5V) ou le Rasperry Pi (3.3V).
Exemple de code Micro:Bit
Affectation des connexions Micro:Bit :
Micro:Bit | Capteur |
---|---|
Pin 20 | SDA |
Pin 19 | SCL |
3v | CSB |
3v | SDO |
3V | +V |
GND | GND |
Ceci est un exemple MakeCode pour Micro:Bit qui fait essentiellement la même chose que les exemples des deux autres variantes. Cependant, cet exemple est plus proche de celui du Raspberry Pi que de celui de l'Arduino.
L'exemple de code suivant nécessite une bibliothèque supplémentaire :
BMP280 de makecode-extensions | publié sous la licence MIT.
Vous devez ajouter cette bibliothèque à votre IDE avant de pouvoir utiliser le code.
Pour ce faire, allez dans Extensions dans votre IDE et utilisez l'URL suivante https://github.com/makecode-extensions/BMP280.git pour rechercher la bibliothèque et l'ajouter.
Téléchargement d'un exemple de programme
Ce capteur de pression mesure la pression de l'air à la sortie du capteur (petit trou sur le boîtier argenté du capteur) et transmet le résultat codé sur le bus I2C.
**Une bibliothèque appropriée est nécessaire pour ce module - voir les exemples de code ci-dessous.
Données techniques
Plage de mesure (pression) | 300 à 1100 hPa (équivalent à +9000 à -500 m au-dessus/au-dessous du niveau de la mer) |
Précision relative | ±0,12 hPa, équivalent à ±1 m (950 à 1050hPa à 25°C) |
Précision absolute | ±1 hPa (950 à 1050 hPa, 0 à +40 °C) |
Décalage du coefficient de température | 1,5 Pa/K, correspond à 12,6 cm/K (25 à 40°C à 900hPa) |
Interfaces numériques | I²C (jusqu'à 3,4 MHz), SPI (3 et 4 fils, jusqu'à 10 MHz) |
Consommation d'énergie | 2,7µA à une fréquence d'échantillonnage de 1 Hz |
Plage de mesure (température) | -40 à +85 °C |
Affectation des broches
Ce capteur peut être connecté et fonctionner sur des systèmes 5V ainsi que sur des systèmes 3.3V.
Affectation des broches Raspberry Pi Pico
Raspberry Pi Pico | Capteur |
---|---|
3.3V | SDO |
3.3V | CSB |
GPIO0 | SDA |
GPIO1 | SCL |
3.3V | +V |
GND | GND |
Ce capteur n'émet pas son résultat de mesure sous forme de signal sur sa broche de sortie, mais le communique via I2C. Le capteur peut être contrôlé via ce bus et les mesures respectives de la pression et de la température peuvent être lancées et évaluées.
Exemple de code Raspberry Pi Pico
Pour charger l'exemple de code suivant sur votre Pico, nous vous recommandons d'utiliser l'IDE Thonny. Il vous suffit de commencer par sélectionner ***Run > Configure interpreter ... > Interpreter > Which kind of interpreter should Thonny use for running your code? > MicroPython (Raspberry Pi Pico) ***.
La bibliothèque suivante est utilisée pour l'exemple de code :
pico-bmp280 par flrrth | publié sous la Licence GPL
Pour utiliser cette bibliothèque, vous devez télécharger le dossier bmp280 de la bibliothèque ci-dessus et le charger sur le Pico dans un dossier appelé lib (vous devez le créer si nécessaire). Ensuite, vous pouvez maintenant copier le code ci-dessous dans votre IDE et cliquer sur Run.
# Chargement des bibliothèques
from machine import Pin, I2C
from utime import sleep
from bmp280 import BMP280I2C
# Initialisation de l'interface I2C
i2c0_sda = Pin(0)
i2c0_scl = Pin(1)
i2c0 = I2C(0, sda = i2c0_sda, scl = i2c0_scl, freq = 400000)
# Initialisation de l'objet capteur
bmp280_i2c = BMP280I2C(0x77, i2c0)
# Boucle sans fin pour lire le capteur avec la sortie série
while True:
readout = bmp280_i2c.measurements
print(f"Température: {readout['t']} °C \t Pression atmosphérique: {readout['p']} hPa")
sleep(1)