









BME680 Temperature Humidity Temperature Pressure Gas Sensor Module
$22.98 Inc. GST
You save
- Description
- Code Examples
- Additional information
- Reviews (0)
Description
Introducing the BME680 Temperature, Humidity, Pressure, and Gas Sensor Module
Experience the ultimate environmental sensing solution with the highly anticipated BME680 by Bosch, all conveniently packed into a compact module. This remarkable sensor combines temperature, humidity, barometric pressure, and VOC gas sensing capabilities, accessible over SPI or I2C interfaces, and all at an exceptional value.
Similar to its predecessors, the BME280 and BMP280, this precision-engineered sensor from Bosch offers impressive accuracy. It can precisely measure humidity with a margin of ±3%, barometric pressure with an absolute accuracy of ±1 hPa, and temperature with an impressive ±1.0°C accuracy. The precision of its pressure measurements also allows it to function as an altimeter with an accuracy of ±1 meter or better, leveraging altitude variations.
What sets the BME680 apart is its integration of a small MOX sensor. This specialized sensor detects changes in resistance based on the presence of volatile organic compounds (VOC) in the surrounding air. As a result, it can effectively identify gases and alcohols such as Ethanol, Alcohol, and Carbon Monoxide, facilitating air quality assessments. While it provides an overall VOC content reading, it’s important to note that it cannot differentiate between various gases or alcohols.
Keep in mind that, like all VOC/gas sensors, the BME680 exhibits variability, requiring calibration against known sources for precise measurements. However, for general environmental sensing purposes, it provides valuable insights into trends and comparisons. We recommend an initial “burn-in” period of 48 hours upon receiving the sensor, followed by 30-minute sessions in the desired mode each time the sensor is employed. This initial usage is crucial as the sensor’s sensitivity levels evolve and the MOX gradually warms up to its baseline reading over time.
For your convenience, we’ve expertly placed the sensor on a PCB equipped with a 3.3V regulator and level shifting capabilities. This design ensures seamless compatibility with your preferred 3.3V or 5V microcontroller, streamlining integration into your projects.
Technical Specifications:
- Product Dimensions: 16.0mm x 11.0mm x 2.8mm / 0.6″ x 0.4″ x 0.1″
- Product Weight: 3.0g / 0.1oz
Elevate your environmental sensing endeavors with the BME680 Sensor Module – a comprehensive solution for accurate temperature, humidity, pressure, and gas measurements, backed by Bosch’s trusted quality and performance.
📌 Code Examples & Usage – BME680 Environmental Sensor Module
📋 Overview
The BME680 is an advanced 4-in-1 environmental sensor that measures:
-
🌡 Temperature
-
💧 Humidity
-
🌬 Barometric pressure
-
🧪 Gas resistance (VOC indicator)
It communicates via I²C and is ideal for:
-
Indoor air quality projects
-
Weather stations
-
Smart home monitoring
-
Environmental data logging
-
IoT dashboards (ESP32 / ESP8266)
📌 The gas sensor measures resistance, not a direct “air quality score” unless processed further.
⚙ Key Features
-
Sensor IC: Bosch BME680
-
Interface: I²C
-
Supply voltage: 3.3V
-
Logic level: 3.3V
-
High accuracy environmental measurements
-
Low power consumption
⚠ IMPORTANT – Read Before Use
🚨 3.3V device only
-
VCC: 3.3V
-
SDA/SCL: 3.3V I²C
-
Do NOT connect directly to 5V I²C
✔ ESP32 / ESP8266 → direct connection
✔ Arduino Uno → use level shifter or 3.3V I²C pull-ups
🔌 Pinout & Wiring
| BME680 Pin | Function |
|---|---|
| VCC | 3.3V |
| GND | Ground |
| SDA | I²C Data |
| SCL | I²C Clock |
🔌 Wiring – ESP32 (Recommended)
| Sensor | ESP32 |
|---|---|
| VCC | 3.3V |
| GND | GND |
| SDA | GPIO21 |
| SCL | GPIO22 |
🔌 Wiring – Arduino Uno (With Level Shifter)
| Sensor | Arduino Uno |
|---|---|
| VCC | 3.3V |
| GND | GND |
| SDA | A4 (via level shifter) |
| SCL | A5 (via level shifter) |
📦 Library Installation (Arduino IDE)
Install Adafruit BME680:
-
Arduino IDE → Sketch → Include Library → Manage Libraries
-
Search for BME680
-
Install Adafruit BME680 Library
-
Allow installation of dependencies when prompted
🧪 1️⃣ Basic Example – Read All Sensors
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME680.h>Adafruit_BME680 bme;
void setup() {
Serial.begin(115200);
if (!bme.begin()) {
Serial.println(“Could not find BME680 sensor!”);
while (1);
}
// Recommended settings
bme.setTemperatureOversampling(BME680_OS_8X);
bme.setHumidityOversampling(BME680_OS_2X);
bme.setPressureOversampling(BME680_OS_4X);
bme.setGasHeater(320, 150); // 320°C for 150 ms
}
void loop() {
if (!bme.performReading()) {
Serial.println(“Failed to perform reading”);
return;
}
Serial.print(“Temperature: “);
Serial.print(bme.temperature);
Serial.println(” °C”);
Serial.print(“Humidity: “);
Serial.print(bme.humidity);
Serial.println(” %”);
Serial.print(“Pressure: “);
Serial.print(bme.pressure / 100.0);
Serial.println(” hPa”);
Serial.print(“Gas Resistance: “);
Serial.print(bme.gas_resistance / 1000.0);
Serial.println(” KOhms”);
Serial.println();
delay(2000);
}
🧪 2️⃣ Altitude Calculation Example
float seaLevelPressure = 1013.25; // hPa
float altitude = bme.readAltitude(seaLevelPressure);
Serial.print(“Approx. Altitude: “);
Serial.print(altitude);
Serial.println(” m”);
📌 Accuracy improves if you use your local sea-level pressure.
🧪 3️⃣ Simple “Air Quality Trend” Indicator
float gas = bme.gas_resistance / 1000.0;
if (gas > 100) {
Serial.println(“Air quality: Good”);
} else if (gas > 50) {
Serial.println(“Air quality: Moderate”);
} else {
Serial.println(“Air quality: Poor”);
}
⚠ This is relative only, not a calibrated AQI.
🧠 About Gas Sensor & Air Quality
✔ The BME680 gas sensor detects VOC-related resistance changes
✔ Raw gas resistance is useful for trend analysis
✔ Absolute “air quality index” requires advanced algorithms
📌 For professional AQI estimation, Bosch provides the BSEC library (advanced users).
🔧 Common Issues & Fixes
| Issue | Cause | Fix |
|---|---|---|
| Sensor not found | Wrong voltage | Confirm 3.3V |
| Gas reads 0 | Heater disabled | Enable gas heater |
| Readings drift | Warm-up time | Allow 5–10 mins |
| Arduino damaged | 5V I²C | Use level shifter |
Additional information
| Weight | 30 g |
|---|---|
| Dimensions | 260 × 160 × 20 mm |
Only logged in customers who have purchased this product may leave a review.


































Reviews
There are no reviews yet.