Akıllı telefondaki barometre, yükseklik belirleme ve hava tahmini için atmosfer basıncını ölçen bir MEMS sensörüdür. Modern barometreler, 300 ila 1100 hPa aralığında 1 hPa doğrulukla basıncı kaydeder; bu, 1 metreden daha az bir yükseklik hatasına karşılık gelir. Bosch Sensortec BMP580, 2024'e göre, modern basınç sensörlerinin mutlak doğruluğu ±0,5 hPa'dır ve 0,4 metre doğrulukla yükseklik belirlemeye olanak tanır.
Önemli Noktalar
Bir mobil telefondaki barometre, MEMS teknolojisine (Mikro-Elektro-Mekanik Sistemler) dayanan minyatür bir mutlak basınç sensörüdür. Atmosfer basıncını hektopaskal (hPa) cinsinden ölçer ve bu milibara eşdeğerdir. Barometreli ilk seri üretim akıllı telefon — Samsung Galaxy Note 2 (2012) — sensörün amiral gemisi cihazlara entegrasyonu trendini başlatmıştır.
Pazar liderleri Bosch Sensortec (BMP serisi) ve STMicroelectronics'tir (LPS serisi). Tipik bir BMP580 sensörü 2,0×2,0×0,7 mm boyutunda, düşük güç modunda 1,3 µA tüketir ve 300–1250 hPa aralığına sahiptir. Bağıl doğruluk ±0,08 hPa'dır ve 0,7 metrelik yükseklik değişikliklerini algılamaya olanak tanır. BMP580 Veri Sayfasına (2024) göre gürültü seviyesi 0,2 Pa'yı geçmez.
| Parametre | Değer |
|---|---|
| Aralık | 300–1250 hPa |
| Mutlak doğruluk | ±0,5 hPa |
| Bağıl doğruluk | ±0,08 hPa |
| Güç tüketimi | 1,3 µA (düşük güç) |
| Boyut | 2,0×2,0×0,7 mm |
| Arayüz | I²C / SPI |
Temel işlev, navigasyonda yüksekliği hassaslaştırmaktır. ABD'de Federal İletişim Komisyonu (FCC), 2015'ten bu yana acil 911 çağrıları sırasında konum doğruluğunu artırmak için akıllı telefonların barometreyle donatılmasını önermektedir — dikey doğruluk çok katlı binalarda hayat kurtarır.
Bir MEMS barometrenin kalbinde, atmosfer basıncı altında bükülen 1–3 mikron kalınlığında bir silikon diyafram bulunur. Diyafram, bir vakum boşluğu — referans basıncı — ile entegre edilmiştir. Sapmayı ölçmek için kapasitif veya piezorezistif yöntemler kullanılır.
Kapasitif sensörlerde (Bosch BMP), diyafram hareketli bir kondansatör elektrodu görevi görür. Basınç değiştiğinde, diyafram ile sabit elektrot arasındaki boşluk 0,1–1 nm değişir ve kapasitansta 5–50 fF'lik bir değişime neden olur. Bir C/V dönüşüm devresi (kapasitans-gerilim), sinyali 24 bitlik bir ADC için yeterli seviyeye yükseltir.
MEMS barometreler, entegre sıcaklık sensörü içerir çünkü gaz basıncı, P = ρRT yasasına göre doğrudan sıcaklığa bağlıdır. Telafi olmadan, 1 °C'lik sıcaklık değişimi 0,1 hPa hataya neden olur — bu da 0,8 metre yüksekliğe eşdeğerdir. Modern sensörler, -40 ile +85 °C aralığında dijital düzeltme için OTP belleğinde (Bir Kez Programlanabilir) depolanan kalibrasyon katsayılarını kullanır.
GPS, uydu sinyallerinin üçgenlenmesiyle yüksekliği belirler — uydu geometrisi ve iyonosferik gecikmeler nedeniyle dikey hata 10–30 metredir. Barometre, barometrik formülü kullanarak 0,5–1 metre doğrulukla yükseklik sağlar. Sınırlı gökyüzü görüşü olan senaryolarda (şehir kanyonları, iç mekanlar), GPS mevcut olmayabilir — barometre her zaman çalışır.
Yükseklik şu formülle hesaplanır: h = (T₀ / L) × (1 − (P / P₀)^(R×L / g)), burada T₀ deniz seviyesindeki sıcaklık, L sıcaklık gradyanı, P ölçülen basınç, P₀ deniz seviyesi basıncıdır. Basitleştirilmiş: 1 hPa'lık basınç değişimi, düşük rakımlarda yaklaşık 8,4 metreye karşılık gelir. Doğru hesaplama için P₀ için hava durumu istasyonu verileri gerekir.
Modern navigasyon sistemleri (Google Haritalar, Yandex Haritalar) hibrit algoritma kullanır: GPS, 15 metre hatayla mutlak yükseklik sağlar, barometre ise 0,5 metre doğrulukla bağıl değişim sağlar. Bir Kalman filtresi her iki sinyali birleştirerek gerçek zamanlı olarak 1–3 metre doğrulukla yükseklik verir.
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 {
// GPS yüksekliğine göre P0 kalibrasyonu
val expectedPressure = P0_SEA_LEVEL *
Math.pow(1f - (0.0065f * gpsAltitude) / 288.15f, 5.255f)
.toFloat()
return P0_SEA_LEVEL * baroPressure / expectedPressure
}
Android, barometreye Sensor.TYPE_PRESSURE aracılığıyla erişim sağlar. Veriler hektopaskal (hPa) cinsinden döndürülür, milibara eşdeğerdir. Deniz seviyesinde tipik bir değer yaklaşık 1013,25 hPa'dır. Sensör, Çevresel Sensörler kategorisine aittir — kullanıcı kalibrasyonu gerektirmez ve başlatmadan hemen sonra çalışır.
Barometre yüksek bir sorgulama hızı gerektirmez — SENSOR_DELAY_UI (67 ms) veya SENSOR_DELAY_NORMAL (200 ms) tamamen yeterlidir. Atmosfer basıncı yavaş değişir, hava değişikliklerinde saatte en fazla 0,5–1 hPa veya asansörde hareket ederken dakikada 1–2 hPa. Aşırı frekans yalnızca pili tüketir.
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)
}
}
Tüm Android cihazlarda barometre bulunmaz — sensör, bütçe modellerinde ve birçok orta sınıf cihazda yoktur. Kullanmadan önce, PackageManager.hasSystemFeature(PackageManager.FEATURE_SENSOR_BAROMETER) veya sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE) aracılığıyla kullanılabilirliği kontrol edin — null dönmesi sensörün olmadığı anlamına gelir.
Barometre, meteorolojiden spor takipçilerine ve iç mekan navigasyonuna kadar geniş bir uygulama yelpazesinde kullanılır. WeatherPro uygulaması, 24 saatlik basınç grafiği oluşturmak için barometre verilerini kullanır ve %80'e varan doğrulukla 6–12 saat öncesinden hava değişikliklerini tahmin etmeye olanak tanır.
Hava değişiklikleri sırasında atmosfer basıncı 6–12 saatte 1–3 hPa değişir. Bir antisiklon (yüksek basınç alanı) 1020–1040 hPa, bir siklon (düşük basınç) ise 970–1010 hPa değerleri verir. Yükseklik hesaplanırken bu değişiklikler dikkate alınmalıdır: dün deniz seviyesi basıncı 1013 hPa ve bugün 1025 hPa ise, P₀ düzeltmesi olmadan yükseklik belirleme hatası yaklaşık eksi 100 metre olacaktır. Modern navigasyon uygulamaları, referans basıncı P₀'yı internet üzerinden en yakın hava durumu istasyonundan alır.
Alışveriş merkezlerinde ve havalimanlarında barometre, kullanıcının hangi katta olduğunu belirlemek için kullanılır. Tipik bir binanın katları arasındaki basınç farkı (kat yüksekliği 3–4 metre) 0,35–0,5 hPa'dır — güvenilir tespit için yeterlidir. Barometreyi Wi-Fi üçgenlemesiyle birleştiren iç mekan navigasyonu, konumu 5 metreye kadar doğrulukla belirler.
Yeni nesil su geçirmez barometreler (Infineon DPS368, 2024) 10 metreye kadar daldırmaya dayanır ve ±0,05 hPa doğruluğa sahiptir. MEMS teknolojisinin gelişimi, barometreleri kuvars standartlarının doğruluğuna yaklaştırıyor — 2027 yılına kadar tipik hatanın ±0,2 hPa'ya düşmesi bekleniyor.
Sıkça Sorulan Sorular
Google Play'deki Sensor Test uygulamalarıyla kontrol edebilirsiniz. Tüm amiral gemisi Samsung Galaxy S ve Note akıllı telefonlarda (S3'ten itibaren), Google Pixel (tüm modeller), iPhone 6 ve sonrasında barometre bulunur. Bütçe modellerinde sensör genellikle yoktur.
Barometrik formülü kullanarak: atmosfer basıncı yükseklikle azalır. Deniz seviyesinde basınç 1013,25 hPa, 500 metre yükseklikte — yaklaşık 955 hPa'dır. Her 8,4 metrelik yükseliş basıncı yaklaşık 1 hPa azaltır. Doğruluk için en yakın hava durumu istasyonuna göre kalibrasyon gerekir.
Evet, hava istasyonu uygulamalarında. 3 saatte 3–5 hPa'lık keskin basınç düşüşü, yaklaşan bir siklon ve kötüleşen havayı gösterir. Basıncın yükselmesi iyileşme işaretidir. Ancak doğru tahmin için meteoroloji servis verileri gerekir.
Hayır — kalibrasyon otomatik olarak gerçekleşir. Üreticiler kalibrasyon katsayılarını fabrikada programlar. Ancak deniz seviyesinden 1000+ metre yükseklikte yaşıyorsanız, daha iyi doğruluk için navigasyon uygulamasında referans basıncını ayarlamaya değer.
SENSOR_DELAY_NORMAL (200 ms) idealdir — atmosfer basıncı yavaş değişir. Asansör hareketini izlemek için 200 ms yeterlidir. Aşırı frekans (FASTEST) avantaj sağlamaz ancak güç tüketimini %20–30 artırır.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun