Барометр у смартфоні — це MEMS-сенсор, який вимірює атмосферний тиск для визначення висоти та прогнозу погоди. Сучасні барометри фіксують тиск у діапазоні від 300 до 1100 гПа з точністю до 1 гПа, що відповідає похибці визначення висоти менше 1 метра. За даними Bosch Sensortec BMP580, 2024, абсолютна точність сучасних датчиків тиску становить ±0.5 гПа, що дозволяє визначати висоту з точністю до 0.4 метра.
Головне
Барометр у мобільному телефоні — це мініатюрний датчик абсолютного тиску, заснований на MEMS-технології (Micro-Electro-Mechanical Systems). Він вимірює атмосферний тиск у гектопаскалях (гПа), що еквівалентно мілібарам. Перший масовий смартфон з барометром — Samsung Galaxy Note 2 (2012) — запустив тренд на інтеграцію датчика у флагманські пристрої.
Лідери ринку — Bosch Sensortec (серія BMP) і STMicroelectronics (серія LPS). Типовий датчик BMP580 має розмір 2.0×2.0×0.7 мм, споживання 1.3 мкА в режимі низького енергоспоживання та діапазон 300–1250 гПа. Відносна точність становить ±0.08 гПа, що дозволяє фіксувати зміну висоти на 0.7 метра. За даними Datasheet BMP580 (2024), рівень шуму не перевищує 0.2 Па.
| Параметр | Значення |
|---|---|
| Діапазон | 300–1250 гПа |
| Абсолютна точність | ±0.5 гПа |
| Відносна точність | ±0.08 гПа |
| Споживання | 1.3 мкА (low power) |
| Розмір | 2.0×2.0×0.7 мм |
| Інтерфейс | I²C / SPI |
Основна функція — уточнення висоти в навігації. У США Федеральна комісія зі зв'язку (FCC) з 2015 року рекомендує оснащувати смартфони барометрами для покращення точності визначення місцезнаходження при екстрених викликах 911 — вертикальна точність рятує життя в багатоповерхових будівлях.
В основі MEMS-барометра лежить кремнієва діафрагма товщиною 1–3 мікрони, яка прогинається під дією атмосферного тиску. Діафрагма інтегрована з вакуумною порожниною — еталонним тиском. Для вимірювання прогину використовується ємнісний або п'єзорезистивний метод.
У ємнісних датчиках (Bosch BMP) діафрагма служить рухомим електродом конденсатора. При зміні тиску зазор між діафрагмою та нерухомим електродом змінюється на 0.1–1 нм, що викликає зміну ємності на 5–50 фФ. Схема C/V-перетворення (capacitance-to-voltage) підсилює сигнал до рівня, достатнього для 24-бітного АЦП.
MEMS-барометри містять вбудований датчик температури, оскільки тиск газу прямо залежить від температури за законом P = ρRT. Без компенсації зміна температури на 1 °C викликає помилку в 0.1 гПа — еквівалент 0.8 метра висоти. Сучасні датчики використовують калібрувальні коефіцієнти, що зберігаються в OTP-пам'яті (One-Time Programmable), для цифрової корекції в діапазоні від -40 до +85 °C.
GPS визначає висоту на основі трилатерації супутникових сигналів — вертикальна похибка становить 10–30 метрів через геометрію супутників та іоносферні затримки. Барометр дає висоту з точністю 0.5–1 метр за барометричною формулою. У сценаріях з обмеженим оглядом неба (міські каньйони, приміщення) GPS може бути недоступний — барометр працює завжди.
Висота розраховується за формулою: h = (T₀ / L) × (1 − (P / P₀)^(R×L / g)), де T₀ — температура на рівні моря, L — градієнт температури, P — виміряний тиск, P₀ — тиск на рівні моря. Спрощено: зміна тиску на 1 гПа відповідає приблизно 8.4 метра на малих висотах. Для точного розрахунку потрібні дані метеостанцій про P₀.
Сучасні навігаційні системи (Google Maps, Яндекс.Карти) використовують гібридний алгоритм: GPS дає абсолютну висоту з похибкою 15 метрів, барометр — відносну зміну з точністю 0.5 метра. Фільтр Калмана об'єднує обидва сигнали, видаючи висоту з точністю 1–3 метра в реальному часі.
data class BaroReading(
val pressure: Float,
val altitude: Float
)
private val P0_SEA_LEVEL = 1013.25f
fun calculateAltitude(pressure: Float): Float {
return SensorManager.getAltitude(
P0_SEA_LEVEL, pressure
)
}
fun calibratePressure(
gpsAltitude: Float, baroPressure: Float
): Float {
// Калібрування P0 за GPS-висотою
val expectedPressure = P0_SEA_LEVEL *
Math.pow(1f - (0.0065f * gpsAltitude) / 288.15f, 5.255f)
.toFloat()
return P0_SEA_LEVEL * baroPressure / expectedPressure
}
Android надає доступ до барометра через Sensor.TYPE_PRESSURE. Дані повертаються в гектопаскалях (гПа), що еквівалентно мілібарам. Типове значення на рівні моря — близько 1013.25 гПа. Сенсор відноситься до категорії Environmental Sensors — він не потребує калібрування з боку користувача і працює одразу після ініціалізації.
Барометр не потребує високої частоти опитування — SENSOR_DELAY_UI (67 мс) або SENSOR_DELAY_NORMAL (200 мс) цілком достатні. Атмосферний тиск змінюється повільно, максимум на 0.5–1 гПа за годину при зміні погоди або на 1–2 гПа за хвилину при русі в ліфті. Надлишкова частота тільки витрачає батарею.
class BarometerActivity : AppCompatActivity() {
private val sensorManager by lazy {
getSystemService(SENSOR_SERVICE) as SensorManager
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val barometer = sensorManager
.getDefaultSensor(Sensor.TYPE_PRESSURE)
barometer?.let { sensor ->
sensorManager.registerListener(
this, sensor,
SensorManager.SENSOR_DELAY_NORMAL
)
}
}
override fun onSensorChanged(event: SensorEvent) {
val pressure = event.values[0]
val altitude = SensorManager
.getAltitude(1013.25f, pressure)
updateUI(pressure, altitude)
}
}
Не всі Android-пристрої мають барометр — сенсор відсутній у бюджетних моделях і багатьох пристроях середнього сегмента. Перед використанням необхідно перевірити наявність через PackageManager.hasSystemFeature(PackageManager.FEATURE_SENSOR_BAROMETER) або через sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE) — повернення null означає відсутність датчика.
Барометр використовується в широкому спектрі додатків — від метеорології до спортивних трекерів і навігації в приміщеннях. Додаток WeatherPro використовує дані барометра для побудови графіка тиску за 24 години, що дозволяє прогнозувати зміну погоди на 6–12 годин вперед з точністю до 80%.
При зміні погоди атмосферний тиск змінюється на 1–3 гПа за 6–12 годин. Антициклон (область високого тиску) дає значення 1020–1040 гПа, циклон (низький тиск) — 970–1010 гПа. Ці зміни необхідно враховувати при розрахунку висоти: якщо вчора тиск на рівні моря був 1013 гПа, а сьогодні 1025 гПа, похибка визначення висоти без корекції P₀ становитиме близько мінус 100 метрів. Сучасні навігаційні додатки отримують опорний тиск P₀ через інтернет з найближчої метеостанції.
В торгових центрах і аеропортах барометр використовується для визначення поверху, на якому знаходиться користувач. Різниця тиску між поверхами типової будівлі (висота поверху 3–4 метри) становить 0.35–0.5 гПа — цього достатньо для впевненого визначення. Комбінуючи барометр з Wi-Fi-трилатерацією, навігація в приміщенні визначає місцезнаходження з точністю до 5 метрів.
Нове покоління водонепроникних барометрів (Infineon DPS368, 2024) витримує занурення до 10 метрів і має точність ±0.05 гПа. Розвиток MEMS-технологій наближає барометри до точності кварцових еталонів — очікується, що до 2027 року типова похибка знизиться до ±0.2 гПа.
Часті запитання
Перевірити можна через Sensor Test додатки з Google Play. Барометр є у всіх флагманських смартфонах Samsung Galaxy S і Note (починаючи з S3), Google Pixel (всі моделі), iPhone 6 і новіших. У бюджетних моделях датчик зазвичай відсутній.
За барометричною формулою: атмосферний тиск зменшується з висотою. На рівні моря тиск 1013.25 гПа, на висоті 500 метрів — близько 955 гПа. Кожні 8.4 метра підйому знижують тиск приблизно на 1 гПа. Для точності потрібне калібрування за найближчою метеостанцією.
Так, у додатках-метеостанціях. Різке падіння тиску на 3–5 гПа за 3 години вказує на наближення циклону та погіршення погоди. Зростання тиску — ознака покращення. Однак для точного прогнозу потрібні дані метеорологічних служб.
Ні — калібрування відбувається автоматично. Виробники програмують калібрувальні коефіцієнти на заводі. Однак якщо ви живете на висоті 1000+ метрів над рівнем моря, варто вказати опорний тиск у навігаційному додатку для підвищення точності.
SENSOR_DELAY_NORMAL (200 мс) оптимальний — атмосферний тиск змінюється повільно. Для відстеження руху в ліфті достатньо 200 мс. Надлишкова частота (FASTEST) не дає переваги, але збільшує енергоспоживання на 20–30%.
Підсумки
Ми розробимо мобільний застосунок під ключ
IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.
Читайте також