Half of all “my sensor doesn’t work” problems are I2C problems. These guides cover bus wiring and pull-ups, address scanning and conflicts, 3.3V↔5V level shifting, and running multiple identical devices with a multiplexer — with working examples on Arduino, ESP32, and Pi. The exact converters and expanders used in the guides are below.
Shop the parts used in these tutorials
Pre-Soldered I2C Logic Level Converter 3.3V-5V Bi-Directional for Arduino, Raspberry Pi, ESP32 & Pico
$6.25
TCA9548A Pre-Soldered 1-to-8 I2C 8-Channel Multiplexer Module
$9.99
ADS1115 Pre-Soldered ADC Analog to Digital Converter Module for Arduino & Raspberry Pi
$9.75
BH1750 Pre-Soldered Digital Light Sensor for Arduino & Raspberry Pi
$6.98Raspberry Pi TP4056 INA219: Build a Mini UPS Backup
Build a Raspberry Pi mini UPS using TP4056, INA219, and 18650 cells for stable 5V backup power plus low-battery shutdown signaling from...
Arduino Nano MAX30102: OLED Pulse Oximeter Build
Build an Arduino Nano MAX30102 pulse oximeter with an SSD1306 OLED for live BPM and SpO2 readout using simple I2C wiring and...
Arduino Nano DS18B20: Automated Aquarium Control
Build an Arduino Nano aquarium controller using a DS18B20 probe, DS3231 RTC, relays, and OLED to automate heater control and daily lighting...
Arduino Nano NEO-6M GPS: OLED Speedometer Display
Build an Arduino Nano GPS speedometer using a NEO-6M module and SSD1306 OLED for a clear, wheel-sensor-free speed readout outdoors with ShillehTek...
Arduino Nano + INA219 OLED: Power Bank Live Stats
Build an Arduino Nano power bank with INA219 monitoring and an SSD1306 OLED to display live voltage, current, and power using parts...
ESP32 MQ-135: Air Quality Dashboard with OLED
Build an ESP32 air quality dashboard using an MQ-135, DHT22, and SSD1306 OLED, with live readings on-screen and on a Wi-Fi web...
Arduino Nano INA219: Measure Voltage, Current, Power
Build an Arduino Nano INA219 wattmeter to read voltage, current, and power over I2C for accurate low-current monitoring, using parts from ShillehTek.
ESP32 BME280 + ST7735: Wi-Fi Weather Station Display
Build an ESP32 Wi-Fi weather station with a BME280 sensor and ST7735 TFT display to show indoor readings plus OpenWeatherMap outdoor data,...
Arduino DS3231 RTC: OLED Alarm Clock with Buzzer
Build an Arduino DS3231 RTC alarm clock with an SSD1306 OLED and buzzer for accurate, battery-backed timekeeping and a reliable daily alarm...
Arduino Nano RC522 RFID: Smart Door Lock with OLED
Build an Arduino Nano RC522 RFID smart door lock with an OLED status screen and servo latch action, using simple wiring and...
Arduino 24MHz Logic Analyzer: Decode I2C SPI UART
Capture and decode Arduino I2C traffic with a 24MHz USB logic analyzer in PulseView, so you can verify SPI, UART, and sensor...
Arduino PCF8574: Add 8 GPIO Pins Over I2C
Build an Arduino PCF8574 I2C GPIO expander project to drive 8 LEDs using only SDA and SCL, freeing pins for bigger builds...