meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
sensor:bmp_bme [2026/05/12 19:05] – [Source codes] vamsansensor:bmp_bme [2026/05/12 21:09] (current) – [BME688 Temperature/Humidity/Barometric Pressure/Gas (VOC) Module] vamsan
Line 2: Line 2:
 Bosch BMP sensors primarily measure barometric pressure and temperature, while Bosch BME sensors are more comprehensive, adding humidity and, in newer models, gas/air quality sensing. Bosch BMP sensors primarily measure barometric pressure and temperature, while Bosch BME sensors are more comprehensive, adding humidity and, in newer models, gas/air quality sensing.
  
-|< 100% >| +[[:sensor:bmp_bme#bme180|BMP180 (GY-68) Temperature/Barometric Pressure Module]] \\ 
-^Type of \\ measurement ^Model^Power \\ voltage ^Measurement, range, accuracy^Communication^Note| +[[:sensor:bmp_bme#bme280|BME280 (GY-BME280) Temperature/Humidity/Barometric Pressure module]] \\  
-|{{anchor:bme280}}{{:sensor:t.png|Temperature measuring}}{{:sensor:h.png|Humidity measuring}}{{:sensor:p.png|Air-press measuring}}<color blue> \\ Temperature \\ Humidity \\ Air pressure</color>|Bosch \\ **BME280** {{ :sensor:bme_280.png?100 |BME280}}|**3.3 V** \\ (1.71 .. 3.6V)|Temperature measurement range: -40 .. +80 °C\\ Temperature measurement accuracy: ±0.5°C (-40..85)\\ Humidity measurement range: 0..100% RH\\ Humidity measurement accuracy: ±3% \\ Air pressure Range: 300 .. 1100 hPa \\ Air pressure accuracy: ±0.25%|[[com:basic_i2c|I²C]] \\ default addr.: **0x76/77** \\ [[com:basic_spi|SPI]]|-| +[[:sensor:bmp_bme#bmp280|BMP280 (HW-611) Temperature/Barometric Pressure module]] \\  
-|{{anchor:bme680}}{{:sensor:t.png|Temperature measuring}}{{:sensor:h.png|Humidity measuring}}{{:sensor:p.png|Air-pressure measuring}}<color blue> \\ Temperature \\ Humidity \\ Air pressure</color>|Bosch \\ **BME680** {{ :sensor:bme_680.png?100 |BME680}}|**3.3 V** \\ (1.71 .. 3.6V)|Temperature measurement range: -40 .. +80 °C\\ Temperature measurement accuracy: ±1.5°C\\ Humidity measurement range: 0..100% RH\\ Humidity measurement accuracy: ±3% \\ Air pressure Range: 300 .. 1100 hPa \\ Air pressure accuracy: ±0.25%|[[com:basic_i2c|I²C]] \\ default addr.: **0x76/77** \\ [[com:basic_spi|SPI]]|Direct output of IAQ: Index for Air Quality| +[[:sensor:bmp_bme#bme680|BME680 Temperature/Humidity/Barometric Pressure/Gas (VOCModule]] \\  
-|{{anchor:bmp180}}{{:sensor:t.png|Temperature measuring}}{{:sensor:p.png|Air-pressure measuring}}<color blue> \\ Temperature \\ Air-pressure</color>|Bosch \\ **BMP180** {{ :sensor:bmp_180.png?100 |BMP180}}|**3.3 V** \\ (1.62 .. 3.6V)|Temperature measurement range: -40 .. +85 °C\\ Temperature measurement accuracy: ±1.5°C\\ Air pressure Range: 4.35PSI .. 15.95PSI (30kPa .. 110kPa) \\ Air pressure accuracy: ±2%|[[com:basic_i2c|I²C]] \\ default addr.: **0x77** (fix)|Maximum Pressure: 145.04PSI (1000kPa) \\ Temperature resolution: 0.1 °C \\ Pressure resolution: 1 Pa| +[[:sensor:bmp_bme#bme688|BME688 Temperature/Humidity/Barometric Pressure/Gas (VOCwith AI Module]] \\ 
-|{{anchor:bmp280}}{{:sensor:t.png|Temperature measuring}}{{:sensor:p.png|Air-press measuring}}<color blue> \\ Temperature \\ Air-pressure</color>|Bosch \\ **BMP280** {{ :sensor:bmp_280.png?100 |BMP280}}|**3.3 V** \\ (1.71 .. 3.6V)|Temperature measurement range: -40 .. +85 °C\\ Temperature measurement accuracy: ±1.5°C\\ Air pressure Range: 4.35PSI .. 15.95PSI (30kPa .. 110kPa)\\ Air pressure accuracy: ±2%|[[com:basic_i2c|I²C]] \\ default addr.: **0x76** \\ [[com:basic_spi|SPI]]|Maximum Pressure: 290.08PSI (2000kPa) \\ Temperature resolution: 0.01 °C \\ Pressure resolution: 0.16 Pa| +
- +
-The BME/BMP sensors can be integrated with the [[https://tasmota.github.io/docs/About/|Tasmota]] system. For more details, see here: +
- +
-  * BMP085, BMP180 and BMP280 sensors: https://tasmota.github.io/docs/BME280/ +
-  * BME280: https://tasmota.github.io/docs/BME280/ +
-  * BME680: https://tasmota.github.io/docs/BME680/ +
- +
- +
- +
-===== BME/BMP Modules =====+
  
 ==== BMP180 Temperature/Barometric Pressure Module ==== ==== BMP180 Temperature/Barometric Pressure Module ====
 +{{anchor:bmp180}}{{anchor:gy_68}}
 {{ :sensor:modul_gy68.png?150|GY-68}} {{ :sensor:modul_gy68.png?150|GY-68}}
-{{anchor:gy_68}}{{:sensor:t.png|Temperature measuring}}{{:sensor:p.png|Air-press measuring}}+{{:sensor:t.png|Temperature measuring}}{{:sensor:p.png|Air-press measuring}}
  
 Another name for the **GY-68** module is a breakout board that integrates the [[#bmp180|Bosch BMP180]] sensor to measure atmospheric pressure, temperature, and altitude. The two terms refer to different components of the same product for hobbyist use: the BMP180 is the sensing chip on the GY-68 printed-circuit board. Another name for the **GY-68** module is a breakout board that integrates the [[#bmp180|Bosch BMP180]] sensor to measure atmospheric pressure, temperature, and altitude. The two terms refer to different components of the same product for hobbyist use: the BMP180 is the sensing chip on the GY-68 printed-circuit board.
Line 40: Line 30:
  
 ==== BME280 Temperature/Humidity/Barometric Pressure module ==== ==== BME280 Temperature/Humidity/Barometric Pressure module ====
 +{{anchor:bme280}}{{anchor:gy_bme280}}
 {{ :sensor:modul_gy_bme280.png?150|GY-BME280}} {{ :sensor:modul_gy_bme280.png?150|GY-BME280}}
-{{anchor:gy_bme280}}{{:sensor:t.png|Temperature measuring}}{{:sensor:h.png|Humidity measuring}}{{:sensor:p.png|Air-press measuring}}+{{:sensor:t.png|Temperature measuring}}{{:sensor:h.png|Humidity measuring}}{{:sensor:p.png|Air-press measuring}}
  
 Another name, **GY-BME280**, is a sensor module that integrates the [[#bme280|Bosch BME280]] environmental sensor chip and measures temperature, humidity, and atmospheric pressure. It is an upgrade to the BMP280 and is widely used in hobbyist electronics and IoT projects for comprehensive environmental monitoring. Another name, **GY-BME280**, is a sensor module that integrates the [[#bme280|Bosch BME280]] environmental sensor chip and measures temperature, humidity, and atmospheric pressure. It is an upgrade to the BMP280 and is widely used in hobbyist electronics and IoT projects for comprehensive environmental monitoring.
Line 61: Line 52:
  
 ==== BMP280 (HW-611) Temperature/Barometric Pressure module ==== ==== BMP280 (HW-611) Temperature/Barometric Pressure module ====
 +{{anchor:bmp280}}{{anchor:gy_bmp280}}
 {{ :sensor:gy_bm.png?150|GY-BMP280}} {{ :sensor:gy_bm.png?150|GY-BMP280}}
-{{anchor:gy_bmp280}}{{:sensor:t.png|Temperature measuring}}{{:sensor:p.png|Air-press measuring}} +{{:sensor:t.png|Temperature measuring}}{{:sensor:p.png|Air-press measuring}} 
  
 The GY-BMP280-3.3 is a sensor module featuring the [[#bmp280|Bosch BMP280]] environmental sensor chip, which precisely measures atmospheric pressure and temperature. This module operates from a 3.3V DC power supply, making it a low-power solution for applications such as weather monitoring, altimetry, and navigation systems.  The GY-BMP280-3.3 is a sensor module featuring the [[#bmp280|Bosch BMP280]] environmental sensor chip, which precisely measures atmospheric pressure and temperature. This module operates from a 3.3V DC power supply, making it a low-power solution for applications such as weather monitoring, altimetry, and navigation systems. 
Line 83: Line 75:
 *: //To set the I²C address to **0x77**, connect pin 6 of the module (SDO) to Vcc, typically the 3.3V supply, and connect pin 5 of the module (CSB) to Vcc to select the I²C interface.// *: //To set the I²C address to **0x77**, connect pin 6 of the module (SDO) to Vcc, typically the 3.3V supply, and connect pin 5 of the module (CSB) to Vcc to select the I²C interface.//
  
-==== GY-BMP280-3.3 Pinout ====+=== GY-BMP280-3.3 Pinout ===
  
 ^Pin^Name^I²C Function^SPI Function \\ (4-wire)^Description| ^Pin^Name^I²C Function^SPI Function \\ (4-wire)^Description|
Line 95: Line 87:
 {{page>:tarhal}} {{page>:tarhal}}
  
-==== GY-BMP280/HW-611 Arduino code ==== +==== BME680 Temperature/Humidity/Barometric Pressure/Gas (VOC) Module ==== 
-<code c> +{{anchor:bme680}}
-// include +
-#include <Wire.h> +
-#include <Adafruit_Sensor.h> +
-#include <Adafruit_BMP280.h> // BMP280/HW-611 +
- +
-// variable +
-float bmp_280_temp; +
-float bmp_280_press; +
-bool bmp_280_ready; +
-String unitID = "abcd"; +
- +
-// init +
-Adafruit_BMP280 bmp_280; // BMP280/HW-611 +
- +
-// call block +
-void bmp_280_function () { +
-  bmp_280_temp = bmp_280.readTemperature(); +
-  bmp_280_press = bmp_280.readPressure() / 100.0F; +
-  Serial.print("unitID: "); Serial.print(unitID); Serial.print("; bmp_280_temp: "); Serial.print(bmp_280_temp); Serial.println(" ; unit: C"); +
-  Serial.print("unitID: "); Serial.print(unitID); Serial.print("; bmp_280_press: "); Serial.print(bmp_280_press); Serial.println(" ; unit: hPa"); +
-+
- +
- +
-void setup() { +
-  Serial.begin(115200); +
-    // unit works? +
-    bmp_280_ready = bmp_280.begin(0x76);  +
-    if (!bmp_280_ready) { +
-    Serial.println("BMP280/HW-611 Sensor not found"); +
-    } else { +
- Serial.println("BMP280/HW-611 Sensor works"); +
-+
-  } +
- +
-void loop() { +
-  // call all units with 2 sec raster +
-  static unsigned long lastTime = 0; +
-  if (millis() - lastTime > 2000) { +
-    lastTime = millis(); +
-    // units call, if works +
-    if (bmp_280_ready) {bmp_280_function ();} +
-  } +
-+
-</code> +
-==== CJMCU-680 Temperature/Humidity/Barometric Pressure/Gas (VOC) Module ====+
 {{ :sensor:cjmcu_680_1.png?150|CJMCU-680}} {{ :sensor:cjmcu_680_1.png?150|CJMCU-680}}
 {{anchor:gy_bmp680}}{{:sensor:t.png|Temperature measuring}}{{:sensor:h.png|Humidity measuring}}{{:sensor:p.png|Air-press measuring}}{{:sensor:g.png|Gas Sensor}}  {{anchor:gy_bmp680}}{{:sensor:t.png|Temperature measuring}}{{:sensor:h.png|Humidity measuring}}{{:sensor:p.png|Air-press measuring}}{{:sensor:g.png|Gas Sensor}} 
  
-The **CJMCU-680** is an environmental sensor breakout board based on the Bosch BME680 chip. It is a versatile //"4-in-1"// module designed for DIY electronics and IoT projects. +The BME680 (//CJMCU-680//) is an environmental sensor breakout board based on the Bosch BME680 chip. It is a versatile //"4-in-1"// module designed for DIY electronics and IoT projects. 
  
-**Core Capabilities**+=== Core Capabilities === 
  
 The module measures four distinct environmental parameters:  The module measures four distinct environmental parameters: 
Line 166: Line 113:
  
  
-**Sensor Performance**+=== Sensor Performance === 
  
 ^Parameter^Measurement Range^Accuracy / Tolerance| ^Parameter^Measurement Range^Accuracy / Tolerance|
Line 180: Line 127:
   * **Humidity Sensor:** ~8 seconds (τ0-63%)   * **Humidity Sensor:** ~8 seconds (τ0-63%)
  
-==== CJMCU-680 Pinout ====+=== Comparison Table: BME680 vs. BME688 === 
 +^Feature^BME680^BME688| 
 +^Primary Focus|General Air Quality (IAQ)|Specific Gas Detection & AI| 
 +^Gas Sensor Type|MOX (Metal Oxide)|Enhanced MOX with Gas Scanner 
 +^AI Integration|None (Software-based IAQ only)|Integrated AI support (BME AI-Studio)| 
 +^Gas Detection|Broad VOCs (Volatile Organic Compounds)|VOCs + VSCs (Volatile Sulfur Compounds)| 
 +^Gas resistance range|Standard|Extended (for better discrimination)| 
 +^Humidity Stability|Moderate cross-sensitivity (~15-25% error)|High stability (<5% error in high humidity)| 
 +^Software Support|Basic BSEC library|BSEC + BME AI-Studio| 
 +^Replacement Type|N/A|Backward compatible "//Drop-in//" replacement| 
 + 
 +=== CJMCU-680 Pinout ===
 The standard CJMCU-680 module uses the following pin arrangement:  The standard CJMCU-680 module uses the following pin arrangement: 
  
Line 191: Line 149:
 ^6|CS|Chip Select for SPI. Pulling this high or leaving it disconnected defaults the module to I²C mode| ^6|CS|Chip Select for SPI. Pulling this high or leaving it disconnected defaults the module to I²C mode|
  
-==== Arduino wiring ====+=== Controller wiring ===
   * SCL: A5   * SCL: A5
   * GND: GND   * GND: GND
   * SDA: A4   * SDA: A4
   * Vdd: **3.3V** (or **5V** if your breakout board has a regulator).   * Vdd: **3.3V** (or **5V** if your breakout board has a regulator).
-==== Source codes ====+ 
 +=== Source codes ===
  
 Arduino C : [[code:arduino_modul_bme680|Read BME680 Temperature/Humidity/Barometric Pressure/Gas (VOC) Module]] \\ Arduino C : [[code:arduino_modul_bme680|Read BME680 Temperature/Humidity/Barometric Pressure/Gas (VOC) Module]] \\
-RP2040_ETH_Modul: [[code:rp2040_eth_modul_bme680_modbus|Read BME 680 sensor data and store in Modbus input registers]] \\+RP2040_ETH_Modul: [[code:rp2040_eth_modul_bme680|Read BME 680/688 sensor data]] \\ 
 +RP2040_ETH_Modul: [[code:rp2040_eth_modul_bme680_modbus|Read BME 680/688 sensor data and store in Modbus input registers]] \\ 
 + 
 + 
 +==== BME688 Temperature/Humidity/Barometric Pressure/Gas (VOC) Module ==== 
 +{{ :sensor:bme688.png?140|BME688 Temperature/Humidity/Barometric Pressure/Gas (VOC) Module}} 
 +{{anchor:bme688}} 
 +{{anchor:gy_bmp680}}{{:sensor:t.png|Temperature measuring}}{{:sensor:h.png|Humidity measuring}}{{:sensor:p.png|Air-press measuring}}{{:sensor:g.png|Gas Sensor}}  
 + 
 +The Bosch **BME688** is an advanced 4-in-1 environmental sensor that integrates high-accuracy measurements for temperature, humidity, barometric pressure, and gas. It is the first sensor of its kind to include //Artificial Intelligence// (**AI**) features, enabling it to detect specific gas compositions, such as //Volatile Organic Compounds// (**VOCs**) and //Volatile Sulfur Compounds// (**VSCs**). 
 + 
 +|<100%>
 +^Parameter^Measurement Range^Accuracy^| 
 +^Temperature-40°C to +85°C|±0.5°C to ±1.0°C| 
 +^Humidity|0 to 100%|RH±3% RH| 
 +^Pressure|300 to 1100 hPa|±0.6 hPa (absolute)| 
 +^Gas Sensor|VOC, VSC, CO, H₂|AI-trained classification| 
 + 
 +**Hardware & Communication** 
 + 
 +  * **Operating Voltage:** 1.71V to 3.6V (**typically 3.3V**). 
 +  * **Interface:** Supports both I²C (up to 3.4 MHz) and SPI (up to 10 MHz). 
 +  * **I²C Addresses:** The default is **0x76** or **0x77**, depending on the SDO pin connection. 
 +  * **Current Consumption:** Ranges from 0.15 µA in sleep mode to 3.9 mA during a standard gas scan. 
 + 
 +**AI Features (The "Digital Nose")** 
 + 
 +The BME688's standout feature is its ability to be trained using the BME AI-Studio software. This allows the sensor to: 
 +  * Recognize unique //"fingerprints"// of different gas mixtures. 
 +  * Detect bacteria growth or spoiled food by identifying volatile sulfur compounds.  
 +  * Provide an //Indoor Air Quality// (**IAQ**) index through the Bosch BSEC software library. 
 + 
 +{{page>:sensor:bme680_688}} 
 + 
 +=== Source codes === 
 + 
 +RP2040_ETH_Modul: [[code:rp2040_eth_modul_bme680|Read BME 680/688 sensor data]] \\ 
 +RP2040_ETH_Modul: [[code:rp2040_eth_modul_bme680_modbus|Read BME 680/688 sensor data and store in Modbus input registers]] \\
  
  ===== I²C topics on lamaPLC =====  ===== I²C topics on lamaPLC =====
Line 207: Line 203:
 \\ \\
  
-{{tag>BME280 BME680 BMP180 BMP280 HW-611 HW611 Bosch temperature humidity pressure sensor arduino i2c communication CJMCU}}+{{tag>BME280 BME680 BME688 BMP180 BMP280 HW-611 HW611 Bosch temperature humidity pressure sensor arduino i2c communication AI CJMCU Volatile_Organic_Compounds VOCs Volatile_Sulfur_Compounds VSCs IAQ}}
  
 This page has been accessed for: Today: {{counter|today}}, Until now: {{counter|total}} This page has been accessed for: Today: {{counter|today}}, Until now: {{counter|total}}