Измерение давления и температуры с помощью GY-68(BMP180) и Arduino

В этом проекте мы научимся измерять атмосферное давление и температуру воздуха с помощью модуля GY-68, который основан на датчике BMP180. Эти данные можно использовать для простых погодных станций, измерения высоты над уровнем моря или других проектов с окружающей средой. Модуль подключается к Arduino по интерфейсу I²C и позволяет легко считывать датчики давления и температуры.

Измерение давления и температуры

Где и зачем используется

Измерение давления и температуры важно для разработки:

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

Что понадобится для проекта

  • Arduino (Uno, Nano или аналог)
  • Модуль GY-68 (датчик BMP180)
  • Провода Dupont
  • Макетная плата
  • Компьютер с Arduino IDE

Назначение пинов

Модуль GY-68 Arduino Описание
VCC 5V Питание модуля
GND GND Общий провод
SDA A4 (Uno/Nano) Данные I²C
SCL A5 (Uno/Nano) Тактовый сигнал I²C
Измерение давления и температуры

Принцип работы

Модуль GY-68 основан на датчике BMP180, который измеряет атмосферное давление и температуру с помощью встроенного цифрового барометрического сенсора. Он использует интерфейс I²C, который требует всего две линии: SDA (данные) и SCL (тактовый сигнал). Датчик поставляется с внутренней калибровкой и обеспечивает цифровые данные с хорошей точностью.

Arduino обращается к датчику через I²C, запрашивает текущие значения температуры и давления и выводит их в Serial Monitor или на экран. Эти данные могут также быть преобразованы в высоту (альтитуда) с использованием стандартной формулы, основанной на изменении давления с высотой.

Пример скетча Arduino

В примере ниже используется библиотека Adafruit для работы с BMP180, которая упрощает работу с GY-68.

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP085.h>  // библиотека для BMP180

Adafruit_BMP085 bmp;

void setup() {
  Serial.begin(9600);
  if (!bmp.begin()) {
    Serial.println("Ошибка: датчик BMP180 не найден!");
    while (1);
  }
}

void loop() {
  Serial.print("Температура: ");
  Serial.print(bmp.readTemperature());
  Serial.println(" °C");

  Serial.print("Давление: ");
  Serial.print(bmp.readPressure());
  Serial.println(" Па");

  // Расчёт высоты над уровнем моря из давления
  Serial.print("Высота (прибл.): ");
  Serial.print(bmp.readAltitude());
  Serial.println(" м");

  delay(2000); // пауза 2 секунды
}
  

Этот скетч подключает сенсор, и в цикле выводит значения температуры, давления и ориентировочной высоты в Serial Monitor.

Пример вывода данных в Arduino

Температура = 27.80°C
Давление = 101048 Pa
Высота (прибл.) = 23.10 meters


Температура = 27.80°C
Давление = 101052 Pa
Высота (прибл.) = 23.60 meters


Температура = 27.80°C
Давление = 101049 Pa
Высота (прибл.) = 23.40 meters

Заключение

Модуль GY-68 (BMP180) обеспечивает простой способ измерения атмосферного давления и температуры с помощью Arduino. Он полностью совместим с интерфейсом I²C, имеет встроенную калибровку и подходит для проектов погоды, высоты и окружающей среды.

FAQ — GY-68 (BMP180): измерение давления и температуры

Можно ли использовать GY-68 с другими Arduino-платами?

Да — любой Arduino с поддержкой I²C (Uno, Nano, Mega, Leonardo и др.) может работать с GY-68 через SDA/SCL.

Какой диапазон давления измеряет датчик?

Типичный BMP180 измеряет давление в диапазоне примерно от 300 до 1100 hPa, что соответствует высоте от примерно −500 м до ~9000 м.

Нужно ли калибровать датчик?

Нет — у модуля GY-68 встроенные калибровочные коэффициенты, поэтому данные сразу доступны для Arduino.

Можно ли измерять высоту?

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

Работает ли GY-68 при низких температурах?

Да — рабочий диапазон датчика примерно от −40 °C до +85 °C, что делает его пригодным для большинства проектов на улице.