Барометър в мобилните устройства: какво е, видове и как работи

Автор: IT Sectr Публикувано: 2026-03-22 Време за четене: 9 мин

Барометърът в смартфона е MEMS сензор, който измерва атмосферно налягане за определяне на височина и прогноза на времето. Съвременните барометри записват налягане в диапазона 300–1100 hPa с точност 1 hPa, което съответства на грешка в определянето на височина под 1 метър. Според данните на Bosch Sensortec BMP580, 2024, абсолютната точност на съвременните сензори за налягане е ±0,5 hPa, което позволява да се определя височина с точност на 0,4 метра.

Основни моменти

  • Барометър — MEMS сензор за абсолютно налягане, измерващ атмосферно налягане от 300 до 1100 hPa.
  • Висотомер използва барометричната формула: всеки 8 метра издигане намаляват налягането с около 1 hPa.
  • Android API предоставя Sensor.TYPE_PRESSURE за получаване на текущото налягане в hPa (милибари).
  • Калибриране на барометъра става автоматично — сензорът не изисква жестове или действия от потребителя.
  • FCC изисквания в СЩА задължават производителите да инсталират барометър в смартфоните за точно определяне на местоположението при спешни обаждания.

Какво е барометърът в смартфона

Барометър в мобилния телефон е миниатюрен сензор за абсолютно налягане, базиращ се на MEMS технологията (Micro-Electro-Mechanical Systems). Той измерва атмосферното налягане в хектопаскали (hPa), което е еквивалентно на милибари. Първият масов смартфон с барометър — Samsung Galaxy Note 2 (2012) — подхвърли тренда за интеграция на сензора в флагманските устройства.

Технически характеристики на съвременните барометри

Лидерите на пазара са Bosch Sensortec (серия BMP) и STMicroelectronics (серия LPS). Типичен сензор BMP580 има размери 2,0×2,0×0,7 mm, консумация 1,3 µA в режим ниска мощност и обхват 300–1250 hPa. Относителната точност е ±0,08 hPa, което позволява записване на промяна на височината от 0,7 метра. Според Datasheet BMP580 (2024), нивото на шум не надвишава 0,2 Pa.

ПараметърСтойност
Обхват300–1250 hPa
Абсолютна точност±0,5 hPa
Относителна точност±0,08 hPa
Консумация1,3 µA (ниска мощност)
Размери2,0×2,0×0,7 mm
ИнтерфейсI²C / SPI

Защо барометър в телефона

Основната функция — уточняване на височината в навигацията. В СЩА Федералната комисия по комуникациите (FCC) от 2015 г. препоръчва смартфоните да са оборудвани с барометри за подобряване на точността при определяне на местоположението при спешни обаждания 911 — вертикалната точност спасява живот в многоетажни сгради.

Как работи MEMS барометър

В основата на MEMS барометъра стои силициева диафрагма с дебелина 1–3 микрона, която се огъва под действието на атмосферното налягане. Диафрагмата е интегрирана с вакуумна кухијна — референтно налягане. За измерване на огъването се използва капацитивен или пиезорезистивен метод.

Капацитивен принцип на измерване

При капацитивните сензори (Bosch BMP) диафрагмата служи като подвижен електрод на кондензатора. При промяна на налягането, разстоянието между диафрагмата и неподвижния електрод се променя с 0,1–1 nm, което причинява промяна на капацитета от 5–50 fF. C/V преобразувателна верига (capacitance-to-voltage) усилва сигнала до ниво достатъчно за 24-битов ADC.

Температурна компензация

MEMS барометрите съдържат вграден температурен сензор, тъй като налягането на газа зависи прекио от температурата според P = ρRT. Без компензация, промяна на температурата с 1 °C причинява грешка от 0,1 hPa — еквивалент на 0,8 метра височина. Съвременните сензори използват калибрационни коефициенти, съхранени в OTP памет (One-Time Programmable), за цифрова корекция в диапазона от -40 до +85 °C.

Барометър срещу GPS за определяне на височина

GPS определя височината на базата на трилатерация на сателитни сигнали — вертикалната грешка е 10–30 метра поради геометрията на сателитите и йоносферните закъснения. Барометър дава височина с точност 0,5–1 метра според барометричната формула. В сценарии с ограничена видимост на небето (градски кањони, закрити помещения) GPS може да е недостъпен — барометърът работи винаги.

Барометрична формула

Височината се изчислява по формулата: h = (T₀ / L) × (1 − (P / P₀)^(R×L / g)), където T₀ — температура на ниво морето, L — температурен градиент, P — измерено налягане, P₀ — налягане на ниво морето. Опростено: промяна на налягането с 1 hPa съответства на около 8,4 метра при ниски височини. За точно изчисляване са необходими данни от метеорологични станции за P₀.

Хибриден подход

Съвременните навигационни системи (Google Maps, Yandex Maps) използват хибриден алгоритъм: GPS дава абсолютна височина с грешка от 15 метра, барометърът — относителна промяна с точност 0,5 метра. Калмановият филтър комбинира и двата сигнала, предоставяйки височина с точност 1–3 метра в реално време.

kotlin
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

