Измерение давления и температуры с помощью 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, что делает его пригодным для большинства проектов на улице.