Барометар у смартфону је 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 µA у режиму ниске потрошње и опсег 300–1250 хПа. Релативна прецизност износи ±0.08 хПа, што омогућава бележење промене висине од 0.7 метара. Према подацима Datasheet BMP580 (2024), ниво шума не прелази 0.2 Pa.
| Параметар | Вредност |
|---|---|
| Опсег | 300–1250 хПа |
| Апсолутна прецизност | ±0.5 хПа |
| Релативна прецизност | ±0.08 хПа |
| Потрошња | 1.3 µA (ниска потрошња) |
| Димензије | 2.0×2.0×0.7 мм |
| Интерфејс | I²C / SPI |
Основна функција — прецизирање висине у навигацији. У САД-у, Савезна комисија за комуникације (FCC) од 2015. године препоручује опремање смартфона барометрима за побољшање прецизности одређивања локације при хитним позивима 911 — вертикална прецизност спасава животе у вишеспратним зградама.
У основи MEMS барометра налази се силиконска дијафрагма дебљине 1–3 микрона која се савија под утицајем атмосферског притиска. Дијафрагма је интегрисана са вакуумском шуљином — референтним притиском. За мерење савијања користи се капацитивна или пјезорезистивна метода.
У капацитивним сензорима (Bosch BMP) дијафрагма служи као покретна електрода кондензатора. При промени притиска, размак између дијафрагме и непокретне електроде се мења за 0.1–1 нм, што изазива промену капацитета од 5–50 fF. C/V претварач (capacitance-to-voltage) појачава сигнал до нивоа довољног за 24-битни ADC.
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, Yandex 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. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође