Blog · Buyer's guide · 2026

The best i2c sensors for Raspberry Pi

Buyer's guide

Six sensors that earn their bus address: all 3.3 V-safe for the Pi's GPIO, all available on solderless Qwiic/STEMMA QT boards, all with mature Linux drivers. Enable i2c first, then chain the lot on two pins.

The picks

Six i2c sensors for the Raspberry Pi, one bus

BME280

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

The default first sensor: temperature, humidity and pressure from one board at 0x76/0x77. Every language has a mature driver, and the readings are good enough to trust for home automation.

SCD40

CO₂ / air quality
Sensirion SCD40 · address 0x62 · 3.3–5 V

A true CO₂ sensor (photoacoustic), not a VOC guesser — which matters if you're deciding when to ventilate a room. Reads CO₂, temperature and humidity over one bus at 0x62.

BH1750

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

Ambient light in real lux at 0x23 or 0x5C, for a few dollars. The classic input for 'turn the lights on when it gets dark' projects and cheap enough to sprinkle around the house.

VL53L0X

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

Laser time-of-flight ranging to about 2 m at 0x29 — far more reliable indoors than ultrasonic modules, immune to soft surfaces, and small enough to hide behind a bezel.

LIS3DH

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

A low-power 3-axis accelerometer (±2g to ±16g, 0x18/0x19) with tap and shake detection in hardware — vibration monitoring and orientation sensing without waking the Pi constantly.

DS3231

Timekeeping
Maxim DS3231 · address 0x68 · 3.3–5 V

The Pi forgets the time when powered off. A temperature-compensated DS3231 at 0x68 drifts about a minute per year and the kernel supports it natively — one config line and the clock survives reboots offline.

Wiring them all

Running the whole Pi sensor set on two pins

Every pick above chains on the Pi's single i2c bus: SDA on GPIO2, SCL on GPIO3, 3.3 V and ground. With Qwiic/STEMMA QT versions there's no soldering — daisy-chain cables board to board. Their default addresses (0x76, 0x62, 0x23, 0x29, 0x18, 0x68) don't collide, and the Pi's built-in 1.8 kΩ pull-ups mean pull-up math is already handled for reasonable chains. Verify the whole stack with one i2cdetect scan.

Questions

Pi sensor FAQ

Are these sensors safe for the Raspberry Pi's 3.3 V GPIO?

Yes — every pick here runs happily at 3.3 V, and the breakout versions ship on Qwiic / STEMMA QT boards designed for it. The Pi is strictly 3.3 V on GPIO, so avoid 5 V-only modules or put a level shifter between them.

Can I connect several of these at once?

That's the point of i2c: all of them share the same two pins (GPIO2/GPIO3). Their addresses don't collide — and where a pair could (DS3231 and an MPU-6050 both like 0x68), our address-conflict guide covers the fixes.

Do I need to solder anything?

Not if you buy Qwiic or STEMMA QT versions — a Qwiic HAT or adapter cable on the Pi's header makes the whole chain plug-together. See our connector standards reference for how the ecosystems fit.

What about the BME680 or CCS811 for air quality?

Both work but both rely on clock stretching, which the Pi's hardware i2c controller handles badly — expect flaky reads unless you use the software-i2c overlay. The SCD40 measures real CO₂ and behaves itself on a Pi, which is why it's the pick.