Skip to main content
Engineering LibreTexts

BME680 sensor setup using I2C

  • Page ID
    39755
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    BME680 is a digital sensor that measures temperature, gas, humidity, pressure, and altitude.  It uses the I2C interface on the RPi.

    https://learn.adafruit.com/adafruit-bme680-humidity-temperature-barometic-pressure-voc-gas/pinouts

     

    First enable I2C.

     

    learn_raspberry_pi_interfacing.png

    rc_cmd_interfacing_i2c.png

     

    clipboard_e2739b63e8034d8079d59ae793a0a7507.png

     

    https://learn.adafruit.com/adafruit-bme680-humidity-temperature-barometic-pressure-voc-gas/python-circuitpython

    clipboard_e783f55f55af328a2b944d19dcde11a96.png

     

    The BME680 requires a burn-in period to collect accurate readings.

     

    clipboard_eef46942460ae08d5b6c2794bdae633af.png

    The burn-in information was found here;

    https://www.parallax.com/sites/default/files/downloads/28061-BME680-Sensor-Guide-v1.1.pdf

     

    The following graph represents the gas reading while the sensor is undergoing burn-in.  Data was collected for all sensors every 5 seconds for twenty minutes. 

    Only the raw gas values are shown here;

    clipboard_e724921e782ddfe706ceeee3308f9acb0.png

    The graph above represents the first burn-in data for the BME680 in a clean jar.

     

    Data for a second burn-in was also collected.

     

    clipboard_e6d29b822b6a90ca7ef5a0e18a17463bb.png

     

     

    clipboard_ee948639d5f251e90dc1a549d170227e2.png

     

     


    BME680 sensor setup using I2C is shared under a not declared license and was authored, remixed, and/or curated by LibreTexts.

    • Was this article helpful?