🛠 Lire un capteur I2C (température/humidité) sur le bus 1

Raspberry Pi Model B (Rev 1, 2012) — Ficha de placa · intermediaire · Schéma : IMG-model-b-rev1-intermediaire-2-modelb1-i2c-capteur.svg — Capteur I2C sur SDA0 (GPIO0, broche 3) et SCL0 (GPIO1, broche 5), 3,3 V et GND, résistances de pull-up externes 4,7 kΩ, adresses listées dans i2cdetect

Objetivos

Activar el bus I2C del BCM2835 (solo un bus físico expuesto en P1: I2C0 en GPIO0/1), escanear el bus con i2cdetect y leer un sensor digital en Python. Las primeras revisiones no tienen resistencias de pull-up I2C cableadas — tema discutido en los foros oficiales — por lo que se añaden pull-up externas de 4,7 kΩ por seguridad.

Material

Código completo

# 1) Activer I2C : sudo raspi-config > Interfacing > I2C
#    ou manuellement dans /boot/config.txt :
#    dtparam=i2c_arm=on
sudo reboot

# 2) Scanner le bus (le capteur doit apparaître, ici 0x77)
sudo i2cdetect -y 1
#!/usr/bin/env python3
"""Lecture brute d'un registre capteur via SMBus (adaptez l'adresse)."""
import smbus

BUS = smbus.SMBus(1)       # bus I2C1 cote linux (peripherique i2c-bcm2708)
ADDR = 0x77                # sortie de i2cdetect -y 1

val = BUS.read_byte_data(ADDR, 0x10)   # exemple de registre
print("registre 0x10 =", hex(val))

Verificación esperada

i2cdetect -y 1 muestra una cuadrícula con la dirección del sensor (nunca 00, ni las direcciones reservadas). El script de Python imprime un valor no nulo que cambia si calientas el sensor entre los dedos.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales