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
Masse 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

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
Masse GND

Le programme utilise la bibliothèque Python BMP280 d'Adafruit pour contrôler le BMP280, qui est installé sur ce module capteur. Ce document a été publié sous la licence MIT OpenSource licence.

Celui-ci doit d'abord être installé. Pour ce faire, procédez comme suit :

Tout d'abord, si cela n'a pas été fait sur le Raspberry Pi, le logiciel GitHub doit être installé :

sudo apt-get install git

Pour ce faire, le Raspberry Pi doit être connecté à Internet. Avec le commandement...

git clone https://github.com/adafruit/Adafruit_CircuitPython_BMP280.git

... la version actuelle de la bibliothèque Adafruit_BM280 peut être téléchargée et décompressée.

Après cela, nous changeons avec...

cd Adafruit_CircuitPython_BMP280/

... dans le dossier téléchargé et installez la bibliothèque avec...

sudo python setup.py install

... pour installer la bibliothèque. Après cela, la bibliothèque peut être utilisée.

Pour que le Raspberry Pi puisse communiquer avec le capteur sur le bus I2C, la fonction I2C doit également être activée sur le Raspberry Pi au préalable. 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 -> Enter], le fichier peut être sauvegardé et fermé après avoir ajouté la ligne du bas.

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

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

Après cela, l'exemple de code Python suivant peut ê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.

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

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
Masse 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