Adresses I2C des capteurs et actionneurs les plus courants • Domotique et objets connectés à faire soi-même

Pour faciliter le développement de vos objets connectés à base de micro-contrôleurs Arduino, ESP32, ESP8266, STM32 ou Raspberry Pi, voici une liste des modules (breakout) I2C les plus courants. Capteurs d’ambiance (température, humidité relative, pression atmosphérique, intensité lumineuse…), détection de polluants (CO, CO2, eTVOC…), caméra thermique AMG8833, écrans LDC2004 ou SSD1306 et cartes d’extension E/S numériques ou analogiques.

Chaque fabricant a prévu une méthode pour activer l’adresse I2C alternative. Généralement, il faudra faire une petite soudure sur le module (breakout) ou appliquer une tension (3V3 ou 5V par exemple). Par contre, il est très rarement possible de modifier l’adresse par programmation.

Voici deux exemples que l’on rencontre assez souvent

BME280 BH1750FVI
yixjiamshue83ledfjjl-7407884 7ztzrubhrduqaqtiim48-4092413
Pour attribuer l’adresse i2c 0x77, il faut souder un jumper entre les deux broches de droite et couper la piste entre les deux broches de gauche Pour attribuer l’adresse 0x5C, il faut appliquer une tension supérieur à 0,7V sur la broche ADDR

Pour en savoir plus sur le bus I2C, vous pouvez continuer par la lecture de cet article

Scanner I2C Arduino, ESP32 ou ESP8266

Si vous ne trouvez pas l’adresse I2C de votre composant ou que vous rencontrez des problèmes de communication, voici le code source d’un scanner I2C compatible Arduino, ESP32 et ESP8266.

#include 
#include 

#define DISPLAY_ERROR false 
#define LOOP_DELAY    10000
#define USER_PIN      false

// Personnaliser les broches du bus I2C pour ESP8266 ou ESP32 
// Customize I2C bus pins for ESP8266 or ESP32
const int PIN_SCL = D1;
const int PIN_SDA = D2;

