Barometr v chytrém telefonu je MEMS senzor, který měří atmosférický tlak pro určení výšky a předpověď počasí. Moderní barometry zaznamenávají tlak v rozsahu 300 až 1100 hPa s přesností 1 hPa, což odpovídá chybě určení výšky menší než 1 metr. Podle údajů Bosch Sensortec BMP580, 2024 je absolutní přesnost moderních snímačů tlaku ±0,5 hPa, což umožňuje určit výšku s přesností 0,4 metru.
Hlavní body
Barometr v mobilním telefonu je miniaturní senzor absolutního tlaku založený na MEMS technologii (Micro-Electro-Mechanical Systems). Měří atmosférický tlak v hektopascalech (hPa), což je ekvivalentní milibarům. Prvním masově vyráběným chytrým telefonem s barometrem — Samsung Galaxy Note 2 (2012) — odstartoval trend integrace senzoru do vlajkových zařízení.
Lidry trhu jsou Bosch Sensortec (série BMP) a STMicroelectronics (série LPS). Typický senzor BMP580 má rozměry 2,0×2,0×0,7 mm, odběr proudu 1,3 µA v režimu nízké spotřeby a rozsah 300–1250 hPa. Relativní přesnost je ±0,08 hPa, což umožňuje zaznamenat změnu výšky 0,7 metru. Podle Datasheet BMP580 (2024) úroveň šumu nepřesahuje 0,2 Pa.
| Parametr | Hodnota |
|---|---|
| Rozsah | 300–1250 hPa |
| Absolutní přesnost | ±0,5 hPa |
| Relativní přesnost | ±0,08 hPa |
| Spotřeba | 1,3 µA (nízká spotřeba) |
| Rozměry | 2,0×2,0×0,7 mm |
| Rozhraní | I²C / SPI |
Hlavní funkce — zpřesnění výšky v navigaci. V USA od roku 2015 Federal Communications Commission (FCC) doporučuje vybavit chytré telefony barometry pro zlepšení přesnosti určení polohy při nouzových voláních 911 — vertikální přesnost zachraňuje životy ve vícepatrových budovách.
Základem MEMS barometru je křemíková membrána o tloušťce 1–3 mikronů, která se ohýbá působením atmosférického tlaku. Membrána je integrována s vakuovou dutinou — referenčním tlakem. Pro měření ohybu se používá kapacitní nebo piezorezistivní metoda.
U kapacitních snímačů (Bosch BMP) slouží membrána jako pohyblivá elektroda kondenzátoru. Při změně tlaku se mezera mezi membránou a pevnou elektrodou mění o 0,1–1 nm, což způsobuje změnu kapacity o 5–50 fF. Obvod C/V převodníku (capacitance-to-voltage) zesiluje signál na úoveň dostatečnou pro 24bitový ADC.
MEMS barometry obsahují vestavěný teplotní senzor, protože tlak plynu závisí přímo na teplotě podle zákona P = ρRT. Bez kompenzace způsobí změna teploty o 1 °C chybu 0,1 hPa — ekvivalent 0,8 metru výšky. Moderní senzory používají kalibrační koeficienty uložené v OTP paměti (One-Time Programmable) pro digitální korekci v rozsahu od -40 do +85 °C.
GPS určuje výšku na základě trilaterace družicových signálů — vertikální chyba je 10–30 metrů kvůli geometrii družic a ionosférickým zpožděním. Barometr poskytuje výšku s přesností 0,5–1 metru podle barometrického vzorce. Ve scénářích s omezeným výhledem na oblohu (městské kaňony, vnitřní prostory) může být GPS nedostupný — barometr funguje vždy.
Výška se vypočítává vzorcem: h = (T₀ / L) × (1 − (P / P₀)^(R×L / g)), kde T₀ — teplota na hladině moře, L — teplotní gradient, P — naměřený tlak, P₀ — tlak na hladině moře. Zjednodušeně: změna tlaku o 1 hPa odpovídá přibližně 8,4 metrům v nízkých výškách. Pro přesný výpočet jsou nutná data meteorologických stanic o P₀.
Moderní navigační systémy (Google Maps, Yandex Maps) používají hybridní algoritmus: GPS poskytuje absolutní výšku s chybou 15 metrů, barometr — relativní změnu s přesností 0,5 metru. Kalmanův filtr kombinuje oba signály a poskytuje výšku s přesností 1–3 metrů v reálném čase.
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 {
// Kalibrace P0 podle GPS výšky
val expectedPressure = P0_SEA_LEVEL *
Math.pow(1f - (0.0065f * gpsAltitude) / 288.15f, 5.255f)
.toFloat()
return P0_SEA_LEVEL * baroPressure / expectedPressure
}
Android poskytuje přístup k barometru prostřednictvím Sensor.TYPE_PRESSURE. Data jsou vracena v hektopascalech (hPa), což je ekvivalentní milibarům. Typická hodnota na hladině moře je přibližně 1013,25 hPa. Senzor patří do kategorie Environmental Sensors — nevyžaduje kalibraci uživatelem a funguje ihned po inicializaci.
Barometr nevyžaduje vysokou frekvenci dotazování — SENSOR_DELAY_UI (67 ms) nebo SENSOR_DELAY_NORMAL (200 ms) jsou zcela dostačující. Atmosférický tlak se mění pomalu, maximálně 0,5–1 hPa za hodinu při změně počasí nebo 1–2 hPa za minutu při pohybu ve výtahu. Nadměrná frekvence pouze plýtvá baterií.
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)
}
}
Ne všechna zařízení s Androidem mají barometr — senzor chybí v levných modelech a mnoha zařízeních střední třídy. Před použitím je třeba zkontrolovat přítomnost pomocí PackageManager.hasSystemFeature(PackageManager.FEATURE_SENSOR_BAROMETER) nebo sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE) — návrat null znamená absenci senzoru.
Barometr se používá v široké škále aplikací — od meteorologie po sportovní trackery a navigaci v interiéru. Aplikace WeatherPro využívá data barometru k vytvoření 24hodinového grafu tlaku, což umožňuje předpovědět změnu počasí 6–12 hodin předem s přesností až 80%.
Při změně počasí se atmosférický tlak mění o 1–3 hPa během 6–12 hodin. Anticyklóna (oblast vysokého tlaku) dává hodnoty 1020–1040 hPa, cyklóna (nízký tlak) — 970–1010 hPa. Tyto změny je třeba zohlednit při výpočtu výšky: pokud včera byl tlak na hladině moře 1013 hPa a dnes 1025 hPa, chyba určení výšky bez korekce P₀ bude přibližně minus 100 metrů. Moderní navigační aplikace získávají referenční tlak P₀ prostřednictvím internetu z nejbližší meteorologické stanice.
V obchodních centrech a na letištích se barometr používá k určení patra, na kterém se uživatel nachází. Rozdíl tlaku mezi patry typické budovy (výška patra 3–4 metry) je 0,35–0,5 hPa — dostatečný pro spolehlivé určení. Kombinací barometru s Wi-Fi trilaterací určuje navigace v interiéru polohu s přesností až 5 metrů.
Nová generace vodotěsných barometrů (Infineon DPS368, 2024) odolá ponoření do 10 metrů a má přesnost ±0,05 hPa. Rozvoj MEMS technologie přibližuje barometry přesnosti křemenných etalonů — očekává se, že do roku 2027 typická chyba klesne na ±0,2 hPa.
Často kladené otázky
Můžete zkontrolovat pomocí aplikace Sensor Test z Google Play. Barometr je ve všech vlajkových chytrých telefonech Samsung Galaxy S a Note (počínaje S3), Google Pixel (všechny modely), iPhone 6 a novějších. V levných modelech senzor obvykle chybí.
Podle barometrického vzorce: atmosférický tlak klesá s výškou. Na hladině moře je tlak 1013,25 hPa, ve výšce 500 metrů — přibližně 955 hPa. Každých 8,4 metru stoupání sníží tlak o přibližně 1 hPa. Pro přesnost je nutná kalibrace podle nejbližší meteorologické stanice.
Ano, v aplikacích meteorologických stanic. Náhlý pokles tlaku o 3–5 hPa za 3 hodiny naznačuje blížící se cyklónu a zhoršení počasí. Růst tlaku je známkou zlepšení. Pro přesnou předpověď jsou však nutná data meteorologických služeb.
Ne — kalibrace probíhá automaticky. Výrobci naprogramují kalibrační koeficienty v továrně. Pokud však žijete ve výšce 1000+ metrů nad mořem, vyplatí se nastavit referenční tlak v navigační aplikaci pro vyšší přesnost.
SENSOR_DELAY_NORMAL (200 ms) je optimální — atmosférický tlak se mění pomalu. Pro sledování pohybu ve výtahu stačí 200 ms. Nadměrná frekvence (FASTEST) nepřináší výhodu, ale zvyšuje spotřebu energie o 20–30%.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také