The best i2c sensors for Raspberry Pi
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
EnvironmentThe 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 qualityA 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
LightAmbient 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
DistanceLaser 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
MotionA 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
TimekeepingThe 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.