Ang barometer sa smartphone ay isang MEMS sensor na sumusukat ng atmospheric pressure para sa pagtukoy ng altitude at pagtataya ng panahon. Ang mga modernong barometer ay nagtatala ng pressure sa hanay na 300 hanggang 1100 hPa na may katumpakan na 1 hPa, na katumbas ng error sa pagtukoy ng altitude na mas mababa sa 1 metro. Ayon sa datos ng Bosch Sensortec BMP580, 2024, ang absolute accuracy ng mga modernong pressure sensor ay ±0.5 hPa, na nagbibigay-daan sa pagtukoy ng altitude na may katumpakan na 0.4 metro.
Mga Pangunahing Punto
Barometer sa mobile phone ay isang miniature na sensor ng absolute pressure, batay sa MEMS technology (Micro-Electro-Mechanical Systems). Sinusukat nito ang atmospheric pressure sa hectopascals (hPa), na katumbas ng millibars. Ang unang mass-produced na smartphone na may barometer — Samsung Galaxy Note 2 (2012) — ay nagpasimula ng trend ng pagsasama ng sensor sa mga flagship device.
Ang mga lider ng merkado ay Bosch Sensortec (serye BMP) at STMicroelectronics (serye LPS). Ang tipikal na BMP580 sensor ay may sukat na 2.0×2.0×0.7 mm, konsumo ng kuryente na 1.3 µA sa low power mode, at hanay na 300–1250 hPa. Ang relative accuracy ay ±0.08 hPa, na nagbibigay-daan sa pagtatala ng pagbabago ng altitude na 0.7 metro. Ayon sa Datasheet BMP580 (2024), ang antas ng ingay ay hindi lalampas sa 0.2 Pa.
| Parameter | Halaga |
|---|---|
| Hanay | 300–1250 hPa |
| Absolute accuracy | ±0.5 hPa |
| Relative accuracy | ±0.08 hPa |
| Konsumo ng kuryente | 1.3 µA (mababang konsumo) |
| Sukat | 2.0×2.0×0.7 mm |
| Interface | I²C / SPI |
Ang pangunahing function — pagpino ng altitude sa nabigasyon. Sa US, ang Federal Communications Commission (FCC) mula noong 2015 ay nagrerekomenda na magkaroon ng barometer ang mga smartphone para mapabuti ang accuracy ng pagtukoy ng lokasyon sa mga emergency na tawag 911 — ang vertical accuracy ay nagliligtas ng buhay sa mga multi-storey na gusali.
Sa puso ng MEMS barometer ay isang silicon diaphragm na may kapal na 1–3 micron na yumuyuko sa ilalim ng atmospheric pressure. Ang diaphragm ay isinama sa isang vacuum cavity — ang reference pressure. Para sa pagsukat ng pagyuko, ginagamit ang capacitive o piezoresistive na pamamaraan.
Sa capacitive sensors (Bosch BMP) ang diaphragm ay nagsisilbing gumagalaw na electrode ng capacitor. Kapag nagbabago ang pressure, ang gap sa pagitan ng diaphragm at ng nakapirming electrode ay nagbabago ng 0.1–1 nm, na nagdudulot ng pagbabago sa capacitance ng 5–50 fF. Ang C/V converter circuit (capacitance-to-voltage) ay nagpapalakas ng signal sa antas na sapat para sa 24-bit ADC.
Ang MEMS barometers ay naglalaman ng built-in na temperature sensor, dahil ang gas pressure ay direktang nakadepende sa temperatura ayon sa batas P = ρRT. Nang walang compensation, ang pagbabago ng temperatura ng 1 °C ay nagdudulot ng error na 0.1 hPa — katumbas ng 0.8 metro ng altitude. Ang mga modernong sensor ay gumagamit ng calibration coefficients na nakaimbak sa OTP memory (One-Time Programmable) para sa digital correction sa hanay na -40 hanggang +85 °C.
GPS ay tumutukoy ng altitude batay sa trilateration ng satellite signals — ang vertical error ay 10–30 metro dahil sa satellite geometry at ionospheric delays. Barometer ay nagbibigay ng altitude na may accuracy na 0.5–1 metro ayon sa barometric formula. Sa mga scenario na may limitadong view ng langit (urban canyons, indoor), ang GPS ay maaaring hindi available — ang barometer ay laging gumagana.
Ang altitude ay kinakalkula gamit ang formula: h = (T₀ / L) × (1 − (P / P₀)^(R×L / g)), kung saan T₀ — temperatura sa sea level, L — temperature gradient, P — sinusukat na pressure, P₀ — pressure sa sea level. Sa pinasimpleng anyo: ang pagbabago ng pressure na 1 hPa ay katumbas ng humigit-kumulang 8.4 metro sa mababang altitude. Para sa tumpak na pagkalkula, kinakailangan ang datos ng weather station tungkol sa P₀.
Ang mga modernong navigation system (Google Maps, Yandex Maps) ay gumagamit ng hybrid algorithm: GPS ay nagbibigay ng absolute altitude na may error na 15 metro, barometer — relative change na may accuracy na 0.5 metro. Pinagsasama ng Kalman filter ang parehong signal, na nagbibigay ng altitude na may accuracy na 1–3 metro sa real-time.
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 {
// Pagkakalibrate ng P0 batay sa GPS altitude
val expectedPressure = P0_SEA_LEVEL *
Math.pow(1f - (0.0065f * gpsAltitude) / 288.15f, 5.255f)
.toFloat()
return P0_SEA_LEVEL * baroPressure / expectedPressure
}
Ang Android ay nagbibigay ng access sa barometer sa pamamagitan ng Sensor.TYPE_PRESSURE. Ang datos ay ibinabalik sa hectopascals (hPa), na katumbas ng millibars. Ang tipikal na halaga sa sea level ay humigit-kumulang 1013.25 hPa. Ang sensor ay kabilang sa kategoryang Environmental Sensors — hindi ito nangangailangan ng pagkakalibrate ng user at gumagana kaagad pagkatapos ng initialization.
Ang barometer ay hindi nangangailangan ng mataas na polling frequency — SENSOR_DELAY_UI (67 ms) o SENSOR_DELAY_NORMAL (200 ms) ay ganap na sapat. Ang atmospheric pressure ay dahan-dahang nagbabago, maximum na 0.5–1 hPa bawat oras sa pagbabago ng panahon o 1–2 hPa bawat minuto kapag gumagalaw sa elevator. Ang labis na frequency ay nag-aaksaya lamang ng baterya.
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)
}
}
Hindi lahat ng Android device ay may barometer — ang sensor ay wala sa budget models at maraming mid-range device. Bago gamitin, kinakailangang suriin ang pagkakaroon sa pamamagitan ng PackageManager.hasSystemFeature(PackageManager.FEATURE_SENSOR_BAROMETER) o sa pamamagitan ng sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE) — ang pagbabalik ng null ay nangangahulugang walang sensor.
Ang barometer ay ginagamit sa malawak na hanay ng mga application — mula sa meteorology hanggang sa mga sports tracker at indoor navigation. Ang WeatherPro application ay gumagamit ng barometer data para bumuo ng 24-hour pressure graph, na nagbibigay-daan sa paghula ng pagbabago ng panahon 6–12 na oras nang maaga na may accuracy na hanggang 80%.
Sa pagbabago ng panahon, ang atmospheric pressure ay nagbabago ng 1–3 hPa sa loob ng 6–12 na oras. Ang anticyclone (high pressure area) ay nagbibigay ng halagang 1020–1040 hPa, ang cyclone (low pressure) — 970–1010 hPa. Ang mga pagbabagong ito ay dapat isaalang-alang sa pagkalkula ng altitude: kung kahapon ang pressure sa sea level ay 1013 hPa at ngayon ay 1025 hPa, ang error sa pagtukoy ng altitude nang walang correction ng P₀ ay mga minus 100 metro. Ang mga modernong navigation app ay kumukuha ng reference pressure P₀ sa pamamagitan ng internet mula sa pinakamalapit na weather station.
Sa mga shopping center at airport, ang barometer ay ginagamit para matukoy ang palapag kung nasaan ang user. Ang pagkakaiba ng pressure sa pagitan ng mga palapag ng tipikal na gusali (taas ng palapag 3–4 metro) ay 0.35–0.5 hPa — sapat ito para sa maaasahang pagtukoy. Sa pamamagitan ng pagsasama ng barometer sa Wi-Fi trilateration, ang indoor navigation ay tumutukoy ng lokasyon na may accuracy na hanggang 5 metro.
Ang bagong henerasyon ng waterproof barometers (Infineon DPS368, 2024) ay lumalaban sa paglubog hanggang 10 metro at may accuracy na ±0.05 hPa. Ang pag-unlad ng MEMS technology ay naglalapit sa mga barometer sa accuracy ng quartz standards — inaasahan na sa 2027 ang tipikal na error ay bababa sa ±0.2 hPa.
Mga Madalas Itanong
Maaari mong suriin sa pamamagitan ng Sensor Test na application mula sa Google Play. Ang barometer ay nasa lahat ng flagship smartphones na Samsung Galaxy S at Note (simula sa S3), Google Pixel (lahat ng modelo), iPhone 6 at mas bago. Sa mga budget model, karaniwang wala ang sensor.
Ayon sa barometric formula: bumababa ang atmospheric pressure habang tumataas ang altitude. Sa sea level, ang pressure ay 1013.25 hPa, sa altitude na 500 metro — mga 955 hPa. Bawat 8.4 metro ng pagtaas ay nagpapababa ng pressure ng humigit-kumulang 1 hPa. Para sa accuracy, kailangan ang pagkakalibrate batay sa pinakamalapit na weather station.
Oo, sa mga weather station app. Ang biglaang pagbaba ng pressure na 3–5 hPa sa loob ng 3 oras ay nagpapahiwatig ng paparating na cyclone at paglala ng panahon. Ang pagtaas ng pressure ay senyales ng pagbuti. Gayunpaman, para sa tumpak na pagtataya, kinakailangan ang datos mula sa meteorological services.
Hindi — awtomatikong nangyayari ang pagkakalibrate. Ang mga manufacturer ay nagpo-program ng calibration coefficients sa pabrika. Kung nakatira ka sa altitude na 1000+ metro above sea level, makabubuting itakda ang reference pressure sa navigation app para sa mas mataas na accuracy.
SENSOR_DELAY_NORMAL (200 ms) ay optimal — ang atmospheric pressure ay dahan-dahang nagbabago. Para sa pagsubaybay sa paggalaw sa elevator, sapat na ang 200 ms. Ang labis na frequency (FASTEST) ay hindi nagbibigay ng kalamangan, ngunit pinapataas ang konsumo ng enerhiya ng 20–30%.
Buod
Gagawa kami ng mobile application na turnkey
Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.
Basahin din