• Arduino
  • Raspberry Pi
  • Raspberry Pi Pico
  • Micro:Bit

KY-052

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 Arduino

Affectation des broches Arduino

Arduino Capteur
5V SDO
5V CSB
Pin A4 SDA
Pin A5 SCL
5V +V
GND GND

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.

Il existe plusieurs façons de contrôler ce module capteur - la bibliothèque Adafruit_BMP280, que la société Adafruit a publiée sous licence OpenSource BSD, s'est avérée particulièrement accessible.

L'exemple ci-dessous utilise cette bibliothèque. Nous vous recommandons de la télécharger depuis Github, de la décompresser et de la copier dans le dossier des bibliothèques Arduino, qui se trouve par défaut à l'adresse (C:\User[nom d'utilisateur]\Documents\Arduino\libraries), afin qu'elle soit disponible pour cet exemple de code et les projets suivants. Sinon, il est également inclus dans le paquet de téléchargement ci-dessous.

/***************************************************************************
  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>
 
 
#define BMP_SCK 13
#define BMP_MISO 12
#define BMP_MOSI 11 
#define BMP_CS 10
 
Adafruit_BMP280 bmp; // I2C
//Adafruit_BMP280 bmp(BMP_CS); // SPI matériel
//Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO,  BMP_SCK);
 
void setup() {
  Serial.begin(9600);
  Serial.println(F("Test BMP280"));
   
  if (!bmp.begin()) {  
    Serial.println(F("Impossible de trouver un capteur BMP280 valide, vérifiez le câblage !"));
    while (1);
  }
}
 
void loop() {
    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("Altitude approximative = "));
    Serial.print(bmp.readAltitude(1013.25)); // ceci doit être ajusté à votre cas local.
    Serial.println(" m");
     
    Serial.println();
    delay(2000);
}

Téléchargement d'un exemple de programme

KY052-Arduino.zip

KY-052

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

Ensuite, il faut installer la bibliothèque d'Adafruit :

sudo pip3 install adafruit-circuitpython-bmp280

Pour que le Raspberry Pi puisse communiquer avec le capteur sur le bus I2C, il faut également activer au préalable la fonction I2C sur le Raspberry Pi. Pour ce faire, les lignes suivantes doivent être ajoutées à la fin du fichier "/boot/config.txt" :

dtparam=i2c_arm=on

Le fichier peut être édité avec la commande suivante :

sudo nano /boot/config.txt

Avec la séquence de touches [Ctrl+X -> Y -> Entrée], le fichier peut être enregistré et fermé, après avoir ajouté la ligne en bas.

En outre, des bibliothèques supplémentaires sont nécessaires pour pouvoir utiliser I2C dans Python. Pour les installer, il faut entrer la commande suivante dans la console :

sudo apt-get install python3-smbus i2c-tools -y

Après cela, l'exemple de code Python suivant peut être utilisé. Le programme démarre la mesure sur le capteur et affiche les valeurs mesurées pour la pression atmosphérique, la température et l'altitude au-dessus du niveau de la mer.

import time
import board
# import digitalio # Pour utilisation avec SPI
import adafruit_bmp280

# Créer un objet capteur qui communique via le bus I2C standard de la RPi.
i2c = board.I2C()   # utilise board.SCL et board.SDA
bmp280 = adafruit_bmp280.Adafruit_BMP280_I2C(i2c)

# OR Créer un objet capteur qui communique via le bus SPI standard de la RPi.
# spi = board.SPI()
# bmp_cs = digitalio.DigitalInOut(board.D10)
# bmp280 = adafruit_bmp280.Adafruit_BMP280_SPI(spi, bmp_cs)

# Modifiez cette valeur pour qu'elle corresponde à la pression atmosphérique (hPa) au niveau de la mer à votre emplacement.
bmp280.sea_level_pressure = 1013.25

while True:
    print("\nTemperature: %0.1f C" % bmp280.temperature)
    print("Pressure: %0.1f hPa" % bmp280.pressure)
    print("Altitude = %0.2f meters" % bmp280.altitude)
    time.sleep(2)

Exemple de téléchargement de programme

KY052-RPi.zip

Pour commencer avec la commande

sudo python3 KY052-RPi.py

KY-052

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

microbit-KY-052.zip

KY-052

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.

Exemple de code Raspberry Pi Pico

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.

Pour l'exemple de code suivant, une bibliothèque supplémentaire est nécessaire :

pico-bmp280 par flrrth | publié sous la Licence GPL

# 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)  # L'adresse peut être différente

# 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, pression: {readout['p']} hPa.")
    sleep(1)

Exemple de téléchargement de programme

KY052-Pico.zip