Blog · Buyer's guide · 2026

Best i2c sensors: 10 picks by project

Buyer's guide

The best i2c sensor is the one that measures the thing your project actually needs. Start with the job—environment, CO₂, light, distance, motion, analog input, power or non-contact temperature—then use this list to choose a board with a known address, voltage range and practical trade-off.

At a glance

i2c sensor list by project

NeedPickTypical address
EnvironmentBME2800x76 / 0x77
CO₂SCD410x62
LightBH17500x23 / 0x5C
DistanceVL53L1X0x29
MotionLIS3DH0x18 / 0x19
Motion + gyroMPU-60500x68 / 0x69
Analog inputsADS11150x48–0x4B
PowerINA2190x40–0x4F
Gesture + proximityAPDS-99600x39
Non-contact temperatureMLX906140x5A

The picks

Ten i2c sensors worth designing around

BME280

Environment
Bosch BME280 · address 0x76 / 0x77 · 3.3–5 V

Temperature, humidity and pressure in one widely supported breakout. The sensible starting point for a weather node, room monitor or anything that needs more than one environmental reading.

Watch out: The classic Amazon bait-and-switch: countless 'BME280' listings ship the cheaper BMP280 — no humidity sensor. Verify before building around it: chip-ID register 0xD0 reads 0x60 on a real BME280 and 0x58 on a BMP280, and a humidity reading stuck at 0 gives it away instantly.

SCD41

CO₂
Sensirion SCD41 · address 0x62 · 3.3–5 V

A true CO₂ reading plus temperature and humidity, suited to indoor-air and ventilation projects where a VOC-derived estimate is not enough.

Watch out: Check the board's voltage range and its active address before adding it to an existing bus.

BH1750

Light
Rohm BH1750 · address 0x23 / 0x5C · 3.3–5 V

Ambient light in lux with minimal setup. It is the straightforward choice for daylight-aware lighting, display dimming and simple room automation.

Watch out: Check the board's voltage range and its active address before adding it to an existing bus.

VL53L1X

Distance
ST VL53L1X · address 0x29 · 3.3–5 V

Time-of-flight ranging for presence, level and distance sensing. Choose it when an ultrasonic sensor is too large or unreliable for the enclosure.

Watch out: Same 0x29-for-everyone situation as the VL53L0X: multiple units need XSHUT sequencing or a multiplexer. And it is not register-compatible with the L0X — code and libraries for one won't run the other.

LIS3DH

Motion
ST LIS3DH · address 0x18 / 0x19 · 3.3–5 V

A low-power three-axis accelerometer with tap, shake and motion interrupts. Good for orientation, movement logging and wake-on-motion builds.

Watch out: Check the board's voltage range and its active address before adding it to an existing bus.

MPU-6050

Motion + gyro
InvenSense MPU-6050 · address 0x68 / 0x69 · 3.3–5 V

The familiar budget six-axis option when rotation as well as acceleration matters. Its library ecosystem makes it a practical first IMU.

Watch out: Genuine MPU-6050s went end-of-life years ago, so most GY-521 modules now carry clone silicon. Clones mostly work, but many return the wrong WHO_AM_I (0x98 instead of 0x68) — which makes libraries that verify the ID refuse to start. Patch the check, or use a library that skips it.

ADS1115

Analog inputs
TI ADS1115 · address 0x48–0x4B · 2–5.5 V

A 16-bit external ADC for reading analog sensors from a digital host. Especially useful when a microcontroller's own ADC is noisy, scarce or inaccurate at the rails.

Watch out: Check the board's voltage range and its active address before adding it to an existing bus.

INA219

Power
TI INA219 · address 0x40–0x4F · 3.3–5 V

Measures bus voltage and current through an external shunt, so a battery or load stops being a guess. Use it for battery experiments and power-budget debugging.

Watch out: The chip reaches all 16 addresses (0x40–0x4F) because A0 and A1 each strap to one of four places — GND, VS+, SDA or SCL. Most breakouts only expose the four you get from GND/VS+ jumpers (0x40, 0x41, 0x44, 0x45); the other twelve need A0/A1 wired to SDA or SCL by hand.

APDS-9960

Gesture + proximity
Broadcom APDS-9960 · address 0x39 · 2.4–3.6 V

Combines gesture, proximity, colour and ambient-light sensing in one compact part. A useful way to add touchless input without a camera.

Watch out: Check the board's voltage range and its active address before adding it to an existing bus.

MLX90614

Non-contact temperature
Melexis MLX90614 · address 0x5A · 3.3–5 V

Reads the temperature of an object without touching it. A natural fit for surface checks, motion-triggered measurement and projects where a probe cannot contact the target.

Watch out: The part-number suffix silently sets supply voltage and field of view, and modules rarely say which variant they carry. Most GY-906 boards use the 3 V, ~90°-FOV variant — it averages everything in a wide cone, so don't expect spot readings at a distance.

Before you buy

Four checks before adding an i2c sensor

1. Measurement first. A gas sensor cannot substitute for a true CO₂ measurement, and an accelerometer cannot report rotation the way an IMU can. Pick the physical quantity before comparing breakout features.

2. Address next. A bus needs unique addresses. Check the i2c address list before adding a board; if two picks conflict, use a selectable-address variant, a second bus or a multiplexer.

3. Match voltage. Pi and ESP32 GPIO are 3.3 V. A 5 V Arduino and a 3.3 V-only sensor need the right bidirectional level shifter, not a one-way voltage divider.

4. Verify the hardware. Run i2c scanner code before debugging a library. A detected address proves the wiring and power path before software enters the picture.

Questions

Choosing an i2c sensor

What is the best first i2c sensor?

A BME280 is the safest first pick because one breakout measures temperature, humidity and pressure, runs at 3.3 V or 5 V, and has mature libraries. If your project has a specific need, choose the sensor for that measurement rather than adding a general-purpose board by default.

Can I put several i2c sensors on one bus?

Yes. All sensors share SDA and SCL, provided their active 7-bit addresses are unique and their logic voltages are compatible. Check each address before buying, scan the finished bus, and account for the combined pull-up resistors on a long chain.

How do I choose an i2c sensor?

Start with the measurement you need, then check range, accuracy, voltage, default address, host-library support and physical conditions such as distance, sunlight, condensation or current range. A sensor that matches the project is better than one with a longer feature list.

Do i2c sensors need a level shifter?

Only when the host and sensor do not share a compatible logic voltage. A 3.3 V Raspberry Pi or ESP32 generally connects directly to a 3.3 V sensor; a 5 V Arduino needs a bidirectional level shifter for a 3.3 V-only board.