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 
63 {
64  public:
65  Adafruit_BME680(int8_t cspin = -1);
66  Adafruit_BME680(int8_t cspin, int8_t mosipin, int8_t misopin, int8_t sckpin);
67 
68  bool begin(uint8_t addr = BME680_DEFAULT_ADDRESS);
69  float readTemperature(void);
70  float readPressure(void);
71  float readHumidity(void);
72  uint32_t readGas(void);
73  float readAltitude(float seaLevel);
74 
75  bool setTemperatureOversampling(uint8_t os);
76  bool setPressureOversampling(uint8_t os);
77  bool setHumidityOversampling(uint8_t os);
78  bool setIIRFilterSize(uint8_t fs);
79  bool setGasHeater(uint16_t heaterTemp, uint16_t heaterTime);
80 
81  bool performReading(void);
82 
83  float temperature, pressure, humidity, gas_resistance;
84  private:
85 
86  bool _filterEnabled, _tempEnabled, _humEnabled, _presEnabled, _gasEnabled;
87  uint8_t _i2caddr;
88  int32_t _sensorID;
89  int8_t _cs;
90 
91  uint8_t spixfer(uint8_t x);
92 
93  struct bme680_dev gas_sensor;
94 };
95 
96 #endif
bool setIIRFilterSize(uint8_t fs)
Setter for IIR filter.
Definition: Adafruit_BME680.cpp:342
bool setTemperatureOversampling(uint8_t os)
Setters for Temp, Humidity, Pressure oversampling.
Definition: Adafruit_BME680.cpp:298
bool setGasHeater(uint16_t heaterTemp, uint16_t heaterTime)
Enable and configure gas reading + heater.
Definition: Adafruit_BME680.cpp:276
Definition: Adafruit_BME680.h:62
float readAltitude(float seaLevel)
Definition: Adafruit_BME680.cpp:175
Sensor driver for BME680 sensor.
BME680 device structure.
Definition: bme680_defs.h:494