====== LamaPLC: BMP/BME Bosch Temperature/Humidity/Pressure sensors with I²C communication ======
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% >|
^Type of \\ measurement ^Model^Power \\ voltage ^Measurement, range, accuracy^Communication^Note|
|{{anchor:bme280}}{{:sensor:t.png|Temperature measuring}}{{:sensor:h.png|Humidity measuring}}{{:sensor:p.png|Air-press measuring}} \\ Temperature \\ Humidity \\ Air pressure|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]]|-|
|{{anchor:bme680}}{{:sensor:t.png|Temperature measuring}}{{:sensor:h.png|Humidity measuring}}{{:sensor:p.png|Air-pressure measuring}} \\ Temperature \\ Humidity \\ Air pressure|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|
|{{anchor:bmp180}}{{:sensor:t.png|Temperature measuring}}{{:sensor:p.png|Air-pressure measuring}} \\ Temperature \\ Air-pressure|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|
|{{anchor:bmp280}}{{:sensor:t.png|Temperature measuring}}{{:sensor:p.png|Air-press measuring}} \\ Temperature \\ Air-pressure|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|
===== Moduls =====
^Type of \\ measurement ^Name^Pictures^Sensors^Description|
|{{anchor:gy_68}}{{:sensor:t.png|Temperature measuring}}{{:sensor:p.png|Air-press measuring}} \\ - Temp \\ - Air-press |**GY-68**, **BMP180**|{{:sensor:modul_gy68.png?150|GY-68}}|[[#bmp180|BMP180]]| - [[com:basic_i2c|I²C]] interface (**only 1 modul**)\\ - The I²C address on the BMP180 is 0x77. And it is fixed, making it impossible to add multiple sensors to the same I²C bus. \\ - Compatible with Arduino, Atmega328p, ESP and Raspberry |
|{{anchor:gy_bme280}}{{:sensor:t.png|Temperature measuring}}{{:sensor:h.png|Humidity measuring}}{{:sensor:p.png|Air-press measuring}} \\ - Temp \\ - Humidity \\ - Air press |**GY-BME280**|{{:sensor:modul_gy_bme280.png?150|GY-BME280}}|[[#bme280|BME280]]|- [[com:basic_i2c|I²C]] interface (**max. 2 moduls**)\\ - The module's default I2C address is 0x76, which can be easily changed to 0x77 using the provided solder jumper.* \\ - Compatible with Arduino, Atmega328p, ESP, and Raspberry \\ \\ //*: To change the i2c address to 0x77, cut the trace between the middle and left copper pads with a sharp knife. Then, add a solder blob between the middle and right copper pads to short them.//|
|{{anchor:gy_bmp280}}{{:sensor:t.png|Temperature measuring}}{{:sensor:p.png|Air-press measuring}} \\ - Temp \\ - Air press |**GY-BMP280-3.3**,**BMP280**|{{:sensor:gy_bm.png?150|GY-BMP280}}|[[#bmp280|BMP280]]|- Or [[com:basic_i2c|I²C]] interface (**max. 2 moduls**; up to 3.4 MHz) \\ - Or [[com:basic_spi|SPI]] interface (up to 10 MHz) \\ - Current consumption of sensor BMP280: 2.7µA @ 1 Hz sampling rate \\ - The Chip Select (CSB) and Serial Data Output (SDO) pins of the BMP280 are necessary only when SPI-based (four-wire) communication is applied. I²C is a two-wire interface, comprising SDA and SCK. \\ - Default I²C is: 0x76 (SDO pin low) \\ - To I²C 0x77 address connect pin 6 of the module (SDO) to Vcc, which would typically be the 3.3V supply \\ - Pin 5 of the module (CSB) must be connected to Vcc to select the I²C interface|
===== Arduino =====
==== Arduino wiring ====
* SCL: A5
* GND: GND
* SDA: A4
* Vdd: 5V
==== Arduino code ====
sample
===== I²C topics on lamaPLC =====
{{topic>i2c}}
\\
\\
{{tag>BME280 BME680 BMP180 BMP280 Bosch temperature humidity pressure sensor arduino i2c communication}}
This page has been accessed for: Today: {{counter|today}}, Until now: {{counter|total}}