https://learn.adafruit.com/adafruit-bme680-humidity-temperature-barometic-pressure-voc-gas/overviewhttps://www.bosch-sensortec.com/bst/products/all_products/bme680
BME680 SENSOR FEATURES
The BME680 is as combined digital gas, humidity, pressure, and temperature sensor based on proven sensing principles.
BME680
BME680 is an integrated environmental sensor developed specifically for mobile applications and wearables where size and low power consumption are key requirements. Expanding Bosch Sensortec’s existing family of environmental sensors, the BME680 integrates for the first time high-linearity and high-accuracy gas, pressure, humidity and temperature sensors. It consists of an 8-pin metal-lid 3.0 x 3.0 x 0.93 mm³ LGA package which is designed for optimized consumption depending on the specific operating mode, long term stability and high EMC robustness. The gas sensor within the BME680 can detect a broad range of gases to measure air quality for personal well being. Gases that can be detected by the BME680 include Volatile Organic Compounds (VOC) from paints (such as formaldehyde), lacquers, paint strippers, cleaning supplies, furnishings, office equipment, glues, adhesives and alcohol.
Applications
- Air quality measurement
- Personalized weather station
- Context awareness, e.g. skin moisture detection, room change detection
- Fitness monitoring / well-being
- Warning regarding dryness or high temperatures
- Measurement of volume and air flow
- Home automation control (e.g. HVAC)
- GPS enhancement (e.g. time-to-first-fix improvement, dead reckoning, slope detection)
- Indoor navigation (change of floor detection, elevator detection)
- Altitude tracking and calories expenditure for sports activities
Parameter |
Technical data |
Package dimensions |
8-Pin LGA with metal 3.0 x 3.0 x 0.93 mm³ |
Operation range (full accuracy) |
Pressure: 300...1100 hPa Humidity 0…100% Temperature: -40…85°C |
Supply voltage VDDIO Supply voltage VDD |
1.2 ... 3.6 V 1.71 ... 3.6 V |
Interface |
I²C and SPI |
Average current consumption (1Hz data refresh rate) |
2.1 µA at 1 Hz humidity and temperature 3.1 µA at 1 Hz pressure and temperature 3.7 µA at 1 Hz humidity, pressure and temperature 0.09‒12 mA for p/h/T/gas depending on operation mode |
Average current consumption in sleep mode |
0.15 μA |
Gas sensor Response time (τ 33-63%) Sensor-to-sensor deviation Power consumption Output data processing |
< 1 s (for new sensors) +/- 15% +/- 15 < 0.1 mA in ultra-low power mode direct output of IAQ: Index for Air Quality |
Humidity sensor Response time (τ0-63%) Accuracy tolerance Hysteresis |
8 s ± 3 % relative humidity ≤ 1.5 % relative humidity |
Pressure sensor RMS Noise Sensitivity Error Temperature coefficient offset |
0.12 Pa (equiv. to 1.7 cm) ± 0.25 % (equiv. to 1 m at 400 m height change) ±1.3 Pa/K (equiv. to ±10.9 cm at 1°C temperature change) |
GYMCU680 is a low-cost air detection module with a low operating voltage of 3-5v and a small size.The working principle is to read the BME680 sensor data through the MCU, and obtain the algorithm, temperature and humidity, atmospheric pressure, IAQ indoor air quality, and resistance value.This module has two ways to read data, namely serial port (TTL level) or chip itself IIC communication mode.The product has high precision and high stability. It is possible to directly output utility data and omit the algorithm.The baud rate of the serial port is 9600bps and 115200bps. There are two modes of continuous output and interrogation output, which can adapt to different working environments.Connect to all microcontrollers and computersWhen soldering the PS solder joint, the module is in the chip's own IIC mode, at which point the MCU does not participate in the operation and does not consume current. Can be used as a simple BME680 module.The IAQ indoor air quality algorithm is transplanted according to the routine of the BME680 chip official website. It takes a certain time to power on the test, and the data will be normal for about 5 minutes. Product ParametersTemperature measurement range: -40°~ 85°Humidity measurement range: 0% ~ 100%IAQ measurement range: 0?~500Air pressure measurement range: 300 ~ 1100hpaResponse frequency: default 3 seconds each timeWorking voltage: 3.3V-5V Average operating current: 5mAWorking temperature: -40°~ 85°Storage temperature: -40°~ 125°Using the chip: ME680+STM32 Product CharacteristicsSmall volumeHigh cost performanceSerial communication formatDirectly output visual data ApplicationsHandheld instrumentationIndoor air quality quality testingWeather forecast systemHome automation and controlInternet of Things, InternetOutdoor recreation and sports
*
//GY_MCU680 air quality sensor ARDUINO
#include SoftwareSerial mySerial(4, 5);
uint16_t temp1=0;
int16_t temp2=0;
unsigned char Re_buf[30],counter=0;
unsigned char sign=0;
int led = 13;
void setup()
{
Serial.begin(9600);
mySerial.begin(9600);
mySerial.listen();
delay(4000);
mySerial.write(0XA5);
mySerial.write(0X55);
mySerial.write(0X3F);
mySerial.write(0X39);
delay(100);
mySerial.write(0XA5);
mySerial.write(0X56);
mySerial.write(0X02);
mySerial.write(0XFD);
delay(100);
}
void loop(){
float Temperature ,Humidity;
unsigned char i=0,sum=0;
uint32_t Gas;
uint32_t Pressure;
uint16_t IAQ;
int16_t Altitude;
uint8_t IAQ_accuracy;
while (mySerial.available()) {
Re_buf[counter]=(unsigned char)mySerial.read();
if(counter==0&&Re_buf[0]!=0x5A) return;
if(counter==1&&Re_buf[1]!=0x5A)
{
counter=0;
return;
};
counter++;
if(counter==20)
{
counter=0;
sign=1;
}
}
if(sign)
{
sign=0;
if(Re_buf[0]==0x5A&&Re_buf[1]==0x5A )
{
for(i=0;i<19;i++)
sum+=Re_buf[i];
if(sum==Re_buf[i] )
{
temp2=(Re_buf[4]<<8|Re_buf[5]);
Temperature=(float)temp2/100;
temp1=(Re_buf[6]<<8|Re_buf[7]);
Humidity=(float)temp1/100;
Pressure=((uint32_t)Re_buf[8]<<16)|((uint16_t)Re_buf[9]<<8)|Re_buf[10];
IAQ_accuracy= (Re_buf[11]&0xf0)>>4;
IAQ=((Re_buf[11]&0x0F)<<8)|Re_buf[12];
Gas=((uint32_t)Re_buf[13]<<24)|((uint32_t)Re_buf[14]<<16)|((uint16_t)Re_buf[15]<<8)|Re_buf[16];
Altitude=(Re_buf[17]<<8)|Re_buf[18];
Serial.print("Temperature:");
Serial.print(Temperature);
Serial.print(" ,Humidity:");
Serial.print(Humidity);
Serial.print(" ,Pressure:");
Serial.print(Pressure);
Serial.print(" ,IAQ:");
Serial.print(IAQ);
Serial.print(" ,Gas:");
Serial.print(Gas );
Serial.print(" ,Altitude:");
Serial.print(Altitude);
Serial.print(" ,IAQ_accuracy:");
Serial.println(IAQ_accuracy);
}
delay(1000);
}
}
}*