Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use bme688 unit: Examples, Pinouts, and Specs

Image of bme688 unit
Cirkit Designer LogoDesign with bme688 unit in Cirkit Designer

Introduction

The BME688 by Unit Electronics is a highly versatile environmental sensor designed to measure temperature, humidity, pressure, and gas concentrations, including volatile organic compounds (VOCs). This compact and powerful sensor is ideal for applications requiring precise environmental monitoring and air quality analysis.

Explore Projects Built with bme688 unit

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
ESP32-Based Environmental Monitoring System with Solar Charging
Image of IoT Ola (Final): A project utilizing bme688 unit in a practical application
This circuit features an ESP32 microcontroller interfaced with a BME/BMP280 sensor for environmental monitoring and an MH-Z19B sensor for CO2 measurement, both communicating via I2C (SCL, SDA) and serial (TX, RX) connections respectively. It includes a SIM800L module for GSM communication, connected to the ESP32 via serial (TXD, RXD). Power management is handled by two TP4056 modules for charging 18650 Li-ion batteries via solar panels, with a step-up boost converter to provide consistent voltage to the MH-Z19B, and voltage regulation for the SIM800L. Decoupling capacitors are used to stabilize the power supply to the BME/BMP280 and ESP32.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Smart Weather Station with BME280, BH1750, and OLED Display
Image of Smart Station: A project utilizing bme688 unit in a practical application
This circuit is a smart weather station that uses an ESP32 microcontroller to interface with a BME280 sensor for measuring temperature, humidity, and pressure, a BH1750 sensor for measuring light intensity, and a 0.96" OLED display to show the sensor readings. Additional components include a wind vane and a soil moisture module for environmental monitoring, all powered by a 18650 Li-ion battery managed by a TP4056 charging module.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO R4 WiFi-Based Health Monitoring System with OLED Display
Image of SMD: A project utilizing bme688 unit in a practical application
This circuit is designed for a health monitoring device that measures temperature, heart rate, and galvanic skin response (GSR). It uses an Arduino UNO R4 WiFi as the central microcontroller, interfacing with a BME/BMP280 sensor for temperature, a MAX30100 sensor for heart rate and oxygen saturation, and a GSR sensor for skin conductivity. The circuit includes a 0.96" OLED display for output, a TP4056 module for battery charging, a toggle switch for power control, and a polymer lithium-ion battery for power supply.
Cirkit Designer LogoOpen Project in Cirkit Designer
Solar-Powered Environmental Monitoring System with ESP32 and Cellular Connectivity
Image of IoT Ola: A project utilizing bme688 unit in a practical application
This circuit features an ESP32 microcontroller interfaced with a BME/BMP280 sensor for environmental data and an MH-Z19B sensor for CO2 measurement, both communicating via I2C (SCL, SDA) and serial (TX, RX) connections respectively. It includes a TP4056 module for charging an 18650 Li-ion battery from a solar panel, with a step-up boost converter to provide stable voltage to the MH-Z19B sensor and a voltage regulator for the SIM800L GSM module. The capacitors are likely used for power supply filtering or decoupling.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with bme688 unit

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of IoT Ola (Final): A project utilizing bme688 unit in a practical application
ESP32-Based Environmental Monitoring System with Solar Charging
This circuit features an ESP32 microcontroller interfaced with a BME/BMP280 sensor for environmental monitoring and an MH-Z19B sensor for CO2 measurement, both communicating via I2C (SCL, SDA) and serial (TX, RX) connections respectively. It includes a SIM800L module for GSM communication, connected to the ESP32 via serial (TXD, RXD). Power management is handled by two TP4056 modules for charging 18650 Li-ion batteries via solar panels, with a step-up boost converter to provide consistent voltage to the MH-Z19B, and voltage regulation for the SIM800L. Decoupling capacitors are used to stabilize the power supply to the BME/BMP280 and ESP32.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Smart Station: A project utilizing bme688 unit in a practical application
ESP32-Based Smart Weather Station with BME280, BH1750, and OLED Display
This circuit is a smart weather station that uses an ESP32 microcontroller to interface with a BME280 sensor for measuring temperature, humidity, and pressure, a BH1750 sensor for measuring light intensity, and a 0.96" OLED display to show the sensor readings. Additional components include a wind vane and a soil moisture module for environmental monitoring, all powered by a 18650 Li-ion battery managed by a TP4056 charging module.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of SMD: A project utilizing bme688 unit in a practical application
Arduino UNO R4 WiFi-Based Health Monitoring System with OLED Display
This circuit is designed for a health monitoring device that measures temperature, heart rate, and galvanic skin response (GSR). It uses an Arduino UNO R4 WiFi as the central microcontroller, interfacing with a BME/BMP280 sensor for temperature, a MAX30100 sensor for heart rate and oxygen saturation, and a GSR sensor for skin conductivity. The circuit includes a 0.96" OLED display for output, a TP4056 module for battery charging, a toggle switch for power control, and a polymer lithium-ion battery for power supply.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of IoT Ola: A project utilizing bme688 unit in a practical application
Solar-Powered Environmental Monitoring System with ESP32 and Cellular Connectivity
This circuit features an ESP32 microcontroller interfaced with a BME/BMP280 sensor for environmental data and an MH-Z19B sensor for CO2 measurement, both communicating via I2C (SCL, SDA) and serial (TX, RX) connections respectively. It includes a TP4056 module for charging an 18650 Li-ion battery from a solar panel, with a step-up boost converter to provide stable voltage to the MH-Z19B sensor and a voltage regulator for the SIM800L GSM module. The capacitors are likely used for power supply filtering or decoupling.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Air Quality Monitoring: Detect and analyze VOC levels in indoor and outdoor environments.
  • Smart Home Devices: Integrate into smart thermostats, air purifiers, and weather stations.
  • IoT Projects: Use in Internet of Things (IoT) systems for environmental sensing.
  • Industrial Applications: Monitor environmental conditions in factories, warehouses, and laboratories.
  • Wearable Devices: Incorporate into portable devices for personal air quality tracking.

