BME680 je multifunkční senzor od Bosch, který dokáže měřit:
- teplotu
- vlhkost
- atmosférický tlak
- kvalitu vzduchu (VOC – těkavé organické látky)
Je ideální pro projekty jako:
- meteostanice
- smart home
- monitoring prostředí

Hlavní vlastnosti (převedeno z tabulky)
- napájení: 3.3 V
- komunikace: I2C nebo SPI
- rozsah teploty: −40 až +85 °C
- rozsah vlhkosti: 0–100 %
- rozsah tlaku: cca 300–1100 hPa
- obsahuje plynový senzor (pro kvalitu vzduchu)

Pinout (převedeno do seznamu)
- VIN → napájení
- GND → zem
- SCL → I2C clock
- SDA → I2C data
- SDO → nastavení adresy
- CS → SPI select
Zapojení k ESP32 (I2C)
- VCC → 3.3 V
- GND → GND
- SDA → GPIO 21
- SCL → GPIO 22

Co potřebuješ
- ESP32
- BME680 modul
- propojovací vodiče
- Arduino IDE
Instalace knihoven
Nainstaluj:
- Adafruit BME680
- Adafruit Unified Sensor


Kompletní kód (měření všech hodnot)
bme.cpp
1#include <Wire.h>
2#include <Adafruit_Sensor.h>
3#include <Adafruit_BME680.h>
4
5#define SEALEVELPRESSURE_HPA (1013.25)
6
7Adafruit_BME680 bme;
8
9void setup() {
10 Serial.begin(115200);
11
12 if (!bme.begin()) {
13 Serial.println("BME680 nenalezen!");
14 while (1);
15 }
16
17 // nastavení senzoru
18 bme.setTemperatureOversampling(BME680_OS_8X);
19 bme.setHumidityOversampling(BME680_OS_2X);
20 bme.setPressureOversampling(BME680_OS_4X);
21 bme.setIIRFilterSize(BME680_FILTER_SIZE_3);
22
23 // nastavení plynového senzoru
24 bme.setGasHeater(320, 150); // 320°C po dobu 150 ms
25}
26
27void loop() {
28 if (!bme.performReading()) {
29 Serial.println("Chyba čtení!");
30 return;
31 }
32
33 Serial.print("Teplota = ");
34 Serial.print(bme.temperature);
35 Serial.println(" °C");
36
37 Serial.print("Vlhkost = ");
38 Serial.print(bme.humidity);
39 Serial.println(" %");
40
41 Serial.print("Tlak = ");
42 Serial.print(bme.pressure / 100.0);
43 Serial.println(" hPa");
44
45 Serial.print("Kvalita vzduchu (gas) = ");
46 Serial.print(bme.gas_resistance / 1000.0);
47 Serial.println(" KOhm");
48
49 Serial.print("Nadmorska vyska = ");
50 Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
51 Serial.println(" m");
52
53 Serial.println("----------------------");
54
55 delay(2000);
56}Jak to funguje
bme.performReading()načte všechna databme.temperature→ teplotabme.humidity→ vlhkostbme.pressure→ tlakbme.gas_resistance→ kvalita vzduchubme.readAltitude()→ výška podle tlaku
Kvalita vzduchu (důležité)
BME680 neměří přímo „kvalitu vzduchu“, ale:
- měří odpor plynu
- vyšší odpor = čistší vzduch
- nižší odpor = více znečištění
⚠️ Hodnoty je potřeba:
- kalibrovat
- sledovat relativně (změny v čase)
Tipy
- první měření může být nepřesné → nech senzor „zahřát“
- používej konstantní podmínky pro přesnější data
- ideální pro:
- IoT projekty
- chytrou domácnost
- indoor monitoring
Shrnutí
BME680 je univerzální senzor pro monitoring prostředí:
- 4v1 senzor (teplota, vlhkost, tlak, plyn)
- jednoduché zapojení přes I2C
- vhodný pro smart home a IoT projekty
