jetson-i2c-temperature-sensor-8.ino
Queries a thermal device via the I2C bus exposed on the Xerxes Nano connectors.
Uses the 'smbus' library to communicate with an I2C sensor. Ensure I2C1 is enabled via 'sudo nvpmodel' or the Jetson configuration menu if necessary. The Xerxes Nano schematic exposes SDA/SCL lines on the GPIO headers. Check the address with i2cdetect -y 1 before running.
jetson-i2c-temperature-sensor-8.ino
import smbus
import time
# Configuration I2C pour Jetson Orin Nano
# Bus I2C 1 est souvent par défaut sur les carrier boards standard
BUS_DEV = "/dev/i2c-1"
I2C_ADDR = 0x48 # Adresse typique LM75/DS1621
def read_temperature():
try:
bus = smbus.SMBus(1)
# LM75: Registre de température est 0x00
# Lecture 2 octets: MSB (signe/entier) et LSB (fraction)
data = bus.read_i2c_block_data(I2C_ADDR, 0x00, 2)
# Calcul de la température
# Le bit de signe est dans le MSB. Pour les valeurs simples >0:
temp = (data[0] << 5) + (data[1] >> 3)
temp = temp / 256.0 * 8 # Ajustement selon le datasheet spécifique
# Alternative simplifiée pour LM75 standard:
# temp = (data[0] << 5) + (data[1] >> 3)
# if data[0] & 0x80: temp -= 5120
# temp /= 160.0
return temp
except Exception as e:
print(f"Erreur lecture I2C: {e}")
return None
if __name__ == "__main__":
print("Lecture Capteur I2C sur Xerxes Nano...")
while True:
t = read_temperature()
if t is not None:
print(f"Température: {t:.2f} °C")
time.sleep(2)