i2c-temp-sensor-python.py

Banana Pi BPI-RT2 : Carte routeur WiFi 6 AX3000 · Fichier : i2c-temp-sensor-python.py · Langage : Python · Usage : Lire la température d'un capteur I2C (ex: LM75) connecté à l'en-tête d'extension.

Script Python utilisant la bibliothèque smbus pour interroger un capteur de température I2C.

Installez les dépendances avec 'opkg install python3 python3-smbus python3-pip' puis 'pip3 install smbus2' si nécessaire. Le script suppose que le bus I2C 0 est activé dans le device tree. Connectez le capteur aux broches SDA/SCL de l'en-tête 5 ou 9 broches. Vérifiez l'adresse I2C avec 'i2cdetect -y 0' avant d'exécuter.

i2c-temp-sensor-python.py

import smbus
import time

# Adresse I2C typique pour LM75 (vérifier datasheet)
I2C_BUS = 0
I2C_ADDR = 0x48

def read_temperature():
    try:
        bus = smbus.SMBus(I2C_BUS)
        # Lecture du registre de température (MSB puis LSB)
        msb = bus.read_byte_data(I2C_ADDR, 0x00)
        lsb = bus.read_byte_data(I2C_ADDR, 0x01)
        
        # Conversion 11-bit signed value
        temp = (msb << 8) | lsb
        if temp > 0x7FF:
            temp -= 0x1000
        temp_c = temp / 256.0
        return temp_c
    except Exception as e:
        print(f"Erreur I2C: {e}")
        return None

if __name__ == "__main__":
    print("Lecture température (Ctrl+C pour arrêter)")
    while True:
        t = read_temperature()
        if t is not None:
            print(f"Température: {t:.2f} °C")
        time.sleep(2)

← Retour à la fiche