🛒
0 товар.
0 руб.
Логотип

Интернет-магазин «Неглупый Дом»

☰
ИИ-консультант Wildberries OZON Яндекс Маркет
Поиск по сайту
Гугл таблица с ассортиментом

🌤️ Проект: барометр на BMP280 с выводом на LCD1602

Схема барометра на BMP280 с выводом на LCD1602

BMP280 измеряет давление и температуру, значения переводятся в мм рт. ст. и выводятся на дисплей.

Как это работает

BMP280 измеряет атмосферное давление мембранным методом: тонкая мембрана внутри чипа слегка прогибается под внешним давлением воздуха, а электроника датчика переводит эту деформацию в цифровое значение давления в паскалях. Чтобы получить привычные мм рт. ст., результат делится на 133.322 (это коэффициент перевода паскалей в миллиметры ртутного столба).

Важно понимать: BMP280 показывает абсолютное давление в точке установки, а метеосводки обычно дают давление, приведённое к уровню моря — поэтому значение с датчика может заметно отличаться от того, что показывает прогноз погоды для вашего города, особенно если вы живёте на возвышенности.

Пошаговая сборка

Так как реализации модуля бывают разные, если контактов как в примере нет на вашей плате — сориентируйтесь по надписям на своей.

  1. BMP280: SDA → A4, SCL → A5, VCC → 3.3V (некоторые модули допускают и 5V — смотрите маркировку), GND → GND.
  2. LCD1602 с I2C подключается на ту же шину.
  3. Если датчик не отвечает по адресу 0x76 — попробуйте 0x77, это зависит от конкретной платы.
  4. Установите датчик на некотором расстоянии от дисплея и других тепловыделяющих компонентов, чтобы они не искажали показания температуры.

Скетч

// ВНИМАНИЕ: отладьте через монитор порта — я языковая модель, а не
// специализированный кодер, основу накидал, проверьте под свою схему.

#include <Wire.h>
#include <Adafruit_BMP280.h>
#include <LiquidCrystal_I2C.h>

Adafruit_BMP280 bmp;
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  Serial.begin(9600);
  if (!bmp.begin(0x76)) {
    Serial.println("Ошибка: датчик BMP280 не найден, проверьте адрес (0x76/0x77) и проводку");
  }
  lcd.init();
  lcd.backlight();
}

void loop() {
  float pressure = bmp.readPressure() / 133.322; // Па в мм рт.ст.
  float temp = bmp.readTemperature();
  lcd.setCursor(0, 0);
  lcd.print("P: "); lcd.print(pressure, 0); lcd.print(" mmHg");
  lcd.setCursor(0, 1);
  lcd.print("T: "); lcd.print(temp, 1); lcd.print(" C");
  delay(2000);
}
                

Требуется библиотека Adafruit Unified Sensor вместе с Adafruit BMP280. Адрес датчика — 0x76 или 0x77 в зависимости от платы.

Частые проблемы

Как улучшить проект

Товары по теме

Ещё модули для Arduino: Электронные модули.

← 💡 люксметр на BH1750 с выводом н…🚨 сигнализация от движения на HC… →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу: 290 ₽ 261 ₽ (экономия 29 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина

Поиск


Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA