i2c_bme680_sensor.py

Placa base Xerxes Nano para módulos Jetson Orin Nano Super y Turing RK1 · Archivo : i2c_bme680_sensor.py · Lenguaje : Python · Uso : Lecture de données environnementales (température, pression, humidité) via un capteur BME680 sur le bus I2C.

Ejemplo de comunicación I2C nativa con un sensor ambiental BME680 conectado a los pines I2C de la placa portadora.

Hardware: Sensor BME680 conectado a los pines I2C1 (SDA/SCL) de la Xerxes Nano. Software: Python 3, biblioteca smbus2. Ejecución: pip install smbus2 y luego python3 i2c_bme680.py. Verifique la dirección I2C con 'i2cdetect -y 1'.

i2c_bme680_sensor.py

#!/usr/bin/env python3
import smbus2
import time

# Adresse I2C par défaut du BME680 (0x76 ou 0x77)
I2C_BUS = 1
BME680_ADDR = 0x76

# Registre de configuration
CONFIG_REG = 0xF5
CTRL_MEAS_REG = 0xF4

# Initialisation simplifiée (nécessite souvent une lib dédiée comme adafruit-circuitpython-bme680)
# Pour cet exemple, on utilise un accès brut pour la démonstration de l'interface I2C de la carte

def read_byte(bus, reg):
    return bus.read_byte_data(BME680_ADDR, reg)

def write_byte(bus, reg, value):
    bus.write_byte_data(BME680_ADDR, reg, value)

try:
    bus = smbus2.SMBus(I2C_BUS)
    
    # Vérification de la présence du capteur (Chip ID)
    chip_id = read_byte(bus, 0xD0)
    if chip_id != 0x61:
        print(f"Capteur non détecté ou erreur. Chip ID: {hex(chip_id)}")
    else:
        print("BME680 détecté sur le bus I2C de la Xerxes Nano")
        # Note : Pour une lecture complète précise, il est recommandé d'utiliser la bibliothèque
        # 'adafruit-circuitpython-bme680' qui gère les calibrations complexes.
        # Ce code démontre la connectivité I2C native.
        
except Exception as e:
    print(f"Erreur I2C: {e}")
finally:
    if 'bus' in locals():
        bus.close()

← Volver a la ficha