Technical Specifications

The following table outlines the key technical specifications of the BME688 sensor:

Parameter Value
Manufacturer Unit Electronics
Part ID BME688
Supply Voltage 1.71V to 3.6V
Operating Current 2.1 µA (sleep mode), 0.9 mA (typical in operation)
Temperature Range -40°C to +85°C
Humidity Range 0% to 100% RH (non-condensing)
Pressure Range 300 hPa to 1100 hPa
Gas Sensing VOC detection with configurable sensitivity
Communication I²C and SPI interfaces
Dimensions 3.0 mm x 3.0 mm x 0.93 mm

Pin Configuration

The BME688 sensor has a total of 8 pins. The table below describes each pin:

Pin Number Pin Name Description
1 VDD Power supply input (1.71V to 3.6V)
2 GND Ground
3 SCL I²C clock line / SPI serial clock
4 SDA I²C data line / SPI serial data input
5 CS Chip select for SPI (active low)
6 SDI SPI serial data input (alternative to SDA)
7 SDO SPI serial data output
8 INT Interrupt output (optional, configurable)

Usage Instructions

How to Use the BME688 in a Circuit

  1. Power Supply: Connect the VDD pin to a regulated power source (1.71V to 3.6V) and the GND pin to ground.
  2. Communication Interface: Choose between I²C or SPI for communication:
    • For I²C, connect the SCL and SDA pins to the corresponding I²C lines on your microcontroller.
    • For SPI, connect the CS, SCL, SDI, and SDO pins to the respective SPI lines.
  3. Pull-Up Resistors: If using I²C, ensure pull-up resistors (typically 4.7 kΩ) are connected to the SCL and SDA lines.
  4. Interrupt Pin: Optionally, connect the INT pin to a GPIO pin on your microcontroller for event-based notifications.
  5. Software Configuration: Use a compatible library (e.g., Bosch BME688 library) to initialize and configure the sensor.

Important Considerations

  • Power Stability: Ensure a stable power supply to avoid measurement inaccuracies.
  • Placement: Place the sensor in an area with good airflow for accurate gas and environmental readings.
  • Calibration: Perform gas sensor calibration for optimal VOC detection in your specific environment.
  • I²C Address: The default I²C address is 0x76. If multiple sensors are used, configure the address accordingly.

Example Code for Arduino UNO

Below is an example of how to use the BME688 with an Arduino UNO via I²C:

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME680.h>

// Create an instance of the BME680 sensor
Adafruit_BME680 bme;

// Setup function to initialize the sensor
void setup() {
  Serial.begin(9600);
  while (!Serial); // Wait for serial connection

  // Initialize the BME680 sensor
  if (!bme.begin(0x76)) {
    Serial.println("Could not find a valid BME688 sensor, check wiring!");
    while (1);
  }

  // Configure sensor settings
  bme.setTemperatureOversampling(BME680_OS_8X);
  bme.setHumidityOversampling(BME680_OS_2X);
  bme.setPressureOversampling(BME680_OS_4X);
  bme.setIIRFilterSize(BME680_FILTER_SIZE_3);
  bme.setGasHeater(320, 150); // 320°C for 150 ms
}

// Loop function to read and display sensor data
void loop() {
  if (!bme.performReading()) {
    Serial.println("Failed to perform reading!");
    return;
  }

  // Print sensor readings to the Serial Monitor
  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 = ");
  Serial.print(bme.gas_resistance / 1000.0);
  Serial.println(" kOhms");

  delay(2000); // Wait 2 seconds before the next reading
}

Troubleshooting and FAQs

Common Issues

  1. Sensor Not Detected:

    • Ensure the wiring is correct and matches the chosen communication protocol (I²C or SPI).
    • Verify the I²C address (0x76 by default) or SPI configuration.
    • Check for loose connections or damaged cables.
  2. Inaccurate Readings:

    • Ensure the sensor is placed in an area with good airflow and away from heat sources.
    • Verify that the power supply is stable and within the specified range.
    • Perform calibration for gas sensing in your specific environment.
  3. Communication Errors:

    • For I²C, ensure pull-up resistors are connected to the SCL and SDA lines.
    • For SPI, verify the correct configuration of CS, SCL, SDI, and SDO pins.

FAQs

Q: Can the BME688 detect specific gases?
A: The BME688 is optimized for detecting VOCs but does not identify specific gases. It provides a general air quality index based on VOC levels.

Q: What is the typical response time for measurements?
A: The response time varies depending on the parameter being measured. For gas sensing, it typically takes a few seconds to stabilize.

Q: Can I use the BME688 with a 5V microcontroller?
A: Yes, but you must use a level shifter to step down the logic levels to 3.3V, as the BME688 operates at 1.71V to 3.6V.

Q: How do I calibrate the gas sensor?
A: Calibration involves exposing the sensor to known air quality conditions and adjusting the sensitivity settings in software. Refer to the Bosch BME688 datasheet for detailed calibration procedures.