The GY-BME280-3.3 is a breakout board built around the Bosch Sensortec BME280 sensor, which combines temperature, humidity, and barometric pressure sensing in a single package — making the pressure reading usable for altimeter-style altitude estimation as well as basic weather-station applications.
The board communicates over I2C and includes onboard I2C pull-up resistors, so it can be wired directly to a microcontroller’s I2C bus without adding external pull-ups. Its I2C address is selectable via a solder-link jumper (GS2), letting two BME280 boards share a single I2C bus at different addresses if needed.
Physically, the board exposes a standard 7-pin 2.54mm header and includes two 3.5mm mounting holes for secure panel or enclosure mounting. In its default configuration, the board runs a single power rail with Vdd tied to Vdd_IO, simplifying wiring to a single supply voltage.
Features:
1. Bosch BME280 sensor: temperature, humidity, and pressure in one chip
2. I2C communication interface
3. Onboard I2C pull-up resistors — no external resistors needed
4. Selectable I2C address via solder-link jumper (GS2)
5. Standard 7-pin 2.54mm header
6. Two 3.5mm mounting holes for secure mounting
7. Single power rail (Vdd = Vdd_IO) in default configuration
8. Usable for altitude estimation and weather-station projects
Pin Connections Table 1
Board Sensor Pin Connection BME280 VCC/GND/SDA/SCL 3.3V / GND / board SDA / board SCL
GY-BME280-3.3 Precision Altimeter Atmospheric Pressure Sensor Module - Arduino Uno
GY-BME280-3.3 Precision Altimeter Atmospheric Pressure Sensor Module - Arduino Nano
GY-BME280-3.3 Precision Altimeter Atmospheric Pressure Sensor Module - Arduino Mega
GY-BME280-3.3 Precision Altimeter Atmospheric Pressure Sensor Module - ESP32
GY-BME280-3.3 Precision Altimeter Atmospheric Pressure Sensor Module - ESP8266
GY-BME280-3.3 Precision Altimeter Atmospheric Pressure Sensor Module - STM32
GY-BME280-3.3 Precision Altimeter Atmospheric Pressure Sensor Module - Raspberry Pi Pico
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // I2C wiring for Arduino Uno: A4=SDA, A5=SCL. VCC->3. 3V or 5V per module label, GND->GND.
6 #include <Wire.h>
7 #include <Adafruit_Sensor.h>
8 #include <Adafruit_BME280.h>
9
10 Adafruit_BME280 bme; // uses I2C, default address 0x76 (some modules use 0x77)
11
12 void setup () {
13 Serial.begin (115200 );
14 Wire.begin();
15 if (!bme.begin(0x76)) {
16 Serial.println ("BME280 not found - try address 0x77, or check wiring!");
17 while (1 ) delay (10 );
18 }
19 }
20
21 void loop () {
22 Serial.print ("Temp: "); Serial.print (bme.readTemperature()); Serial.print (" C ");
23 Serial.print ("Pressure: "); Serial.print (bme.readPressure() / 100.0F ); Serial.print (" hPa ");
24 Serial.print ("Humidity: "); Serial.print (bme.readHumidity()); Serial.print (" % ");
25 Serial.print ("Altitude: "); Serial.print (bme.readAltitude(1013.25 )); Serial.println (" m");
26
27 delay (1000 );
28 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // I2C wiring for Arduino Nano: A4=SDA, A5=SCL. VCC->3. 3V or 5V per module label, GND->GND.
6 #include <Wire.h>
7 #include <Adafruit_Sensor.h>
8 #include <Adafruit_BME280.h>
9
10 Adafruit_BME280 bme; // uses I2C, default address 0x76 (some modules use 0x77)
11
12 void setup () {
13 Serial.begin (115200 );
14 Wire.begin();
15 if (!bme.begin(0x76)) {
16 Serial.println ("BME280 not found - try address 0x77, or check wiring!");
17 while (1 ) delay (10 );
18 }
19 }
20
21 void loop () {
22 Serial.print ("Temp: "); Serial.print (bme.readTemperature()); Serial.print (" C ");
23 Serial.print ("Pressure: "); Serial.print (bme.readPressure() / 100.0F ); Serial.print (" hPa ");
24 Serial.print ("Humidity: "); Serial.print (bme.readHumidity()); Serial.print (" % ");
25 Serial.print ("Altitude: "); Serial.print (bme.readAltitude(1013.25 )); Serial.println (" m");
26
27 delay (1000 );
28 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // I2C wiring for Arduino Mega: D20=SDA, D21=SCL. VCC->3. 3V or 5V per module label, GND->GND.
6 #include <Wire.h>
7 #include <Adafruit_Sensor.h>
8 #include <Adafruit_BME280.h>
9
10 Adafruit_BME280 bme; // uses I2C, default address 0x76 (some modules use 0x77)
11
12 void setup () {
13 Serial.begin (115200 );
14 Wire.begin();
15 if (!bme.begin(0x76)) {
16 Serial.println ("BME280 not found - try address 0x77, or check wiring!");
17 while (1 ) delay (10 );
18 }
19 }
20
21 void loop () {
22 Serial.print ("Temp: "); Serial.print (bme.readTemperature()); Serial.print (" C ");
23 Serial.print ("Pressure: "); Serial.print (bme.readPressure() / 100.0F ); Serial.print (" hPa ");
24 Serial.print ("Humidity: "); Serial.print (bme.readHumidity()); Serial.print (" % ");
25 Serial.print ("Altitude: "); Serial.print (bme.readAltitude(1013.25 )); Serial.println (" m");
26
27 delay (1000 );
28 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // I2C wiring for ESP32: GPIO21=SDA, GPIO22=SCL. VCC->3. 3V or 5V per module label, GND->GND.
6 #include <Wire.h>
7 #include <Adafruit_Sensor.h>
8 #include <Adafruit_BME280.h>
9
10 Adafruit_BME280 bme; // uses I2C, default address 0x76 (some modules use 0x77)
11
12 void setup () {
13 Serial.begin (115200 );
14 Wire.begin();
15 if (!bme.begin(0x76)) {
16 Serial.println ("BME280 not found - try address 0x77, or check wiring!");
17 while (1 ) delay (10 );
18 }
19 }
20
21 void loop () {
22 Serial.print ("Temp: "); Serial.print (bme.readTemperature()); Serial.print (" C ");
23 Serial.print ("Pressure: "); Serial.print (bme.readPressure() / 100.0F ); Serial.print (" hPa ");
24 Serial.print ("Humidity: "); Serial.print (bme.readHumidity()); Serial.print (" % ");
25 Serial.print ("Altitude: "); Serial.print (bme.readAltitude(1013.25 )); Serial.println (" m");
26
27 delay (1000 );
28 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // I2C wiring for ESP8266: D2(GPIO4)=SDA, D1(GPIO5)=SCL. VCC->3. 3V or 5V per module label, GND->GND.
6 #include <Wire.h>
7 #include <Adafruit_Sensor.h>
8 #include <Adafruit_BME280.h>
9
10 Adafruit_BME280 bme; // uses I2C, default address 0x76 (some modules use 0x77)
11
12 void setup () {
13 Serial.begin (115200 );
14 Wire.begin();
15 if (!bme.begin(0x76)) {
16 Serial.println ("BME280 not found - try address 0x77, or check wiring!");
17 while (1 ) delay (10 );
18 }
19 }
20
21 void loop () {
22 Serial.print ("Temp: "); Serial.print (bme.readTemperature()); Serial.print (" C ");
23 Serial.print ("Pressure: "); Serial.print (bme.readPressure() / 100.0F ); Serial.print (" hPa ");
24 Serial.print ("Humidity: "); Serial.print (bme.readHumidity()); Serial.print (" % ");
25 Serial.print ("Altitude: "); Serial.print (bme.readAltitude(1013.25 )); Serial.println (" m");
26
27 delay (1000 );
28 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // I2C wiring for STM32: PB7=SDA, PB6=SCL (Blue Pill / F103C8). VCC->3. 3V or 5V per module label, GND->GND.
6 #include <Wire.h>
7 #include <Adafruit_Sensor.h>
8 #include <Adafruit_BME280.h>
9
10 Adafruit_BME280 bme; // uses I2C, default address 0x76 (some modules use 0x77)
11
12 void setup () {
13 Serial.begin (115200 );
14 Wire.begin();
15 if (!bme.begin(0x76)) {
16 Serial.println ("BME280 not found - try address 0x77, or check wiring!");
17 while (1 ) delay (10 );
18 }
19 }
20
21 void loop () {
22 Serial.print ("Temp: "); Serial.print (bme.readTemperature()); Serial.print (" C ");
23 Serial.print ("Pressure: "); Serial.print (bme.readPressure() / 100.0F ); Serial.print (" hPa ");
24 Serial.print ("Humidity: "); Serial.print (bme.readHumidity()); Serial.print (" % ");
25 Serial.print ("Altitude: "); Serial.print (bme.readAltitude(1013.25 )); Serial.println (" m");
26
27 delay (1000 );
28 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // I2C wiring for Raspberry Pi Pico: GPIO4=SDA, GPIO5=SCL. VCC->3. 3V or 5V per module label, GND->GND.
6 #include <Wire.h>
7 #include <Adafruit_Sensor.h>
8 #include <Adafruit_BME280.h>
9
10 Adafruit_BME280 bme; // uses I2C, default address 0x76 (some modules use 0x77)
11
12 void setup () {
13 Serial.begin (115200 );
14 Wire.begin();
15 if (!bme.begin(0x76)) {
16 Serial.println ("BME280 not found - try address 0x77, or check wiring!");
17 while (1 ) delay (10 );
18 }
19 }
20
21 void loop () {
22 Serial.print ("Temp: "); Serial.print (bme.readTemperature()); Serial.print (" C ");
23 Serial.print ("Pressure: "); Serial.print (bme.readPressure() / 100.0F ); Serial.print (" hPa ");
24 Serial.print ("Humidity: "); Serial.print (bme.readHumidity()); Serial.print (" % ");
25 Serial.print ("Altitude: "); Serial.print (bme.readAltitude(1013.25 )); Serial.println (" m");
26
27 delay (1000 );
28 }
Project Notes: I2C pressure + temperature + humidity + altitude sensor.