Підключіть VCC до 3.3V (або 5V якщо є стабілізатор), GND до землі, SDA до A4, SCL до A5 (для Arduino Uno). Встановіть бібліотеку Adafruit BMP085. Зачекайте 2–3 хв після подачі живлення. Для точної висоти — калібруйте за актуальним тиском на рівні моря (≈1013.25 гПа).
Як підключити BMP180 до Arduino?
Модуль GY-68 має вбудований стабілізатор 3.3V та підтягуючі резистори 10кΩ на лініях I²C. Це дозволяє безпечно живити його від 5V Arduino.
flowchart LR
subgraph ARDUINO["🔌 Arduino UNO"]
A5V["5V (або 3.3V)"]
AGND["GND"]
AA4["A4 (SDA)"]
AA5["A5 (SCL)"]
end
subgraph BMP180["🌡️ GY-68 BMP180"]
VCC["VCC"]
GND["GND"]
SDA["SDA"]
SCL["SCL"]
end
A5V --> VCC
AGND --> GND
AA4 --> SDA
AA5 --> SCL
I²C піни для різних плат Arduino
| Плата Arduino | SDA | SCL |
|---|---|---|
| Uno / Nano / Pro Mini | A4 |
A5 |
| Mega 2560 | 20 |
21 |
| Leonardo / Micro | 2 |
3 |
| ESP8266 (NodeMCU) | D2 (GPIO4) |
D1 (GPIO5) |
| ESP32 | GPIO21 |
GPIO22 |
Розпіновка модуля GY-68
- VCC
- Живлення 3.3–5V (вбудований стабілізатор понизить до 3.3V)
- GND
- Земля
- SCL
- Тактова лінія I²C (Serial Clock)
- SDA
- Лінія даних I²C (Serial Data)
- 3.3V
- Вихід стабілізатора (можна не підключати або живити інші 3.3V пристрої)
Перевірте наявність стабілізатора! Якщо на вашому модулі немає мікросхеми стабілізатора — живіть тільки від 3.3V. Пряме підключення чипа BMP180 до 5V пошкодить його!
Які бібліотеки потрібні для BMP180?
Для роботи з BMP180 рекомендується бібліотека Adafruit BMP085, яка підтримує обидва датчики (BMP085 та BMP180 — сумісні).
-
Відкрийте менеджер бібліотек Arduino IDE → Sketch → Include Library → Manage Libraries...
-
Знайдіть "Adafruit BMP085" Введіть у пошуку "BMP085". Оберіть "Adafruit BMP085 Library" від Adafruit.
-
Встановіть залежності IDE запропонує встановити "Adafruit Unified Sensor" та "Adafruit BusIO" — натисніть "Install All".
-
Перезапустіть IDE Після встановлення рекомендується перезапустити Arduino IDE для коректної роботи.
Альтернатива: бібліотека SparkFun SFE_BMP180. Завантажте ZIP з GitHub і додайте через Sketch → Include Library → Add .ZIP Library.
Приклад коду для зчитування тиску та температури
Цей скетч ініціалізує датчик, зчитує температуру, тиск та обчислює висоту над рівнем моря.
Serial Monitor: відкрийте його на швидкості 9600 бод (Tools → Serial Monitor). Ви побачите оновлення даних кожну секунду.
Як калібрувати висотомір для точних показників?
BMP180 обчислює висоту на основі різниці між виміряним тиском та опорним тиском на рівні моря. Для точності потрібно знати актуальний тиск.
h = 44330 × (1 − (P / P₀)^0.1903)
де P — виміряний тиск, P₀ — тиск на рівні моря (1013.25 гПа стандарт)
Два способи калібрування
-
За даними метеостанції Дізнайтеся актуальний QNH (тиск приведений до рівня моря) на meteo.gov.ua або weather.com. Підставте це значення у
SEA_LEVEL_PRESSURE. -
За відомою висотою Якщо знаєте точну висоту вашого місцезнаходження — використайте
bmp.readSealevelPressure(knownAltitude)для розрахунку поточного P₀.
Погода впливає на висоту! Атмосферний тиск змінюється з погодою. Для точних абсолютних показників висоти — калібруйте щодня або використовуйте лише відносну висоту (різницю).
Усунення проблем
Помилка "BMP180 не знайдено"
Перевірте: 1) Правильність підключення SDA/SCL (для Uno — A4/A5, для Mega — 20/21). 2) Чи подано живлення на VCC. 3) Запустіть I2C Scanner — датчик повинен відповісти на адресі 0x77. 4) Спробуйте коротші проводи.
Показники температури завищені на 2–5°C
Це нормально. BMP180 вимірює температуру власного корпусу, а не повітря. Він нагрівається від роботи та від близьких компонентів. Для точної температури повітря використовуйте окремий датчик (DS18B20, DHT22).
Висота показує неправильні значення
Причина — некоректний P₀. Стандартні 1013.25 гПа рідко відповідають реальності. Дізнайтеся актуальний тиск на рівні моря для вашого регіону і підставте у SEA_LEVEL_PRESSURE. Різниця у 1 гПа = ~8 метрів похибки висоти.
Нестабільні показники, "стрибають" значення
Можливі причини: 1) Занадто довгі проводи I²C (>30 см) — скоротіть або використайте екранований кабель. 2) Завади від інших пристроїв — додайте конденсатор 0.1 мкФ між VCC та GND. 3) Потоки повітря — накрийте датчик поролоном з отворами.
Чи можна підключити кілька BMP180 до однієї шини I²C?
Ні напряму. BMP180 має фіксовану адресу 0x77, яку не можна змінити. Для кількох датчиків використовуйте I²C мультиплексор (TCA9548A) або програмне перемикання живлення датчиків.
Яка максимальна частота опитування датчика?
Залежить від режиму: Ultra Low Power — до 200 Гц (4.5 мс), Standard — ~130 Гц (7.5 мс), High Resolution — ~75 Гц (13.5 мс), Ultra High Resolution — ~38 Гц (26 мс). Бібліотека Adafruit за замовчуванням використовує максимальну точність.
Рекомендації для точних вимірювань
-
Дайте час на прогрів Після подачі живлення зачекайте 2–3 хвилини перед точними вимірюваннями. Датчик повинен досягти теплової рівноваги.
-
Ізолюйте від тепла Розміщуйте датчик подалі від стабілізаторів напруги, процесорів та інших джерел тепла. Використовуйте термоізоляційну підкладку.
-
Захистіть від потоків повітря Різкі потоки повітря спотворюють показники. Накрийте датчик поролоном або тканиною з доступом для повільної дифузії повітря.
-
Усереднюйте показники Для стабільних даних зчитуйте 10–20 значень і обчислюйте середнє. Це зменшить вплив шуму та миттєвих коливань.
-
Використовуйте короткі проводи I²C розрахований на відстані до 20–30 см. Для довших з'єднань знизьте частоту шини до 100 кГц або використайте I²C буфер.