Bosch BME680, manufactured by Bosch Sensortec, it's 4-in-1 sensor with gas, humidity, pressure and temperature measurement based on proven sensing principles and having very low power consumption. Main measurement characteristics:
- ambient range for operation -40 ~ +85C, 0%-100% r.H., 300-1100hPa
- resolution of gas sensor resistance measurement 0.05-0.11%
- bVOC tolerance/certified accuracy 10-20% / 2-5%
- humidity accuracy +-3%
- absolute temperature (0-65C) accuracy +-1C
- absolute/relative pressure accuracy +-0.6hPa/+-0.12hPa
More info on: BME680 datasheet.
In June 2019 we've released 6 new environmental and air quality sensors, including BME680 I2C sensor breakout, all being part of the s-Sense I2C sensor breakout family.
PN: SS-BME680#I2C SKU: ITBP-6003 BME680 I2C sensor breakout info
Next, let's kickstart using BME680 sensor I2C breakout - around 10-15 minutes.Arduino BME680 sensor hardware integration (basic wiring)
First, identify if your Arduino it's 5V or 3.3V compliant! The BME680 I2C sensor breakout it's shipped in default auto 3.3-5V compliant configuration. Just wire following bellow directives:
HINT, for some ARDUINO boards:
- SDA (Serial Data) --> A4 on Uno/Pro-Mini, 20 on Mega2560/Due, 2 Leonardo/Pro-Micro
- SCK (Serial Clock) --> A5 on Uno/Pro-Mini, 21 on Mega2560/Due, 3 Leonardo/Pro-Micro
Bellow, sensor wiring examples, left to right, with Arduino UNO and xyz-mIoT
- a. download BME680 Arduino library from: here.
- b. unzip the library and install in Arduino libraries folder. Restart Arduino.
- c. Make a folder named "ssense_BME680_example". Download and save the code bellow (right click & save as) - use ssense_BME680_example.ino as name: BME680 - read sensor data Arduino code or, use the ssense_BME680_example from Arduino "File-> Examples", under "ssense-BME680" library.
- d. Compile and upload the code to your Arduino shield. The sensor data may be seen on Arduino Serial Monitor (set to 19200bps).
Advanced sensor data interpretation - altitude calculation. We've included 3 variants:
- very basic algorithm - float altitude(const float seaLevel=1013.25),
- NOAA based algorithm (function ported from BME280/BMP280 Arduino library) - float calculate_altitude( float pressure, bool metric = true, float seaLevelPressure = 101325),
- CASIO altitude calculation implementation - most accurate altitude calculation based on temperature compensated algorithm... - float temperatureCompensatedAltitude(int32_t pressure, float temp=21.0 /*Celsius*/, float seaLevel=1013.25)
TUTORIAL PROVIDED WITHOUT ANY WARRANTY!!!USE IT AT YOUR OWN RISK!!!