String I2Ctest() {
  byte error, address;
  int nDevices;
  String s;
 
  s="Scanning...\n";
 
  nDevices = 0;
  for(address = 1; address < 127; address++ ) {  
    Wire.beginTransmission(address);
    error = Wire.endTransmission();
 
    if (error == 0) {
      s+="I2C device found at 0x";
      if (address 0 ) {
      if ( DISPLAY_ERROR ) {
        s+="Unknow error at 0x";
        if (address  0,7 VCC

Projets et articles sur le BH1750FVI BMP180

Pression atmosphérique de 300 ~ 1100hPa

Documentation technique

0x77 BMP280

Température de -40 ~ + 85°C

Pression atmosphérique de 300 ~ 1100 hPa

Documentation technique

0x76 0x77 BME280

Température de -40 ~ + 85°C

Humidité de 0 ~ 100%

Pression atmosphérique de 300 ~ 1100 hPa

Documentation technique

0x76 0x77 BME680

Température de -40 ~ +85°C

Humidité de 0 ~ 100%

Pression atmosphérique de 300 ~ 1100 hPa

Documentation technique

0x76 0x77 Projets et articles réalisés à l’aide d’un capteur BMP180, BME280 ou BME680 DHT12

Température de -20°C ~ +60°C (±0,5°C)

Humidité relative de 20 à 95% (±5°C)

0xB8 MLX90614

Température sans contact de -40 ~ +125°C 0x5A 0x01

à

0x7F

MS5611

Température de -40°C ~ +85°C

Pression atmosphérique de 10 ~ 1200 mbar

0x76 SHT30

Température de -40°C ~ +125°C

Documentation technique

0x44 0x45 Breakout

Shield LoLin, M5Stack

Projets et articles SI7021

Température de -10 ~ 85°C

Humidité de 0 ~ 80%

Documentation technique

0x40 TSL2561

Intensité lumineuse de 188 μLux ~ 88000 lux

Documentation technique

0x29 0x39 0x49 TCS34725

Détecteur de couleur avec sortie RGB

Documentation technique

0x29

Mesure de courant

Détection de polluants. C0, CO2

Caméra thermique I2C

Accéléromètre, gyroscope, magnétomètre

Pour télécommander un bras robotique, un drone, un jeu…

Tableau comparatif des breakouts les plus courants, MPU6050, MPU9250 et ADXL345.

MPU6050 ADXL345 MPU9250
Gyroscope (axes) 3 3 3
Game de mesure du gyroscope ±250, ±500, ±1000, ±2000°/sec
Accéléromètre (axes) 3 3 3
Gamme de mesure de l’accéléromètre ±2g /±4g /±8g /±16g ±2g /±4g /±8g /±16g ±2g /±4g /±8g /±16g
Magnétomètre (axes) 3
Capacité de mesure du magnétomètre ±4800µT
Degrés de libertés (DOF) total 6 6 9
Adresses I2C 0x68 0x69 0x1C 0x68 0x0C
Vitesse max. du bus I2C 400 kHz 400 kHz 400 kHz
SPI
Tension d’alimentation 2.375V ~ 3.46V 2.0V ~ 3.6V 2.4V ~ 3.6V
Consommation 23 µA

0.1 µA (standby)

3.5mA
Fonctionnement -40°C ~ 85°C -40°C ~ 85°C -40°C ~ 85°C
Documentation technique Consulter Consulter Consulter
Acheter

14,99€

actualisé le 25 septembre 2022 17 h 56 min

30,99€

actualisé le 25 septembre 2022 17 h 56 min

Ecrans OLED et LCD sur bus I2C

Equipement Application Adresse I2C Adresse alternative Acheter
LCD2004

Ecran d’affichage LCD 4 lignes

Documentation technique

0x27
SSD1306

Ecrans OLED noir et blanc, 64×64 ou 128×68 pixels 0x3C 128×64 pixels

Autres dimensions

Projets et articles

Cartes d’extension E/S numériques supplémentaires, horloge RTC

Equipement Application Adresse I2C Adresse alternative Acheter
ADS1115

4 entrées A/N 16 bits supplémentaires

Documentation technique

0x48 0x4B
DS1307

Horloge temps réel avec éventuellement une sauvegarde par batterie 0x68  
MCP23017

16 entrées/sorties numériques supplémentaires, boîtier DIP28

Vitesse bus : 100kHz, 400kHz, 1.7MHz

MCP23S17 pour le bus SPI

Documentation technique

0x20 0x27
PCF8574

8 entrées/sorties numériques supplémentaires

Vitesse bus : 100kHz, 400kHz, 1MHz

Documentation technique

0x38 0x3F
PCA9685

16 canaux PWM 12 bits

Documentation technique

0x40 0x7F
Projets et articles

Classement des équipements par adresse I2C

0x10

VEML6075 Capteur UV. 0x10 uniquement

VEML7700 Capteur de lumière ambiante. 0x10 uniquement

0x11

Si4713 Transmetteur FM avec RDS. 0x11 ou 0x63

0x13

VCNL40x0 Capteur de proximité. 0x13 uniquement

0x18

MCP9808 Capteur de température. De 0x18 à 0x1F

LIS3DH Accéléromètre 3 axes. 0x18 ou 0x19

0x19

LSM303 Accéléromètre. 0x1E pour le magnétomètre

0x1C

LSM303 Magnétomètre. 0x19 pour l’accéléromètre

MMA845x Accéléromètre 3 axes. 0x1C ou 0x1D. Obsolète

FXOS8700 Accéléromètre + magnétomètre. 0x1C, 0x1D, 0x1E ou 0x1F. Obsolète

MMA7455L Accéléromètre. 0x1C ou 0x1D

0x1D

LSM9DS0 IMU 9 axes (0x1D ou 0x1E pour Accel / Mag, 0x6A ou 0x6B pour Gyro)

ADXL345 Accéléromètre 3 axes. 0x1D ou 0x53

0x1E

HMC5883 Magnétomètre. 0x1E uniquement

LIS2MDL Magnétomètre. 0x1E uniquement.

0x20

FXAS21002 Gyroscope. 0x20 ou 0x21

MCP23008 Module d’extension GPIO. 0x20 ou 0x27

MCP23017 Module d’extension GPIO. 16 entrées/sorties numériques supplémentaires. 0x20 ou 0x27

0x23

BH1750 Intensité lumineuse 0 ~ 65535 lux, convertisseur 16 bits. 0x23 ou 0x5C

0x26

MSA301 Accéléromètre 3 axes. 0x26 uniquement. Obsolète

0x27

LCD2004 Pilote pour écran d’affichage LCD 4 lignes. 0x27 uniquement

0x28

BNO055 IMU. 0x28 ou 0x29

CAP1188 détecteur tactile capacitif 8 canaux. De 0x28 à 0x2D

DS3502 Potentiomètre numérique 10K. De 0x28 à 0x2B. Obsolète

PCT2075 Capteur de température. Plusieurs plages disponibles : 0x28-0x2E, 0x48-0x4F, 0x70-0x77

0x29

TCS34725 Capteur de couleur. 0x29 uniquement

TSL2561 Capteur de lumière. 0x29, 0x39 ou 0x49

TSL2591 Capteur de lumière. 0x29 ou 0x28

VL53L0x Mesure de distance par laser ToF. 0x29, configurable depuis le code

VL6180X Capteur ToF. 0x29 uniquement

0x33

MLX90640 Caméra thermique infrarouge 8×8 pixels. 0x33 uniquement

0x38

VEML6070 Index UV. 0x38 ou 0x39

FT6x06 Détecteur tactile capacitif. 0x38 uniquement. Obsolète

PCF8574 8 entrées/sorties numériques supplémentaires. 0x38 ou 0x3F

0x39

APDS-9960 Capteur IR / Couleur / Proximité. 0x39 uniquement

0x3C

SSD1305 OLED monochrome. 0x3C ou 0x3D à l’aide d’un jumper à souder sur certaines cartes

SSD1306 OLED monochrome. 0x3C ou 0x3D à l’aide d’un jumper à souder sur certaines cartes

0x40

Si7021 Capteur d’humidité / température. 0x40 uniquement

HTU21D-F Capteur d’humidité / température. 0x40 uniquement. Obsolète

HDC1008 Capteur d’humidité / température. 0x40, 0x41, 0x42 ou 0x43. Obsolète

TMP007 Capteur de température IR. De 0x40 à  0x47. Obsolète

TMP006 Capteur de température IR. De 0x40 à  0x47. Obsolète

PCA9685 carte d’extension 16 canaux PWM. De 0x40 à 0x7F

INA219 Capteur de courant / tension CC. De 0x40 à 0x7F

INA260 Capteur de courant / puissance CC de précision. De 0x40 à 0x7F. Obsolète

0x41

STMPE610 / STMPE811 Détecteur tactile résistif . 0x41 ou 0x44. Obsolète

0x44

SHT30 Capteur d’humidité / température. 0x44 ou 0x45

ISL29125 Capteur de couleur RBG. 0x44 uniquement

0x48

ADS1115 carte d’extension 4 canaux ADC 16 bits. 0x48 0x49 0x4A ou 0x4B

PN532 Lecteur NFC / RFID. 0x48 uniquement

0x50

MB85RC module mémoire FRAM. De 0x50 à 0x57

0x52

Manette Nintendo Nunchuck. 0x52

0x53

ADXL345 Accéléromètre 3 axes. 0x1D ou 0x53

0x57

MAX3010 Capteur de pouls et d’oxymétrie

0x58

TPA2016 Amplificateur audio I2C

SGP30 Mesure de la qualité de l’air (IAQ)

0x5A

MPR121 Capteur tactile capacitif 12 points. 0x5A, 0x5B, 0x5C ou 0x5D

CCS811 Capteur COV. 0x5A ou 0x5B

MLX9061x Capteur de température sans contact par IR de -40°C à +125°C. 0x5A uniquement

DRV2605 Pilote pour moteur Haptic. 0x5A uniquement. Obsolète

0x5C

AM2315 Capteur d’humidité et de température. 0x5C uniquement

AM2320 Capteur d’humidité et de température. 0x5C uniquement

LPS25 Baromètre numérique. 0x5C ou 0x5D.

LPS33HW Baromètre numérique. 0x5C ou 0x5D.

LPS35HW Baromètre numérique. 0x5C ou 0x5D.

0x5E

TLV493D Magnétomètre 3 axes. 0x5E

0x60

MCP4728 Convertisseur Analogique numérique 12 bits, 4 entrées. 0x60 uniquement

MPL115A2 Baromètre numérique. 0x60

MPL3115A2 Baromètre numérique. 0x60 uniquement

Si5351A Générateur d’horloge. 0x60 ou 0x61

Si1145 Capteur de lumière / infrarouge. 0x60 uniquement

MCP4725A0 DAC 12 bits. 0x60 ou 0x61

TEA5767 Récepteur radio stéréo.0x60 uniquement

VCNL4040 Capteur de proximité et de lumière ambiante. 0x60 uniquement

0x62

MCP4725A1 DAC 12 bits. 0x62 ou 0x63

0x68

AMG8833 Caméra thermique IR Breakout (0x68 ou 0x69)

DS1307 Horloge RTC

DS3231 Horloge RTC

ICM-20649 Accéléromètre + Gyroscope. 0x68 ou 0x69

ITG3200 Gyroscope. 0x68 ou 0x69

MPU-9250 9-DoF IMU. 0x68 ou 0x69

MPU-60X0 Accéléromètre + Gyroscope. 0x68 ou 0x69

PCF8523 Horloge RTC. 0x68 uniquement

0x6A

ICM330DHC IMU 6 axes. 0x6A ou 0x6B

L3GD20H Gyroscope. 0x6A ou 0x6B

LSM6DS33 IMU 6 axes. 0x6A ou 0x6B

LSM6DSOX IMU 6 axes. 0x6A ou 0x6B

0x70

HT16K33 Pilote de matrice LED (0x70 – 0x77)

TCA9548 Carte d’extension 8 sorties numériques supplémentaires. De 0x70 à 0x77

0x76

BMP280 Température, pression atmosphérique. 0x76 ou 0x77

BME280 Température, humidité, pression atmosphérique. 0x76 ou 0x77

BME680 Température, humidité, pression atmosphérique, qualité de l’air (IAQ). 0x76 ou 0x77

MS5607 / MS5611 Baromètre numérique. 0x76 ou 0x77

0x77

BMA180 Accéléromètre. 0x77 uniquement

BMP085 Température, baromètre. 0x77 uniquement. Obsolète

0xB8

DHT12

Mises à jour

6/10/2020 Classement des composant par adresse I2C
6/10/2020 Ajout du scanner I2C compatible Arduino, ESP32 et ESP8266. Adresse I2C de l’horloge temps réel DS1307

24/08/2020 Première publication de l’article

Avez-vous aimé cet article ?