Smartfondakı barometr hündürlüyü təyin etmək və hava proqnozu üçün atmosfer təzyiqini ölçən MEMS sensorudur. Müasir barometrlər 300-dən 1100 hPa-dək təzyiq diapazonunu 1 hPa dəqiqliklə qeyd edir, bu da hündürlüyün təyinində 1 metrdən az xətaya uyğundur. Bosch Sensortec BMP580, 2024 məlumatlarına görə, müasir təzyiq sensorlarının mütləq dəqiqliyi ±0.5 hPa təşkil edir, bu da hündürlüyü 0.4 metr dəqiqliklə təyin etməyə imkan verir.
Başlıca məqamlar
Barometr mobil telefondakı MEMS texnologiyasına (Micro-Electro-Mechanical Systems) əsaslanan miniatür mütləq təzyiq sensorudur. Atmosfer təzyiqini hektopaskallarla (hPa) ölçür, bu da milibarlara ekvivalentdir. Barometrli ilk küçəli istehsal smartfonu — Samsung Galaxy Note 2 (2012) — sensorun flaqman cihazlara inteqrasiyası trendinə başladı.
Bazar liderləri Bosch Sensortec (BMP seriyası) və STMicroelectronics (LPS seriyası)dır. Tipik BMP580 sensoru 2.0×2.0×0.7 mm ölçüyə, aşağı enerji sərfində 1.3 µA cərəyan istehlakına və 300–1250 hPa diapazona malikdir. Nisbi dəqiqlik ±0.08 hPa təşkil edir, bu da 0.7 metr hündürlük dəyişikliyini qeyd etməyə imkan verir. BMP580 Datasheet (2024) məlumatlarına görə, səs-küü səviyyəsi 0.2 Pa-dan çox deyil.
| Parametr | Dəyər |
|---|---|
| Diapazon | 300–1250 hPa |
| Mütləq dəqiqlik | ±0.5 hPa |
| Nisbi dəqiqlik | ±0.08 hPa |
| Enerji istehlakı | 1.3 µA (aşağı enerji) |
| Ölçülər | 2.0×2.0×0.7 mm |
| Interfeys | I²C / SPI |
Əsas funksiya — naviqasiyada hündürlüyün dəqiqləşdirilməsi. ABŞ-da Federal Rabitə Komissiyası (FCC) 2015-ci ildən etibarən təcili 911 zənglərində yerin müyyənləşdirilməsinin dəqiqliyini yaxşılaşdırmaq üçün smartfonların barometrlə təchiz edilməsini tövsiyə edir — şaquli dəqiqlik çoxmərtəbəli binalarda həyat xilas edir.
MEMS barometrinin əsasında atmosfer təzyiqinin təsiri altında əyilən qalınlığı 1–mikron olan silikon membran dayanır. Membran vakuum boşluğu ilə — istinad təzyiqi ilə inteqrasiya olunub. Ɖyilməni ölçmək üçün tutum və ya pyezorezistiv metoddan istifadə olunur.
Tutum sensorlarında (Bosch BMP) membran kondensatorun hərəkətli elektrodu rolunu oynayır. Təzyiq dəyişdikdə membranla stasionar elektrod arasındakı boşluq 0.1–1 nm dəyişir, bu da tutumun 5–50 fF dəyişməsinə səbəb olur. C/V çevirici dövrəsi (capacitance-to-voltage) siqnalı 24-bitlik ADC üçün kifayət səviyyəyə qədər gücləndirir.
MEMS barometrləri daxili temperatur sensoru ehtiva edir, çünki qaz təzyiqi P = ρRT qanununa görə birbaşa temperaturdan asılıdır. Kompensasiya olmadan temperaturun 1 °C dəyişməsi 0.1 hPa xətaya səbəb olur — bu da 0.8 metr hündürlüyə bərabərdir. Müasir sensorlar -40-dan +85 °C-dək diapazonda rəqəmsal korreksiya üçün OTP (One-Time Programmable) yaddaşında saxlanılan kalibrləşmə əmsallarından istifadə edir.
GPS peyk siqnallarının trilaterasiyası əsasında hündürlüyü təyin edir — peyk həndəsəsi və ionosfer gecikmələri səbəbindən şaquli xəta 10–30 metr təşkil edir. Barometr barometrik düstura görə 0.5–1 metr dəqiqliklə hündürlük verir. Göyün məhdud göründüyü ssenarilərdə (şəhər kanyonları, qapalı məkanlar) GPS əlçatmaz ola bilər — barometr həmişə işləyir.
Hündürlük düsturla hesablanır: h = (T₀ / L) × (1 − (P / P₀)^(R×L / g)), burada T₀ — dəniz səviyyəsində temperatur, L — temperatur qradiyenti, P — ölçülmüş təzyiq, P₀ — dəniz səviyyəsində təzyiq. Sadələşdirilmiş şəkildə: 1 hPa təzyiq dəyişikliyi alçaq hündürlüklərdə təxminən 8.4 metrə uyğundur. Dəqiq hesablama üçün P₀ haqqında meteoroloji stansiya məlumatları tələb olunur.
Müasir naviqasiya sistemləri (Google Maps, Yandex Maps) hibrid alqoritmdən istifadə edir: GPS 15 metr xəta ilə mütləq hündürlük verir, barometr — 0.5 metr dəqiqliklə nisbi dəyişiklik. Kalman filtri hər iki siqnalı birləşdirərək real vaxtda 1–3 metr dəqiqliklə hündürlük təmin edir.
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 kalibrləşməsi GPS hündürlüyünə görə
val expectedPressure = P0_SEA_LEVEL *
Math.pow(1f - (0.0065f * gpsAltitude) / 288.15f, 5.255f)
.toFloat()
return P0_SEA_LEVEL * baroPressure / expectedPressure
}
Android barometrə Sensor.TYPE_PRESSURE vasitəsilə giriş təmin edir. Məlumatlar hektopaskallarla (hPa) qaytarılır, bu da milibarlara ekvivalentdir. Dəniz səviyyəsində tipik dəyər təxminən 1013.25 hPa-dır. Sensor Environmental Sensors kateqoriyasına aiddir — istifadəçidən kalibrləşmə tələb etmir və işə salındıqdan dərhal sonra işləyir.
Barometr yüksək sorğu tezliyi tələb etmir — SENSOR_DELAY_UI (67 ms) və ya SENSOR_DELAY_NORMAL (200 ms) tamamilə kifayətdir. Atmosfer təzyiqi yavaş dəyişir, maksimum 0.5–1 hPa/saat hava dəyişikliyində və ya 1–2 hPa/dəqiqə liftdə hərəkət zamanı. Həddindən artıq tezlik yalnız batareyanı boşaldır.
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)
}
}
Bütün Android cihazlarında barometr yoxdur — sensor büdcə modellərdə və orta seqmentin bir çox cihazlarında yoxdur. İstifadədən əvvəl PackageManager.hasSystemFeature(PackageManager.FEATURE_SENSOR_BAROMETER) və ya sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE) vasitəsilə yoxlamaq lazımdır — null qayıtması sensorun olmaması deməkdir.
Barometr geniş tətbiq spektrində istifadə olunur — meteorologiyadan idman trekerlərinə və qapalı məkanlarda naviqasiyaya qədər. WeatherPro tətbiqi 24 saatlıq təzyiq qrafiki qurmaq üçün barometr məlumatlarından istifadə edir, bu da havanın dəyişməsini 6–12 saat qabaqdan 80% dəqiqliklə proqnozlaşdırmağa imkan verir.
Hava dəyişikliyi zamanı atmosfer təzyiqi 6–12 saat ərzində 1–3 hPa dəyişir. Antisiklon (yüksək təzyiq sahəsi) 1020–1040 hPa, siklon (aşağı təzyiq) — 970–1010 hPa dəyərlər verir. Bu dəyişikliklər hündürlük hesablanarkən nəzərə alınmalıdır: dünən dəniz səviyyəsində təzyiq 1013 hPa idisə, bu gün 1025 hPa-dırsa, P₀ korreksiyasız hündürlük təyin xətası təxminən mənfi 100 metr olacaq. Müasir naviqasiya tətbiqləri P₀ istinad təzyiqini internet vasitəsilə ən yaxın hava stansiyasından alır.
Ticarət mərkəzlərində və hava limanlarında barometr istifadəçinin olduğu mərtəbəni təyin etmək üçün istifadə olunur. Tipik binanın mərtəbələri arasındakı təzyiq fərqi (mərtəbə hündürlüyü 3–4 metr) 0.35–0.5 hPa təşkil edir — bu, etibarlı müyyənləşdirmə üçün kifayətdir. Barometri Wi-Fi trilaterasiyası ilə birləşdirərək, qapalı məkan naviqasiyası yeri 5 metrə qədər dəqiqliklə təyin edir.
Yeni nəsil suyɑ keçirməyən barometrlər (Infineon DPS368, 2024) 10 metrə qədər dalmaya davam gətirir və ±0.05 hPa dəqiqliyə malikdir. MEMS texnologiyalarının inkişafı barometrləri kvars etalonlarının dəqiqliyinə yaxınlaşdırır — 2027-ci ilə qədər tipik xətanın ±0.2 hPa-dək azalacağı gözlənilir.
Tez-tez verilən suallar
Google Play-dən Sensor Test tətbiqi ilə yoxlaya bilərsiniz. Barometr bütün flaqman Samsung Galaxy S və Note (S3-dən başlayaraq), Google Pixel (bütün modellər), iPhone 6 və daha yeni modellərdə var. Büdcə modellərdə sensor adətən yoxdur.
Barometrik düstura görə: atmosfer təzyiqi hündürlük artdıqca azalır. Dəniz səviyyəsində təzyiq 1013.25 hPa, 500 metr hündürlükdə — təxminən 955 hPa-dır. Hər 8.4 metr qalxış təzyiqi təxminən 1 hPa azaldır. Dəqiqlik üçün ən yaxın hava stansiyası üzrə kalibrləşmə tələb olunur.
Bəli, hava stansiyası tətbiqlərində. 3 saat ərzində 3–5 hPa kəskin təzyiq düşməsi siklonun yaxınlaşdığını və havanın pisləşəcəyini göstərir. Təzyiqin artması yaxşılaşma əlamətidir. Lakin dəqiq proqnoz üçün meteoroloji xidmətlərin məlumatları tələb olunur.
Xeyr — kalibrləşmə avtomatik baş verir. İstehsalçılar kalibrləşmə əmsallarını zavodda proqramlaşdırır. Ancaq dəniz səviyyəsindən 1000+ metr yüksəkdə yaşayırsınızsa, dəqiqliyi artırmaq üçün naviqasiya tətbiqində istinad təzyiqini göstərməyə dəyər.
SENSOR_DELAY_NORMAL (200 ms) optimaldır — atmosfer təzyiqi yavaş dəyişir. Liftdə hərəkəti izləmək üçün 200 ms kifayətdir. Həddindən artıq tezlik (FASTEST) üstünlük vermir, lakin enerji istehlakını 20–30% artırır.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun