i2c-sensor-temp.py

AAEON PICO-PTH4 : Carte Pico-ITX avec SoC Intel Panther Lake · Fichier : i2c-sensor-temp.py · Langage : Python · Usage : Lire la température d'un capteur I2C (ex: LM75) connecté au bus interne.

Exemple de lecture d'un capteur de température numérique sur le bus I2C/SMBus interne de la carte Panther Lake.

Utilise le bus I2C 1 (à vérifier selon le BIOS). Le capteur LM75 est un exemple courant. Assurez-vous que le module kernel i2c-dev est chargé. Connectez SDA/SCL aux broches internes correspondantes. Exécution : python3 i2c_sensor.py.

i2c-sensor-temp.py

import smbus
import time

# Adresse I2C du capteur LM75 (0x48 par défaut)
I2C_BUS = 1
SENSOR_ADDR = 0x48
TEMP_REG = 0x00

def read_temperature():
    try:
        bus = smbus.SMBus(I2C_BUS)
        # Lire 2 octets de température
        raw = bus.read_word_data(SENSOR_ADDR, TEMP_REG)
        # Conversion : décalage de 5 bits, MSB en premier
        temp = ((raw << 8) & 0xFF00) + (raw >> 8)
        temp = temp >> 5
        if temp > 127:
            temp -= 256
        return temp / 8.0
    except Exception as e:
        print(f"Erreur lecture I2C : {e}")
        return None

def main():
    print("Lecture capteur température I2C...")
    while True:
        temp = read_temperature()
        if temp is not None:
            print(f"Température : {temp:.2f} °C")
        time.sleep(2)

if __name__ == "__main__":
    main()

← Retour à la fiche