🛠 Interroger un capteur I2C (BME280) sur le bus du 40 broches

Raspberry Pi Model B+ (2014) — Fiche de carte · intermediaire · Schéma : IMG-model-b-plus-intermediaire-2-modelbp-i2c-capteur.svg — capteur BME280 relié au bus I2C0 : SDA sur broche 3 (GPIO2), SCL sur broche 5 (GPIO3), VCC 3,3 V (broche 1) et GND (broche 6), avec les résistances de pull-up du module.

Objectifs

Activer le bus I2C du Model B+ (I2C0 disponible d'office sur le connecteur 40 broches), scanner le bus avec i2cdetect, puis lire le numéro d'identification d'un capteur BME280 en Python — la preuve que la chaîne matérielle/logicielle fonctionne avant d'exploiter les mesures.

Matériel

Code complet

# Activer I2C : raspi-config > Interfaces de connexion > I2C, ou :
echo "dtparam=i2c_arm=on" | sudo tee -a /boot/config.txt
sudo reboot
sudo apt install -y i2c-tools python3-smbus
i2cdetect -y 1        # le BME280 doit répondre à 0x76 (ou 0x77)
#!/usr/bin/env python3
"""Lecture de l'ID du BME280 sur i2c-1 — Model B+."""
import smbus

ADDR = 0x76                      # 0x77 si l'adresse SDO est montée
bus = smbus.SMBus(1)
chip_id = bus.read_byte_data(ADDR, 0xD0)
print(f"BME280 chip id: 0x{chip_id:02X}")   # attendu 0x60 (BMP280 : 0x58)

Vérification attendue

i2cdetect -y 1 affiche une grille où la case 76 est marquée. Le script Python imprime « BME280 chip id: 0x60 ». Avec un BMP280, 0x58 confirme un capteur voisin ; 0x55 ou 0xFF signale un souci d'alimentation.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels