Skip to content

BME680 temperature, humidity, pressure and gas sensor~

This feature is included only in tasmota-sensors and tasmota32 binaries

When compiling your build add the following to user_config_override.h:

#ifndef USE_BME68X
#define USE_BME68X      // Enable support for BME680/BME688 sensor using Bosch BME68x library (+6k9 code)
#endif

BME680 sensor, an environmental I2C sensor with temperature, humidity, barometric pressure and gas.

The BME680 takes those sensors to the next step in that it contains a small MOX sensor. The heated metal oxide changes resistance based on the volatile organic compounds (VOC) in the air, so it can be used to detect gasses & alcohols such as Ethanol, Alcohol and Carbon Monoxide, and perform air quality measurements. Note it will give you one resistance value, with overall VOC content, but it cannot differentiate gasses or alcohols.

See BME680 - Temperature, Humidity, Pressure and Gas Sensor for more information.

Configuration~

Wiring~

BME680 ESP
GND GND
VCC 3.3V
SDA GPIOx
SCL GPIOy

Tasmota Settings~

In the Configuration -> Configure Module page assign:

  • GPIOx to I2C SDA
  • GPIOy to I2C SCL

After a reboot the driver will detect BME680 automatically and display temperature, humidity, dew point, pressure and gas resistance measured.

image

Sensor sends a tele/%topic%/SENSOR JSON response:

{
  "Time": "2021-09-22T17:00:00",
  "BME680": {
    "Temperature": 24.5,
    "Humidity": 33.0,
    "DewPoint": 7.1,
    "Pressure": 987.7,
    "Gas": 1086.43
  },
  "PressureUnit": "hPa",
  "TempUnit": "C"
}

Commands~

  • TempOffset can be used for calibrating the measured temperature. This setting affects all temperature sensors on the device.
  • TempRes sets temperature resolution.
  • SetOption8 sets temperature unit in Celsius or in Fahrenheit.
  • SetOption24 sets pressure unit in hPa or in mmHg.

Breakout Boards~

Buy from: - Adafruit - AliExpress