BME680 – Temperatuur, luchtvochtigheid, luchtdruk en luchtkwaliteit
De BME680 is een geavanceerde digitale sensor van Bosch die temperatuur, relatieve luchtvochtigheid, luchtdruk én luchtkwaliteit (gas) meet. Deze sensor is ideaal voor omgevingsmonitoring en klimaatregeling, en is zeer geschikt voor gebruik met een ESP32.
Specificaties
Eigenschap | Waarde |
---|---|
Type | Digitale 4-in-1 sensor |
Voedingsspanning | 3.3V (soms 5V tolerant, afhankelijk van breakout board) |
Temperatuurbereik | -40 tot +85 °C |
Luchtvochtigheid | 0 tot 100% RH |
Luchtdruk | 300 tot 1100 hPa |
Gasmeting (luchtkwaliteit) | Tot 50000 Ω (indicatief) |
Communicatie | I²C of SPI |
Aansluitschema ESP32 – BME680 (I2C)
BME680 | ESP32 |
---|---|
VIN | 3.3V |
GND | GND |
SCL | GPIO 22 |
SDA | GPIO 21 |

De sensor gebruikt standaard het I2C-adres 0x76
of 0x77
, afhankelijk van het board. Controleer de datasheet of gebruik een I2C-scanner.
Arduino-code voorbeeld
Installeer de bibliotheken Adafruit BME680 en Adafruit Sensor via de Library Manager.
#include
#include
#include "Adafruit_BME680.h"
Adafruit_BME680 bme; // I2C
void setup() {
Serial.begin(115200);
if (!bme.begin()) {
Serial.println("Kan BME680 niet vinden!");
while (1);
}
// Configuratie
bme.setTemperatureOversampling(BME680_OS_8X);
bme.setHumidityOversampling(BME680_OS_2X);
bme.setPressureOversampling(BME680_OS_4X);
bme.setGasHeater(320, 150); // 320°C voor 150 ms
}
void loop() {
if (!bme.performReading()) {
Serial.println("Fout bij uitlezen!");
return;
}
Serial.print("Temperatuur: ");
Serial.print(bme.temperature);
Serial.println(" °C");
Serial.print("Luchtvochtigheid: ");
Serial.print(bme.humidity);
Serial.println(" %");
Serial.print("Druk: ");
Serial.print(bme.pressure / 100.0);
Serial.println(" hPa");
Serial.print("Gasweerstand: ");
Serial.print(bme.gas_resistance / 1000.0);
Serial.println(" KΩ");
delay(2000);
}
Toepassing in Home Assistant
De BME680 kan via ESPHome gekoppeld worden aan Home Assistant. Je kunt alle sensoren afzonderlijk uitlezen. Een voorbeeldconfiguratie:
i2c:
sda: 21
scl: 22
scan: true
sensor:
- platform: bme680
temperature:
name: "Woonkamer Temperatuur"
pressure:
name: "Woonkamer Luchtdruk"
humidity:
name: "Woonkamer Luchtvochtigheid"
gas_resistance:
name: "Woonkamer Gasweerstand"
address: 0x76
update_interval: 60s
Voor luchtkwaliteitsindex (IAQ) heb je aanvullende software nodig zoals bsec
.
Opmerkingen
- De gasmeting vereist een opwarmtijd (meerdere minuten) voor stabiele waarden.
- Sommige breakout boards gebruiken
0x77
als I2C-adres; controleer dit met een I2C-scanner.