Подключение BME280 к ESP32
Датчик температуры, влажности и давления
BME280 к ESP32 подключается по I2C четырьмя проводами: 3,3 В, земля, SDA и SCL. На ESP32 для шины I2C по умолчанию используются GPIO21 (SDA) и GPIO22 (SCL).
Схема подключения BME280 к ESP32
| BME280 | ESP32 |
|---|---|
| SCL | GPIO22 |
| SDA | GPIO21 |
| VCC | 3V3 |
| GND | GND |
Схема из примера «BME280: три величины сразу».
Выводы BME280
| Вывод | Назначение |
|---|---|
| SCL | тактовая линия I2C |
| SDA | линия данных I2C |
| VCC | питание |
| GND | общий провод |
Код для ESP32
#include <Adafruit_BME280.h>
Adafruit_BME280 bme;
void setup() {
Serial.begin(115200);
delay(200);
// Адрес зависит от вывода SDO: 0x76 при земле, 0x77 при питании.
// Перепутанный адрес выглядит как неисправный датчик.
if (!bme.begin(0x76)) {
Serial.println("BME280 не отвечает: проверьте адрес и провода");
while (true) delay(1000);
}
}
void loop() {
Serial.printf("%.2f C %.1f %% %.2f гПа\n",
bme.readTemperature(),
bme.readHumidity(),
bme.readPressure() / 100.0F);
delay(1000);
}
Скетч можно править и запускать в симуляторе без платы и установки среды.
Что учесть на ESP32
- Адрес датчика 0x76 или 0x77 зависит от перемычки на плате (SDO). Если библиотека не находит датчик, проверьте оба адреса.
- Подтяжки на SDA и SCL (около 4,7 кОм) обычно уже стоят на модуле, добавлять свои не нужно.
Частые ошибки при подключении к ESP32
- Перепутаны SDA и SCL: датчик не находится, сканер I2C ничего не показывает.
- Питание 5 В на «голый» чип BME280: чип рассчитан на 3,6 В. Модули со стабилизатором допускают 5 В, чип без него — нет.
- BMP280 вместо BME280: выглядят одинаково, но у BMP280 нет влажности. Библиотека BME280 его не найдёт (другой идентификатор чипа).
- Неверный адрес:
begin()без аргумента ищет 0x77, а большинство модулей — 0x76. Запустите сканер I2C. - Датчик рядом с платой: ESP32 греется, и температура получается на 2–3 °C выше. Выносите датчик на проводах.
- 5 В на модуль без стабилизатора — чип рассчитан на 3,6 В максимум.
Ещё по теме
Другие детали для ESP32
HC-SR04DHT22 (AM2302)DS3231SSD1306 OLED 0,96″LCD 1602 с I2CMAX7219TM1637MPU6050 (GY-521)Модуль релеWS2812B (NeoPixel)KY-040Клавиатура 4×4HX711ФоторезисторМодуль microSDRGB-светодиодСервопривод SG9074HC595ИК-приёмник (VS1838B)TFT ST7735 1,8″Шаговый двигательКнопкаПотенциометрПьезопищалкаСветодиодDS18B20Ползунковый переключательHC-SR501TTP223Датчик влажности почвыMQ-2LM35Джойстик KY-023DHT11HTU21DSN65HVD230