Обзор
BME688 — это самый современный датчик окружающей среды от Bosch Sensortec, объединяющий в одном корпусе сенсоры газа, давления, влажности и температуры. Это первый в мире датчик газа с поддержкой искусственного интеллекта (BME AI-Studio), позволяющий обнаруживать специфические запахи и летучие органические соединения (VOC).
BME688 является преемником популярного BME680. Основное отличие — возможность обучения сенсора распознаванию различных газовых смесей. Он идеально подходит для мониторинга качества воздуха в помещениях, обнаружения пожара на ранних стадиях и даже анализа свежести продуктов.
О BME688 / BME680
BME688 — это революционный шаг в мире датчиков окружающей среды. Помимо стандартных возможностей измерения давления и температуры (на уровне BMP280), он содержит инновационный газовый сенсор и алгоритмы обработки данных, способные определять индекс качества воздуха (IAQ).
⚡ Ключевые особенности
- Газовый сенсор (VOC) — Измеряет общую концентрацию летучих органических соединений и выделяет IAQ индекс.
- Искусственный интеллект — Поддержка BME AI-Studio для кастомного распознавания запахов.
- Компактность — 4 физических параметра в одном миниатюрном чипе.
- Гибкие интерфейсы — Работает через I2C и SPI.
🔗 Полная библиотека Bosch BSEC необходима для получения расширенных данных (IAQ, эквивалент CO2).
Характеристики BME688
Распиновка BME688
Для подключения большинства модулей BME688/BME680 используются следующие выводы:
| Пин | Название | Описание |
|---|---|---|
| 1 | VCC | Питание (3.3V) |
| 2 | GND | Земля |
| 3 | SCL | I2C Clock / SPI SCK |
| 4 | SDA | I2C Data / SPI MOSI |
| 5 | CSB | Chip Select (SPI) / I2C Enable |
| 6 | SDO | SPI MISO / I2C Address select |
Подключение BME688 к ESP32
Для работы в режиме I2C подключите SDA к GPIO21 и SCL к GPIO22.
| BME688 Pin | ESP32 Pin | Описание |
|---|---|---|
| VCC | 3.3V | Не подключайте к 5V! |
| GND | GND | Земля. |
| SDA | GPIO21 | Линия данных I2C. |
| SCL | GPIO22 | Линия тактов I2C. |
Программирование BME688
Arduino (Adafruit Library)
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include "Adafruit_BME680.h"
Adafruit_BME680 bme; // Можно использовать и для BME688
void setup() {
Serial.begin(115200);
if (!bme.begin()) {
Serial.println("Датчик BME688/680 не найден!");
while (1);
}
// Настройка нагревателя газового сенсора
bme.setGasHeater(320, 150); // 320°C на 150 мс
}
void loop() {
if (! bme.performReading()) {
Serial.println("Ошибка чтения!");
return;
}
Serial.print("Темп: "); Serial.print(bme.temperature); Serial.println(" *C");
Serial.print("Влаж: "); Serial.print(bme.humidity); Serial.println(" %");
Serial.print("Давл: "); Serial.print(bme.pressure / 100.0); Serial.println(" гПа");
Serial.print("Газ: "); Serial.print(bme.gas_resistance / 1000.0); Serial.println(" кОм");
delay(1000);
}
ESPHome
# Пример для BME680/BME688
sensor:
- platform: bme680
temperature:
name: "BME688 Температура"
humidity:
name: "BME688 Влажность"
pressure:
name: "BME688 Давление"
gas_resistance:
name: "BME688 Сопротивление газа"
Итоги
BME688 — это ультимативное решение для тех, кто хочет получить максимум информации об окружающей среде из одного датчика. Его применение варьируется от простых метеостанций до сложных систем мониторинга промышленной безопасности и качества воздуха.