BME280 ou BMP280 pour le Pico 2 W : lequel mesure l’humidité ?

Illustration de deux modules de mesure près d’une goutte d’eau et d’un cadran de pression.

Pour mesurer l’humidité avec un Raspberry Pi Pico 2 W, choisissez le BME280. Les deux capteurs Bosch mesurent la pression et la température. Le BME280 ajoute l’humidité relative. Si vous possédez déjà un module bleu dont la référence vous paraît ambiguë, MicroPython peut lire son identifiant avant que vous n’installiez un pilote.

Quel capteur pour une station météo ou un baromètre ?

BesoinBME280BMP280
Humidité relative de l’airOuiNon
Pression et températureOuiOui
Identifiant Bosch de série au registre 0xD00x600x58

Pour suivre l’humidité d’une pièce ou d’une serre, achetez un module qui spécifie la mesure en % HR. Pour suivre la tendance de pression avec un baromètre, un BMP280 déjà disponible répond au besoin. Un pilote différent ne peut pas ajouter la mesure d’humidité au BMP280. Les deux températures sont celles relevées près de la puce. Éloignez le module des sources de chaleur si vous cherchez la température de l’air.

Brancher le module Adafruit en I²C sur le Pico 2 W

Débranchez le Pico de l’USB avant de câbler. Sur les cartes Adafruit illustrées, reliez 3V3(OUT) du Pico (broche physique 36) à VIN et une masse GND (par exemple la broche 3) à GND. Reliez GP0 (broche 1, SDA) à SDI et GP1 (broche 2, SCL) à SCK. Le programme utilise le bus I²C0 à 100 kHz. Sur un autre module, suivez son schéma pour l’alimentation, le mode I²C et les résistances de rappel. Brochage officiel du Pico · Broches du BME280 Adafruit · Broches du BMP280 Adafruit.

Lire le registre d’identification en MicroPython

Copiez le programme dans Thonny et exécutez-le sur le Pico équipé de MicroPython. Un scan du bus affiche les adresses qui répondent. BME280 et BMP280 peuvent tous deux utiliser 0x76 ou 0x77. Pour les départager, le programme lit un octet au registre 0xD0. Il laisse les autres périphériques tranquilles. Lecture d’un registre I²C avec MicroPython.

Afficher le programme complet
"""Identifier un BME280 ou BMP280 sur le bus I2C du Raspberry Pi Pico 2 W."""
NOMS = {0x60: "BME280", 0x58: "BMP280"}

def identifier(bus):
    presents = set(bus.scan())
    lignes = []
    for adresse in (0x76, 0x77):
        if adresse not in presents:
            continue
        try:
            valeur = bus.readfrom_mem(adresse, 0xD0, 1)[0]
        except OSError:
            lignes.append("0x%02X : lecture impossible" % adresse)
            continue
        lignes.append("0x%02X : ID 0x%02X (%s)" %
                      (adresse, valeur, NOMS.get(valeur, "identifiant inconnu")))
    return lignes

def main():
    from machine import I2C, Pin
    bus = I2C(0, sda=Pin(0), scl=Pin(1), freq=100000)
    resultats = identifier(bus)
    for ligne in resultats:
        print(ligne)
    if not resultats:
        print("Aucun module détecté à 0x76 ou 0x77.")

if __name__ == "__main__":
    main()

Télécharger le programme MicroPython et ses six tests (ZIP gratuit).

La ligne 0x76 : ID 0x60 (BME280) indique un BME280 à l’adresse 0x76. Avec un BMP280 à la même adresse, la dernière partie devient ID 0x58 (BMP280). Ces sorties ont été vérifiées sur un bus simulé. L’identifiant oriente le choix du pilote. Pour valider la mesure, l’étape suivante consiste à lire l’humidité avec le pilote BME280 et à vérifier que la valeur évolue avec les conditions de la pièce.

Que vérifier si le Pico ne reconnaît rien ?

Aucune adresse. Vérifiez la masse commune, l’alimentation, l’ordre SDA/SCL et le numéro du bus. Identifiant inconnu. Notez sa valeur et cherchez la référence précise de la puce. Deux modules à la même adresse. Essayez-les un par un, puis vérifiez si l’un des modules permet de changer l’adresse avec sa broche SDO. Fiche Bosch BME280 · Fiche Bosch BMP280.

Les deux modules Adafruit en photo

Module bleu Adafruit BME280 avec les repères VIN, GND, SCK et SDI.
Module Adafruit BME280 dans sa version à broches. La disposition peut varier selon la révision. La photo ouvre la fiche Amazon.fr. Photo de lady ada · original · CC BY-SA 3.0.

Voir Adafruit BME280 sur Amazon.fr.

Module bleu Adafruit BMP280 marqué Pressure & Temp Sensor, avec sa rangée de broches.
Module Adafruit BMP280 dans sa version à broches. La disposition peut varier selon la révision. La photo ouvre la fiche Amazon.fr. Photo de lady ada · original · CC BY-SA 3.0.

Voir Adafruit BMP280 sur Amazon.fr.

Vous hésitez encore sur la carte à offrir ou à programmer ? Notre comparatif micro:bit et Pico 2 W montre deux projets à essayer et le matériel de départ.

About Salah YAHIAOUI

Salah YAHIAOUI publie sur The Pingouin des tutoriels Python et des décryptages sur l’intelligence artificielle. Les cas pratiques récents précisent leurs données, leurs tests et leurs limites. À propos, méthode éditoriale et contact.

View all posts by Salah YAHIAOUI →

One Comment on “BME280 ou BMP280 pour le Pico 2 W : lequel mesure l’humidité ?”

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. Découvrez comment les données de vos commentaires sont traitées.