Un baromètre dans un smartphone est un capteur MEMS qui mesure la pression atmosphérique pour déterminer l'altitude et prévoir la météo. Les baromètres modernes enregistrent la pression dans une plage de 300 à 1100 hPa avec une précision de 1 hPa, ce qui correspond à une erreur d'altitude de moins de 1 mètre. Selon Bosch Sensortec BMP580, 2024, la précision absolue des capteurs de pression modernes est de ±0,5 hPa, permettant de déterminer l'altitude avec une précision de 0,4 mètre.
Points clés
Un baromètre dans un téléphone mobile est un capteur de pression absolue miniature basé sur la technologie MEMS (Micro-Electro-Mechanical Systems). Il mesure la pression atmosphérique en hectopascals (hPa), équivalent aux millibars. Le premier smartphone grand public avec baromètre — Samsung Galaxy Note 2 (2012) — a lancé la tendance de l'intégration du capteur dans les appareils phares.
Les leaders du marché sont Bosch Sensortec (série BMP) et STMicroelectronics (série LPS). Un capteur BMP580 typique mesure 2,0×2,0×0,7 mm, consomme 1,3 µA en mode basse consommation et a une plage de 300 à 1250 hPa. La précision relative est de ±0,08 hPa, permettant de détecter des changements d'altitude de 0,7 mètre. Selon la fiche technique BMP580 (2024), le niveau de bruit ne dépasse pas 0,2 Pa.
| Paramètre | Valeur |
|---|---|
| Plage | 300 à 1250 hPa |
| Précision absolue | ±0,5 hPa |
| Précision relative | ±0,08 hPa |
| Consommation | 1,3 µA (basse consommation) |
| Taille | 2,0×2,0×0,7 mm |
| Interface | I²C / SPI |
La fonction principale est d'affiner l'altitude dans la navigation. Aux États-Unis, la Federal Communications Commission (FCC) recommande depuis 2015 d'équiper les smartphones de baromètres pour améliorer la précision de localisation lors des appels d'urgence 911 — la précision verticale sauve des vies dans les immeubles à plusieurs étages.
Au cœur d'un baromètre MEMS se trouve un diaphragme en silicium de 1 à 3 microns d'épaisseur qui se déforme sous la pression atmosphérique. Le diaphragme est intégré à une cavité sous vide — une pression de référence. Pour mesurer la déflexion, on utilise des méthodes capacitives ou piézorésistives.
Dans les capteurs capacitifs (Bosch BMP), le diaphragme agit comme une électrode mobile de condensateur. Lorsque la pression change, l'écart entre le diaphragme et l'électrode fixe varie de 0,1 à 1 nm, provoquant un changement de capacité de 5 à 50 fF. Un circuit de conversion C/V (capacité-tension) amplifie le signal à un niveau suffisant pour un ADC 24 bits.
Les baromètres MEMS contiennent un capteur de température intégré, car la pression du gaz dépend directement de la température selon la loi P = ρRT. Sans compensation, un changement de température de 1 °C provoque une erreur de 0,1 hPa — équivalent à 0,8 mètre d'altitude. Les capteurs modernes utilisent des coefficients de calibrage stockés dans une mémoire OTP (One-Time Programmable) pour une correction numérique dans la plage de -40 à +85 °C.
Le GPS détermine l'altitude par trilatération des signaux satellites — l'erreur verticale est de 10 à 30 mètres en raison de la géométrie des satellites et des retards ionosphériques. Le baromètre fournit l'altitude avec une précision de 0,5 à 1 mètre en utilisant la formule barométrique. Dans les scénarios avec une visibilité limitée du ciel (canyons urbains, intérieurs), le GPS peut être indisponible — le baromètre fonctionne toujours.
L'altitude est calculée à l'aide de la formule : h = (T₀ / L) × (1 − (P / P₀)^(R×L / g)), où T₀ est la température au niveau de la mer, L est le gradient de température, P est la pression mesurée, P₀ est la pression au niveau de la mer. Simplifié : un changement de pression de 1 hPa correspond à environ 8,4 mètres à basse altitude. Le calcul précis nécessite les données des stations météorologiques pour P₀.
Les systèmes de navigation modernes (Google Maps, Yandex Maps) utilisent un algorithme hybride : le GPS fournit l'altitude absolue avec une erreur de 15 mètres, le baromètre fournit le changement relatif avec une précision de 0,5 mètre. Un filtre de Kalman combine les deux signaux, fournissant l'altitude avec une précision de 1 à 3 mètres en temps réel.
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 {
// Calibrage de P0 par altitude GPS
val expectedPressure = P0_SEA_LEVEL *
Math.pow(1f - (0.0065f * gpsAltitude) / 288.15f, 5.255f)
.toFloat()
return P0_SEA_LEVEL * baroPressure / expectedPressure
}
Android donne accès au baromètre via Sensor.TYPE_PRESSURE. Les données sont renvoyées en hectopascals (hPa), équivalent aux millibars. Une valeur typique au niveau de la mer est d'environ 1013,25 hPa. Le capteur appartient à la catégorie des capteurs environnementaux — il ne nécessite pas de calibrage par l'utilisateur et fonctionne immédiatement après l'initialisation.
Le baromètre ne nécessite pas de taux d'interrogation élevé — SENSOR_DELAY_UI (67 ms) ou SENSOR_DELAY_NORMAL (200 ms) sont parfaitement suffisants. La pression atmosphérique change lentement, au maximum 0,5 à 1 hPa par heure avec les changements météorologiques ou 1 à 2 hPa par minute lors d'un déplacement en ascenseur. Une fréquence excessive ne fait que vider la batterie.
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)
}
}
Tous les appareils Android n'ont pas de baromètre — le capteur est absent dans les modèles économiques et de nombreux appareils de milieu de gamme. Avant utilisation, vérifiez la disponibilité via PackageManager.hasSystemFeature(PackageManager.FEATURE_SENSOR_BAROMETER) ou via sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE) — un retour null signifie que le capteur est absent.
Le baromètre est utilisé dans une large gamme d'applications — de la météorologie aux trackers sportifs et à la navigation intérieure. L'application WeatherPro utilise les données du baromètre pour construire un graphique de pression sur 24 heures, permettant de prévoir les changements météorologiques 6 à 12 heures à l'avance avec une précision allant jusqu'à 80%.
Lors des changements météorologiques, la pression atmosphérique change de 1 à 3 hPa en 6 à 12 heures. Un anticyclone (zone de haute pression) donne des valeurs de 1020 à 1040 hPa, un cyclone (basse pression) — 970 à 1010 hPa. Ces changements doivent être pris en compte lors du calcul de l'altitude : si hier la pression au niveau de la mer était de 1013 hPa et aujourd'hui de 1025 hPa, l'erreur de détermination de l'altitude sans correction de P₀ sera d'environ moins 100 mètres. Les applications de navigation modernes obtiennent la pression de référence P₀ via Internet depuis la station météorologique la plus proche.
Dans les centres commerciaux et aéroports, le baromètre est utilisé pour déterminer à quel étage se trouve l'utilisateur. La différence de pression entre les étages d'un bâtiment typique (hauteur d'étage 3 à 4 mètres) est de 0,35 à 0,5 hPa — suffisante pour une détection fiable. En combinant le baromètre avec la trilatération Wi-Fi, la navigation intérieure détermine la position avec une précision allant jusqu'à 5 mètres.
Une nouvelle génération de baromètres étanches (Infineon DPS368, 2024) résiste à l'immersion jusqu'à 10 mètres et a une précision de ±0,05 hPa. Le développement de la technologie MEMS rapproche les baromètres de la précision des étalons à quartz — on s'attend à ce que d'ici 2027, l'erreur typique diminue à ±0,2 hPa.
Questions fréquentes
Vous pouvez vérifier à l'aide d'applications Sensor Test du Google Play. Un baromètre est présent dans tous les smartphones phares Samsung Galaxy S et Note (depuis S3), Google Pixel (tous les modèles), iPhone 6 et plus récents. Dans les modèles économiques, le capteur est généralement absent.
À l'aide de la formule barométrique : la pression atmosphérique diminue avec l'altitude. Au niveau de la mer, la pression est de 1013,25 hPa, à 500 mètres d'altitude — environ 955 hPa. Tous les 8,4 mètres d'ascension réduisent la pression d'environ 1 hPa. Pour la précision, un calibrage par rapport à la station météorologique la plus proche est nécessaire.
Oui, dans les applications de station météo. Une chute brutale de pression de 3 à 5 hPa en 3 heures indique l'approche d'un cyclone et une dégradation du temps. La hausse de la pression est un signe d'amélioration. Cependant, pour une prévision précise, les données des services météorologiques sont nécessaires.
Non — le calibrage se fait automatiquement. Les fabricants programment les coefficients de calibrage en usine. Cependant, si vous vivez à une altitude de plus de 1000 mètres au-dessus du niveau de la mer, il est utile de définir la pression de référence dans l'application de navigation pour une meilleure précision.
SENSOR_DELAY_NORMAL (200 ms) est optimal — la pression atmosphérique change lentement. Pour suivre le mouvement dans un ascenseur, 200 ms suffisent. Une fréquence excessive (FASTEST) n'apporte aucun avantage mais augmente la consommation d'énergie de 20 à 30%.
Résumé
Nous développerons une application mobile clé en main
IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.
Lisez aussi