Smartfondagi barometr — balandlikni aniqlash va ob-havo prognozi üchun atmosfera bosimini o‘lchaydigan MEMS sensor. Zamonaviy barometrlar bosimni 300 dan 1100 hPa gacha bo‘lgan diapazonda 1 hPa aniqlikda qayd etadi, bu esa balandlikni aniqlashda 1 metrdan kam xatolikka to‘g‘ri keladi. Bosch Sensortec BMP580, 2024 ma’lumotlariga ko‘ra, zamonaviy bosim sensorlarining mutlaq aniqligi ±0.5 hPa ni tashkil etadi, bu esa balandlikni 0.4 metr aniqlikda aniqlash imkonini beradi.
Asosiy ma’lumotlar
Barometr mobil telefondagi MEMS texnologiyasiga (Micro-Electro-Mechanical Systems) asoslangan miniatür mutlaq bosim sensoridir. U atmosfera bosimini gektopaskallarda (hPa) o‘lchaydi, bu millibarlarga ekvivalentdir. Barometrli birinchi ommaviy smartfon — Samsung Galaxy Note 2 (2012) — sensorning flagman qurilmalarga integratsiyasi trendini boshlab berdi.
Bozor yetakchilari Bosch Sensortec (BMP seriyasi) va STMicroelectronics (LPS seriyasi) dir. Odatdagi BMP580 sensori 2.0×2.0×0.7 mm o‘lchamga, kam quvvat rejimida 1.3 µA tok iste’moliga va 300–1250 hPa diapazonga ega. Nisbiy aniqlik ±0.08 hPa ni tashkil etadi, bu esa 0.7 metr balandlik o‘zgarishini qayd etish imkonini beradi. BMP580 Datasheet (2024) ma’lumotlariga ko‘ra, shovqin darajasi 0.2 Pa dan oshmaydi.
| Parametr | Qiymat |
|---|---|
| Diapazon | 300–1250 hPa |
| Mutlaq aniqlik | ±0.5 hPa |
| Nisbiy aniqlik | ±0.08 hPa |
| Quvvat iste’moli | 1.3 µA (kam quvvat) |
| O‘lcham | 2.0×2.0×0.7 mm |
| Interfeys | I²C / SPI |
Asosiy funksiya — navigatsiyada balandlikni aniqlashtirish. AQShda Federal Aloqa Komissiyasi (FCC) 2015 yildan boshlab favqulodda 911 qo‘ng‘iroqlarida joyni aniqlash aniqligini yaxshilash üchun smartfonlarni barometr bilan jihozlashni tavsiya qiladi — vertikal aniqlik ko‘p qavatli binolarda hayotni saqlaydi.
MEMS barometrining asosida atmosfera bosimi ta’sirida egiladigan qalinligi 1–3 mikron bo‘lgan kremniyli membrana yotadi. Membrana vakuum bo‘shlig‘i — mos yozuvlar bosimi bilan integratsiyalangan. Egilishni o‘lchash üchun sig‘im yoki pyezorezistiv usul qo‘llaniladi.
Sig‘im sensorlarida (Bosch BMP) membrana kondensatorning harakatlanuvchi elektrodi vazifasini bajaradi. Bosim o‘zgarganda membrana va qo‘zg‘almas elektrod orasidagi masofa 0.1–1 nm ga o‘zgaradi, bu esa sig‘imning 5–50 fF ga o‘zgarishiga sabab bo‘ladi. C/V o‘zgartirgich (capacitance-to-voltage) signalni 24-bitli ADC üchun yetarli darajaga kuchaytiradi.
MEMS barometrlari ichki harorat sensorini o‘z ichiga oladi, chunki gaz bosimi P = ρRT qonuniga ko‘ra to‘g‘ridan-to‘g‘ri haroratga bog‘liq. Kompensatsiyasiz haroratning 1 °C o‘zgarishi 0.1 hPa xatolikka olib keladi — bu 0.8 metr balandlikka teng. Zamonaviy sensorlar -40 dan +85 °C gacha diapazonda raqamli tuzatish üchun OTP (One-Time Programmable) xotirasida saqlanadigan kalibrlash koeffitsiyentlaridan foydalanadi.
GPS balandlikni sun’iy yo‘ldosh signallarining trilateratsiyasi asosida aniqlaydi — sun’iy yo‘ldosh geometriyasi va ionosfera kechikishlari tufayli vertikal xatolik 10–30 metrni tashkil etadi. Barometr barometrik formulaga ko‘ra 0.5–1 metr aniqlikda balandlik beradi. Osmon ko‘rinishi cheklangan stsenariylarda (shahar kanyonlari, yopiq joylar) GPS mavjud bo‘lmasligi mumkin — barometr doimo ishlaydi.
Balandlik formula bo‘yicha hisoblanadi: h = (T₀ / L) × (1 − (P / P₀)^(R×L / g)), bu yerda T₀ — dengiz sathidagi harorat, L — harorat gradienti, P — o‘lchangan bosim, P₀ — dengiz sathidagi bosim. Soddalashtirilgan holda: 1 hPa bosim o‘zgarishi past balandliklarda taxminan 8.4 metrga to‘g‘ri keladi. Aniq hisoblash üchun P₀ haqida meteorologik stansiya ma’lumotlari talab qilinadi.
Zamonaviy navigatsiya tizimlari (Google Maps, Yandex Maps) gibrid algoritmdan foydalanadi: GPS 15 metr xatolik bilan mutlaq balandlikni beradi, barometr — 0.5 metr aniqlikda nisbiy o‘zgarishni. Kalman filtri ikkala signalni birlashtirib, real vaqtda 1–3 metr aniqlikda balandlikni ta’minlaydi.
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 ni GPS balandligi bo‘yicha kalibrlash
val expectedPressure = P0_SEA_LEVEL *
Math.pow(1f - (0.0065f * gpsAltitude) / 288.15f, 5.255f)
.toFloat()
return P0_SEA_LEVEL * baroPressure / expectedPressure
}
Android barometrga Sensor.TYPE_PRESSURE orqali kirishni ta’minlaydi. Ma’lumotlar gektopaskallarda (hPa) qaytariladi, bu millibarlarga ekvivalentdir. Dengiz sathidagi odatdagi qiymat taxminan 1013.25 hPa. Sensor Environmental Sensors toifasiga kiradi — foydalanuvchi tomonidan kalibrlashni talab qilmaydi va ishga tushirilgandan so‘ng darhol ishlaydi.
Barometr yuqori so‘rov chastotasini talab qilmaydi — SENSOR_DELAY_UI (67 ms) yoki SENSOR_DELAY_NORMAL (200 ms) to‘liq yetarli. Atmosfera bosimi sekin o‘zgaradi, maksimal 0.5–1 hPa/soat ob-havo o‘zgarishida yoki 1–2 hPa/daqiqa liftda harakatlanishda. Haddan tashqari chastota faqat batareyani sarflaydi.
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)
}
}
Barcha Android qurilmalarida barometr mavjud emas — sensor byudjet modellarida va o‘rta segmentdagi ko‘plab qurilmalarda yo‘q. Foydalanishdan oldin PackageManager.hasSystemFeature(PackageManager.FEATURE_SENSOR_BAROMETER) yoki sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE) orqali tekshirish kerak — null qaytarilishi sensor yo‘qligini bildiradi.
Barometr keng ko‘lamli ilovalarda qo‘llaniladi — meteorologiyadan tortib sport trekerlari va yopiq joylarda navigatsiyagacha. WeatherPro ilovasi 24 soatlik bosim grafigini qurish üchun barometr ma’lumotlaridan foydalanadi, bu esa ob-havo o‘zgarishini 6–12 soat oldin 80% aniqlikda bashorat qilish imkonini beradi.
Ob-havo o‘zgarishida atmosfera bosimi 6–12 soat ichida 1–3 hPa ga o‘zgaradi. Antitsiklon (yuqori bosim maydoni) 1020–1040 hPa, siklon (past bosim) — 970–1010 hPa qiymatlarni beradi. Bu o‘zgarishlar balandlikni hisoblashda hisobga olinishi kerak: agar kecha dengiz sathidagi bosim 1013 hPa bo‘lsa, bugun 1025 hPa bo‘lsa, P₀ tuzatishisiz balandlikni aniqlash xatoligi taxminan minus 100 metrni tashkil qiladi. Zamonaviy navigatsiya ilovalari P₀ mos yozuvlar bosimini internet orqali eng yaqin ob-havo stansiyasidan oladi.
Savdo markazlari va aeroportlarda barometr foydalanuvchi joylashgan qavatni aniqlash üchun ishlatiladi. Odatdagi binoning qavatlari orasidagi bosim farqi (qavat balandligi 3–4 metr) 0.35–0.5 hPa ni tashkil etadi — bu ishonchli aniqlash üchun yetarli. Barometrni Wi-Fi trilateratsiyasi bilan birlashtirib, yopiq joy navigatsiyasi joyni 5 metrgacha aniqlikda belgilaydi.
Yangi avlod suv o‘tkazmaydigan barometrlari (Infineon DPS368, 2024) 10 metrgacha suvga chidamli va ±0.05 hPa aniqlikka ega. MEMS texnologiyalarining rivojlanishi barometrlarni kvars etalonlarining aniqligiga yaqinlashtiradi — 2027 yilgacha odatdagi xatolik ±0.2 hPa gacha kamayishi kutilmoqda.
Tez-tez beriladigan savollar
Google Play dan Sensor Test ilovasi orqali tekshirishingiz mumkin. Barometr barcha flagman Samsung Galaxy S va Note (S3 dan boshlab), Google Pixel (barcha modellar), iPhone 6 va undan yangi modellarda mavjud. Byudjet modellarida sensor odatda yo‘q.
Barometrik formulaga ko‘ra: atmosfera bosimi balandlik oshishi bilan kamayadi. Dengiz sathida bosim 1013.25 hPa, 500 metr balandlikda — taxminan 955 hPa. Har 8.4 metr ko‘tarilish bosimni taxminan 1 hPa ga kamaytiradi. Aniqlik üchun eng yaqin ob-havo stansiyasiga ko‘ra kalibrlash talab qilinadi.
Ha, ob-havo stansiyasi ilovalarida. 3 soat ichida 3–5 hPa keskin bosim tushishi siklon yaqinlashayotganini va ob-havoning yomonlashishini ko‘rsatadi. Bosimning oshishi yaxshilanish belgisidir. Biroq, aniq prognoz üchun meteorologiya xizmatlari ma’lumotlari talab qilinadi.
Yo‘q — kalibrlash avtomatik amalga oshadi. Ishlab chiqaruvchilar kalibrlash koeffitsiyentlarini zavodda dasturlashtiradi. Agar dengiz sathidan 1000+ metr balandlikda yashasangiz, aniqlikni oshirish üchun navigatsiya ilovasida mos yozuvlar bosimini ko‘rsatishga arziydi.
SENSOR_DELAY_NORMAL (200 ms) optimal — atmosfera bosimi sekin o‘zgaradi. Liftdagi harakatni kuzatish üchun 200 ms yetarli. Haddan tashqari chastota (FASTEST) ustunlik bermaydi, lekin energiya sarfini 20–30% oshiradi.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.