🛒
0 товаров
0 руб.

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


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

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

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

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

BMP280 — цифровой барометрический датчик: внутри него есть миниатюрная мембрана, деформация которой под давлением воздуха преобразуется в электрический сигнал, который сама микросхема оцифровывает и калибрует по заводским коэффициентам. По цифровой шине I2C Arduino получает уже готовое значение давления в паскалях и температуры в градусах, без необходимости калибровать переводные формулы самостоятельно.

Атмосферное давление принято измерять в паскалях (Па) в международной системе единиц, но в быту и в прогнозах погоды в России привычнее миллиметры ртутного столба (мм рт. ст.) — 1 мм рт. ст. равен примерно 133.322 Па, отсюда и коэффициент деления в коде.

Важный нюанс: BMP280 измеряет абсолютное давление в точке установки, которое зависит от высоты над уровнем моря — чем выше, тем ниже давление. Метеостанции обычно приводят показания к уровню моря (так называемое давление, приведённое к уровню моря) для сравнимости между разными городами, но для бытового барометра абсолютные значения в месте установки вполне годятся — важнее их изменение во времени, а не абсолютное число.

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

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

  1. Подключите BMP280 по шине I2C: SDA → A4, SCL → A5, VCC → 3.3V (многие модули имеют стабилизатор и терпят 5В — уточните по своей плате), GND → GND.
  2. Подключите LCD1602 с I2C-переходником на ту же шину (SDA/SCL общие, I2C поддерживает несколько устройств с разными адресами на одной паре проводов).
  3. Прежде чем полагаться на показания в проекте, сверьте их с ближайшей метеостанцией или другим барометром — так вы убедитесь, что датчик и подключение работают корректно.

Скетч

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

#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)) {
    // если на адресе 0x76 датчик не отвечает, попробуйте 0x77 — зависит от платы
    Serial.println("Ошибка: датчик BMP280 не найден, проверьте подключение и адрес");
  }
  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");

  Serial.print("Давление: ");
  Serial.print(pressure);
  Serial.print(" мм рт.ст., температура: ");
  Serial.println(temp);

  delay(2000); // давление меняется медленно, частый опрос не нужен
}

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

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

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

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

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

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

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

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

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

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

Корзина


Поиск



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