BME280 Temperature / Humidity / Pressure Node

A single Bosch BME280 chip on I²C reads three weather variables at once — your first real environmental sensor that is good enough for actual data.

Difficulty: Breadboard. Estimated build time: about 35 minutes. Estimated parts cost: about US$14.50. 4-line bill of materials. Compare supplier offers when available. A weather node built around the Bosch BME280 — a 2.5 mm × 2.5 mm sensor that reads air temperature (±0.5 °C), relative humidity (±3 %) and barometric pressure (±1 hPa) and reports all three over I²C or SPI.

Mount the breakout

Push the BME280 breakout board into your breadboard so the four pins (VCC, GND, SDA, SCL) sit on separate rails. The board has a 3.3 V regulator and level-shifters, so you can run it from 5 V — but the BME280 itself is 3.3 V only, so if you are wiring the bare chip skip the regulator and feed it 3.3 V directly.

Wire I²C

VCC → +3.3 V (or +5 V if your breakout has the regulator). GND → ground. SDA → Arduino A4 (Uno) or GPIO 21 (ESP32). SCL → Arduino A5 (Uno) or GPIO 22 (ESP32). On most breakouts the I²C pull-ups are already populated — if not, add 4.7 kΩ from SDA→VCC and SCL→VCC.

Confirm the device address

BME280s ship with I²C address 0x76 or 0x77 depending on how the SDO pin is strapped. Most breakouts default to 0x76. Run an I²C scanner sketch first; if you do not see a device, bridge the address-select solder jumper on the breakout and re-scan.

Install the Bosch library

Open the Arduino IDE library manager and install Adafruit BME280 (it depends on Adafruit Unified Sensor — install both). The library handles calibration math behind the scenes; you call begin(), then readTemperature(), readHumidity() and readPressure() each time you want a sample.

Stream readings to serial

In setup(), call Serial.begin(115200) and bme.begin(0x76). In loop(), print T, RH and P every 2 seconds. Watch the pressure number — breathe on the sensor (don't touch the metal cap) and you will see RH spike instantly while T drifts up by a fraction of a degree. That kind of dynamic response is what makes the BME280 useful for things like indoor air quality dashboards.