Skip to main content

BME688 Environmental Sensor 4-in-1

The BME688 Environmental Sensor 4-in-1 is a versatile sensor module that combines temperature, humidity, pressure, and gas sensing capabilities in a single compact package. It utilizes the BME688 sensor from Bosch, which is known for its high accuracy and low power consumption. This module is ideal for applications in environmental monitoring, IoT devices, and .

Key Sensor Features

Enhance your application with the sensor's robust capabilities:

FeatureDescription
Relative HumidityAccurately measures ambient moisture for precise environmental monitoring.
Barometric PressureDetects atmospheric pressure changes to support dynamic weather tracking.
Excellent Temperature StabilityDelivers consistent temperature readings even under varying conditions.
Gas SensingMonitors a range of gases to help identify potential environmental hazards.

Overview

FeatureDescription
SensorBME688 Environmental Sensor
Communication ProtocolI2C and SPI
Power Supply1.71V to 3.6V

Use Cases

  • Environmental Monitoring: Ideal for tracking air quality, humidity, temperature, and pressure in smart homes and industrial applications.
  • IoT Devices: Can be integrated into IoT systems for real-time environmental data collection and analysis.
  • Weather Stations: Useful in DIY weather stations for accurate weather forecasting and monitoring.
  • Smart Agriculture: Helps in monitoring soil and air conditions to optimize crop growth and yield.
  • Wearable Devices: Can be used in health and fitness wearables to monitor

Example Code

```c
#include <Arduino.h>
#include "bme68xLibrary.h"
#include <Wire.h>

#define SDA_PIN 21
#define SCL_PIN 22

Bme68x bme;

void setup() {
Serial.begin(115200);
while (!Serial) delay(10);

Wire.begin(SDA_PIN, SCL_PIN);
Wire.setClock(100000);

bme.begin(0x77, Wire);

if (bme.checkStatus() == BME68X_ERROR) {
Serial.println("Error: BME688 not detected.");
while (1);
}

Serial.println("Sensor BME688 initialized successfully.");

bme.setTPH();
bme.setHeaterProf(300, 100);

Serial.println("Time(ms), Temp(°C), Pressure(Pa), Humidity(%), Gas(Ω), Status");
}

void loop() {
bme68xData data;

bme.setOpMode(BME68X_FORCED_MODE);
delayMicroseconds(bme.getMeasDur());

if (bme.fetchData()) {
bme.getData(data);

Serial.print(millis()); Serial.print(", ");
Serial.print(data.temperature); Serial.print(", ");
Serial.print(data.pressure); Serial.print(", ");
Serial.print(data.humidity); Serial.print(", ");
Serial.print(data.gas_resistance); Serial.print(", ");
Serial.println(data.status, HEX);
}

delay(100);
}
Template created by UNIT Electronics