5.11.0 20180107 * Minor webpage HTML optimizations (#1358) * Updated German translation (#1438) * Change Sonoff Pow Energy MQTT data message and consolidate Status 8 into Status 10 * Change ADS1115 default voltage range from +/-2V to +/-6V (#1289) * Change text to Active for 3 minutes (#1364) * Change Wemo SetBinaryState to distinguish from GetBinaryState (#1357) * Change output of HTTP command to valid JSON and Array only (#1363) * Removed all MQTT, JSON and Command language defines from locale files and set fixed to English (#1473) * Renamed commands Color2,3,4 to Color3,4,5 * Fix BME280 calculation (#1051) * Fix Sonoff Bridge missed learned key if learned data contains 0x55 (End of Transmission) flag (#1095, #1294) * Fix PWM initialization in Dimmer/Color mode (#1321) * Fix Wemo Emulation (#1357) * Fix display of build date and time in non-english locale (#1465) * Fix Wemo and Hue emulation by adding M-Search response delay (#1486) * Add libraries Adafruit_BME680-1.0.5, Adafruit_Sensor-1.0.2.02, TasmotaSerial-1.0.0 and TSL2561-Arduino-Library * Add command Color2 to set color while keeping same dimmer value * Add device function pointers * Add support for SenseAir S8 CO2 sensor * Add color led signal to Carbon Dioxide (CO2) sensors using defines CO2_LOW and CO2_HIGH in user_config.h * Add support for Domoticz Air Quality sensor to be used by MH-Z19(B) and SenseAir sensors * Add support for PZEM004T energy sensor * Add support for iTead SI7021 temperature and humidity sensor by consolidating DHT22 into AM2301 and using former DHT22 as SI7021 (#735) * Add support for BME680 using adafruit libraries (#1212) * Add support for MH-Z19(B) CO2 sensor (#561, #1248) * Add multipress support and more user configurable GPIO to Sonoff Dual R2 (#1291) * Add support for TSL2561 using adafruit library (#661, #1311) * Add support for SHT3x (#1314) * Add support for Arilux LC06 (#1414) * Add Italian language file (#1449) * Add 2nd Gen Alexa support to Wemo emulation discovery (#1357, #1450) * Add define for additional number of WS2812 schemes (#1463)
108 lines
3.1 KiB
C++
108 lines
3.1 KiB
C++
/***************************************************************************
|
|
This is a library for the BME680 humidity, temperature & pressure sensor
|
|
|
|
Designed specifically to work with the Adafruit BME680 Breakout
|
|
----> http://www.adafruit.com/products/XXXX
|
|
|
|
These sensors use I2C or SPI to communicate, 2 or 4 pins are required
|
|
to interface.
|
|
|
|
Adafruit invests time and resources providing this open source code,
|
|
please support Adafruit andopen-source hardware by purchasing products
|
|
from Adafruit!
|
|
|
|
Written by Limor Fried & Kevin Townsend for Adafruit Industries.
|
|
BSD license, all text above must be included in any redistribution
|
|
***************************************************************************/
|
|
#ifndef __BME680_H__
|
|
#define __BME680_H__
|
|
|
|
#if (ARDUINO >= 100)
|
|
#include "Arduino.h"
|
|
#else
|
|
#include "WProgram.h"
|
|
#endif
|
|
#include <Wire.h>
|
|
#include <SPI.h>
|
|
#include <Adafruit_Sensor.h>
|
|
#include <Wire.h>
|
|
#include "bme680.h"
|
|
|
|
|
|
/*=========================================================================
|
|
I2C ADDRESS/BITS
|
|
-----------------------------------------------------------------------*/
|
|
#define BME680_DEFAULT_ADDRESS (0x77)
|
|
/*=========================================================================*/
|
|
#define BME680_DEFAULT_SPIFREQ (1000000)
|
|
|
|
|
|
|
|
/*
|
|
class Adafruit_BME680_Unified : public Adafruit_Sensor
|
|
{
|
|
public:
|
|
Adafruit_BME680_Unified(int32_t sensorID = -1);
|
|
|
|
bool begin(uint8_t addr = BME680_ADDRESS);
|
|
void getTemperature(float *temp);
|
|
void getPressure(float *pressure);
|
|
float pressureToAltitude(float seaLevel, float atmospheric, float temp);
|
|
float seaLevelForAltitude(float altitude, float atmospheric, float temp);
|
|
void getEvent(sensors_event_t*);
|
|
void getSensor(sensor_t*);
|
|
|
|
private:
|
|
uint8_t _i2c_addr;
|
|
int32_t _sensorID;
|
|
};
|
|
|
|
*/
|
|
|
|
/** Adafruit_BME680 Class for both I2C and SPI usage.
|
|
* Wraps the Bosch library for Arduino usage
|
|
*/
|
|
|
|
class Adafruit_BME680
|
|
{
|
|
public:
|
|
Adafruit_BME680(int8_t cspin = -1);
|
|
Adafruit_BME680(int8_t cspin, int8_t mosipin, int8_t misopin, int8_t sckpin);
|
|
|
|
bool begin(uint8_t addr = BME680_DEFAULT_ADDRESS);
|
|
float readTemperature(void);
|
|
float readPressure(void);
|
|
float readHumidity(void);
|
|
uint32_t readGas(void);
|
|
float readAltitude(float seaLevel);
|
|
|
|
bool setTemperatureOversampling(uint8_t os);
|
|
bool setPressureOversampling(uint8_t os);
|
|
bool setHumidityOversampling(uint8_t os);
|
|
bool setIIRFilterSize(uint8_t fs);
|
|
bool setGasHeater(uint16_t heaterTemp, uint16_t heaterTime);
|
|
|
|
bool performReading(void);
|
|
|
|
/// Temperature (Celsius) assigned after calling performReading()
|
|
float temperature;
|
|
/// Pressure (Pascals) assigned after calling performReading()
|
|
float pressure;
|
|
/// Humidity (RH %) assigned after calling performReading()
|
|
float humidity;
|
|
/// Gas resistor (ohms) assigned after calling performReading()
|
|
float gas_resistance;
|
|
private:
|
|
|
|
bool _filterEnabled, _tempEnabled, _humEnabled, _presEnabled, _gasEnabled;
|
|
uint8_t _i2caddr;
|
|
int32_t _sensorID;
|
|
int8_t _cs;
|
|
|
|
uint8_t spixfer(uint8_t x);
|
|
|
|
struct bme680_dev gas_sensor;
|
|
};
|
|
|
|
#endif
|