Android предоставя достъп до барометъра чрез Sensor.TYPE_PRESSURE. Данните се връщат в хектопаскали (hPa), което е еквивалентно на милибари. Типичната стойност на ниво морето е около 1013,25 hPa. Сензорът принадлежи към категорията Environmental Sensors — не изисква калибриране от потребителя и работи веднага след инициализация.

Характеристики на регистрацията

Барометърът не изисква висока честота на запитване — SENSOR_DELAY_UI (67 ms) или SENSOR_DELAY_NORMAL (200 ms) са напълно достатъчни. Атмосферното налягане се променя бавно, максимум 0,5–1 hPa на час при смяна на времето или 1–2 hPa на минута при движение в асансъор. Прекалената честота само изпразва батерията.

kotlin
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%.

  • Навигация по етажи — в търговските центрове и летищата барометърът определя промяната на етажа по промяната на налягането. При издигане на 3 метра, налягането намалява с 0,35 hPa.
  • Фитнес трекери — броене на етажи (floor counting) и вертикално нарастване на височината. Приложението Strava използва барометъра за изчисляване на наклона при коленездене.
  • Метеорологични станции — барометричните приложения показват текущото налягане и правят прогноза. Внезапното падане с 3–5 hPa за 3 часа показва приближаващ циклон.
  • Дронове и роботика — стабилизиране на височината на полета на дронове, свързани със смартфон, или мобилни роботи в закрити помещения с разлики в височина.

Влияние на времето върху показанията на барометъра

При смяна на времето, атмосферното налягане се променя с 1–3 hPa за 6–12 часа. Антициклонът (област на високо налягане) дава стойности 1020–1040 hPa, циклонът (ниско налягане) — 970–1010 hPa. Тези промени трябва да се вземат предвид при изчисляването на височината: ако вчера наляганеето на ниво морето е било 1013 hPa, а днес 1025 hPa, грешката при определянето на височината без корекция на P₀ ще бъде около минус 100 метра. Съвременните навигационни приложения получават референтното налягане P₀ през интернет от най-близката метеорологична станция.

Барометър и определяне на местоположението на закрито

В търговските центрове и летищата барометърът се използва за определяне на етажа, на който се намира потребителят. Разликата в налягането между етажите на типична сграда (височина на етажа 3–4 метра) е 0,35–0,5 hPa — достатъчно за надеждно определяне. Чрез комбиниране на барометъра с Wi-Fi трилатерация, навигацията на закрито определя местоположението с точност до 5 метра.

Бъдещето на барометрите

Ново поколение водонепроницаеми барометри (Infineon DPS368, 2024) издръжа потапяне до 10 метра и има точност ±0,05 hPa. Развитието на MEMS технологията доближава барометрите до точността на кварцовите еталони — очаква се, че до 2027 г. типичната грешка ще се понижи до ±0,2 hPa.

Често задавани въпроси

Има ли телефонът ми барометър?

Можете да проверите чрез приложението Sensor Test от Google Play. Барометър има в всички флагмански смартфони Samsung Galaxy S и Note (започнайки от S3), Google Pixel (всички модели), iPhone 6 и по-новите. В бюджетните модели сензорът обикновено липсва.

Как барометърът определя височината?

Според барометричната формула: атмосферното налягане намалява с височината. На ниво морето налягането е 1013,25 hPa, на височина 500 метра — около 955 hPa. Всеки 8,4 метра издигане намалява налягането с около 1 hPa. За точност е необходимо калибриране според най-близката метеорологична станция.

Може ли да се използва барометърът за прогноза на времето?

Да, в приложенията за метеорологични станции. Внезапното падане на налягането с 3–5 hPa за 3 часа показва приближаващ циклон и влошаване на времето. Повишаването на налягането е признак за подобрение. За точна прогноза обаче са необходими данни от метеорологичните служби.

Трябва ли да калибрирам барометъра в телефона?

Не — калибрирането става автоматично. Производителите програмират калибрационните коефициенти в завода. Ако обаче живеете на височина 1000+ метра над морето, струва да зададете референтното налягане в навигационното приложение за повишаване на точността.

Колко често да запитвам барометъра в приложението?

SENSOR_DELAY_NORMAL (200 ms) е оптимален — атмосферното налягане се променя бавно. За проследяване на движението в асансъор, 200 ms са достатъчни. Прекалената честота (FASTEST) не дава предимство, но увеличава консумацията на енергия с 20–30%.

Обобщение

  • Барометър — MEMS сензор за абсолютно налягане с точност ±0,5 hPa за определяне на височина и прогноза на времето.
  • Силициева диафрагма с капацитивно или пиезорезистивно измерване осигурява чувствителност до 0,2 Pa.
  • Барометърът е по-точен от GPS за вертикално позициониране: 0,5–1 m срещу 10–30 m при сателитната навигация.
  • Android API — Sensor.TYPE_PRESSURE с данни в hPa, калибриране от потребителя не е необходимо.
  • Хибридната навигация комбинира GPS и барометър чрез Калманов филтър за точност на височината от 1–3 метра.
  • Приложение включва навигация по етажи, фитнес трекери, метеорологични станции и стабилизиране на дронове.
  • Новото поколение водонепроницаеми барометри достига точност ±0,05 hPa при размер 2×2 mm.

Ще разработим мобилно приложение под ключ

IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.

Обсъдете проекта

Прочетете също