Adafruit BME680 Library
Adafruit_BME680.h
1 /***************************************************************************
2  This is a library for the BME680 humidity, temperature & pressure sensor
3 
4  Designed specifically to work with the Adafruit BME680 Breakout
5  ----> http://www.adafruit.com/products/XXXX
6 
7  These sensors use I2C or SPI to communicate, 2 or 4 pins are required
8  to interface.
9 
10  Adafruit invests time and resources providing this open source code,
11  please support Adafruit andopen-source hardware by purchasing products
12  from Adafruit!
13 
14  Written by Limor Fried & Kevin Townsend for Adafruit Industries.
15  BSD license, all text above must be included in any redistribution
16  ***************************************************************************/
17 #ifndef __BME680_H__
18 #define __BME680_H__
19 
20 #if (ARDUINO >= 100)
21  #include "Arduino.h"
22 #else
23  #include "WProgram.h"
24 #endif
25 #include <Wire.h>
26 #include <SPI.h>
27 #include <Adafruit_Sensor.h>
28 #include <Wire.h>
29 #include "bme680.h"
30 
31 
32 /*=========================================================================
33  I2C ADDRESS/BITS
34  -----------------------------------------------------------------------*/
35 #define BME680_DEFAULT_ADDRESS (0x77)
36 /*=========================================================================*/
37 #define BME680_DEFAULT_SPIFREQ (1000000)
38 
39 
40 
41 /*
42 class Adafruit_BME680_Unified : public Adafruit_Sensor
43 {
44 public:
45  Adafruit_BME680_Unified(int32_t sensorID = -1);
46 
47  bool begin(uint8_t addr = BME680_ADDRESS);
48  void getTemperature(float *temp);
49  void getPressure(float *pressure);
50  float pressureToAltitude(float seaLevel, float atmospheric, float temp);
51  float seaLevelForAltitude(float altitude, float atmospheric, float temp);
52  void getEvent(sensors_event_t*);
53  void getSensor(sensor_t*);
54 
55  private:
56  uint8_t _i2c_addr;
57  int32_t _sensorID;
58 };
59 
60 */
61 
67 {
68  public:
69  Adafruit_BME680(int8_t cspin = -1);
70  Adafruit_BME680(int8_t cspin, int8_t mosipin, int8_t misopin, int8_t sckpin);
71 
72  bool begin(uint8_t addr = BME680_DEFAULT_ADDRESS);
73  float readTemperature(void);
74  float readPressure(void);
75  float readHumidity(void);
76  uint32_t readGas(void);
77  float readAltitude(float seaLevel);
78 
79  bool setTemperatureOversampling(uint8_t os);
80  bool setPressureOversampling(uint8_t os);
81  bool setHumidityOversampling(uint8_t os);
82  bool setIIRFilterSize(uint8_t fs);
83  bool setGasHeater(uint16_t heaterTemp, uint16_t heaterTime);
84 
85  bool performReading(void);
86 
88  float temperature;
90  float pressure;
92  float humidity;
95  private:
96 
97  bool _filterEnabled, _tempEnabled, _humEnabled, _presEnabled, _gasEnabled;
98  uint8_t _i2caddr;
99  int32_t _sensorID;
100  int8_t _cs;
101 
102  uint8_t spixfer(uint8_t x);
103 
104  struct bme680_dev gas_sensor;
105 };
106 
107 #endif
bool setIIRFilterSize(uint8_t fs)
Setter for IIR filter.
Definition: Adafruit_BME680.cpp:434
bool setTemperatureOversampling(uint8_t os)
Setter for Temperature oversampling.
Definition: Adafruit_BME680.cpp:368
bool setGasHeater(uint16_t heaterTemp, uint16_t heaterTime)
Enable and configure gas reading + heater.
Definition: Adafruit_BME680.cpp:343
uint32_t readGas(void)
Calculates the resistance of the MOX gas sensor.
Definition: Adafruit_BME680.cpp:213
Definition: Adafruit_BME680.h:66
float readAltitude(float seaLevel)
Calculates the altitude (in meters).
Definition: Adafruit_BME680.cpp:230
float gas_resistance
Gas resistor (ohms) assigned after calling performReading()
Definition: Adafruit_BME680.h:94
float pressure
Pressure (Pascals) assigned after calling performReading()
Definition: Adafruit_BME680.h:90
float readPressure(void)
Performs a reading and returns the barometric pressure.
Definition: Adafruit_BME680.cpp:190
float readTemperature(void)
Performs a reading and returns the ambient temperature.
Definition: Adafruit_BME680.cpp:178
bool setHumidityOversampling(uint8_t os)
Setter for Humidity oversampling.
Definition: Adafruit_BME680.cpp:391
bool performReading(void)
Performs a full reading of all 4 sensors in the BME680.
Definition: Adafruit_BME680.cpp:253
bool begin(uint8_t addr=BME680_DEFAULT_ADDRESS)
Initializes the sensor.
Definition: Adafruit_BME680.cpp:84
float humidity
Humidity (RH %) assigned after calling performReading()
Definition: Adafruit_BME680.h:92
Adafruit_BME680(int8_t cspin=-1)
Instantiates sensor with Hardware SPI or I2C.
Definition: Adafruit_BME680.cpp:43
float temperature
Temperature (Celsius) assigned after calling performReading()
Definition: Adafruit_BME680.h:88
bool setPressureOversampling(uint8_t os)
Setter for Pressure oversampling.
Definition: Adafruit_BME680.cpp:413
float readHumidity(void)
Performs a reading and returns the relative humidity.
Definition: Adafruit_BME680.cpp:202