enable I2C
excellent tuto :
https://www.abelectronics.co.uk/kb/article/1/i2c-part-2-enabling-i2c-on-the-raspberry-pi
pour détecter les équipements i2C connectés
$ sudo i2cdetect -y 1
pour pins physiques:
https://pinout.xyz/pinout/i2c
TMP 117:
- connect 3V power GPIO 1
- connect GND to GPIO 9
- Connect board SDA (blue wire) to GPIO 3
- Connect board SCL (yellow wire) to GPIO 5
Vérifie que le module I2C est bien chargé :
lancer jupyter notebook sur raspi:
jupyter notebook –no-browser –ip=0.0.0.0 –port=8888
code : voir jupyter notebook
sqlite3 : gestion de la table temperature_data
sqlite3 temperature_data.db
SELECT COUNT(*) FROM temperature_data;
import smbus2 import time I2C_BUS = 1 TMP117_ADDR = 0x48 TEMP_REG = 0x00 def read_temperature(): try: bus = smbus2.SMBus(I2C_BUS) raw_data = bus.read_word_data(TMP117_ADDR, TEMP_REG) # Inversion des octets (Little-Endian → Big-Endian) raw_data = ((raw_data << 8) & 0xFF00) | ((raw_data >> 8) & 0x00FF) # Gestion du complément à deux if raw_data & 0x8000: raw_data -= 1 << 16 # Conversion en °C temperature = raw_data * 0.0078125 return round(temperature, 2) except Exception as e: print(f"Erreur lors de la lecture du capteur : {e}") return None finally: bus.close() # Boucle d'acquisition pour tester en continu for i in range(10): # Lire 10 fois temperature = read_temperature() if temperature is not None: print(f"Température: {temperature}°C") time.sleep(2) # Pause de 2 secondes entre les mesures
Si la carte SD est presque pleine :
vérifier avec : df -h
Supprimer les paquets inutiles :
sudo apt autoremove
sudo apt clean
Vérifier les logs volumineux :
sudo journalctl –vacuum-time=2d
(Cela supprimera les logs plus anciens que 2 jours.)
Supprimer les fichiers inutiles dans /home/pi/ :
du -sh /home/pi/*