Modifications

Sauter à la navigation Sauter à la recherche
1 494 octets ajoutés ,  22 octobre 2021 à 01:00
Ligne 1 : Ligne 1 :  
{{ENG-CANSAT-NAV}}
 
{{ENG-CANSAT-NAV}}
 +
 +
== About the BMP280 breakout ==
 +
The BMP280 sensor can measure the atmospheric pressure and temperature (because the temperature also impact the sensor physics).
 +
 +
The BMP280 is a Bosch sensor upgraded from the BMP085/BMP180/BMP183 serie. This sensor is really great to make environmental or weather measurements. Best of all, it can be used over an I2C or a SPI bus!
 +
 +
[[fichier:BMP280.jpg|250px]]
 +
 +
It is one of the best sensor, it offer good accuracy for an affordable price. The accuracy is ±1 hPa for the pressure and ±1.0°C for the temperature. This sensor is not really made to measure the temperature but you can estimate its range with the BMP280.
 +
 +
As the pressure also change with the altitude, the sensor accuracy allows you to use the BMP280 to make an altimeter (with accuracy of ±1m at worste, about 0.25m in best conditions).
 +
 +
To ease the usage of this sensor, the SMD component is solder on a breakout board with some additional passive electronics. The board also bring a level shifter and 3V voltage regulator so it is save for 3V and 5V logic microcontrolers.
 +
 +
=== technical details ===
 +
* [https://df.mchobby.be/datasheet/bmp280.pdf Fiche technique du BMP280] (Bosch, pdf)
 +
* Size: 19.2mm x 17.9mm x 2.9mm
 +
* weight: 1.3 gr
    
== Install the Library ==
 
== Install the Library ==
Ligne 160 : Ligne 178 :  
It is quite easy to know the current sea level pressure by using an Internet Weather Broadcast like [http://www.meteobelgique.be/observations/temps-reel/stations-meteo.html this link to meteobelgique.be]
 
It is quite easy to know the current sea level pressure by using an Internet Weather Broadcast like [http://www.meteobelgique.be/observations/temps-reel/stations-meteo.html this link to meteobelgique.be]
   −
=== Le senseur ne me donne pas la bonne altitude! ===
+
=== The sensor doesn't give the right altitude! ===
Mon senseur m'indique une altitude à 189m alors que le site météorologique, à deux pas de chez moi, est à 120m de haut (en haut de la tour du service d'incendie)!  
+
 
 +
My sensor does indicates an altitude of 189m whereas the reference weather station (next to house) is known to be at 120m height (at the top of the tower)! What's wrong with the sensor?
   −
L'altitude peut être déduite de la différence entre la pression atmosphérique locale et la pression atmospherique au niveau de la mer.
+
The altitude is deduced from the difference of local pressure and pressure at the sea level.
   −
Pour relever votre altitude avec précision avec un BMP180, vous devez connaître la pression au niveau de la mer (''baseline'') avec la même précision.  
+
If you want to obtain an accurate altitude value with the BMP280 then you need to know the pressure at the sea level (''the baseline'') with precision.  
   −
Une fois la pression de la baseline corrigée avec:
+
Once the baseline value corrected, you will have the correct altitude:
   −
  bmp180.baseline = 100200 # Pression du jour au niveau de la mer (multiplier par 100)
+
  bme.readAltitude(1002.00)
   −
mon senseur retourne une altitude de 104m, nettement plus convenable.
+
The sensor would return the right altitude (104m) for the sensor which is quite good since we are not in the tower (like the reference weather station).
   −
=== La pression atmosphérique semble incorrecte! ===
+
=== The pressure is not correct atmosphérique semble incorrecte! ===
Mon senseur retourne la valeur de 98909 (soit 989.09 hPa) alors que la station météo de référence indique 1002 hPa!
+
My sensor returned a pressure of 98909 pascal (so 989.09 hPa) whereas the reference weather station does mentino 1002 hPa!
   −
Dans l'absolu, la valeur est bonne mais pas ne tient pas compte de la normalisation/compensation PNM appliqué par la station de référence.
+
The sensor value is right, it just not apply the correction to indicates the Normalized SLP pressure (equivalent pressure at the sea level). The reference {{underline|reference}} weather station does applies this correction for yo (so they displays normalized SLP).
   −
Nous allons faire ce petit calcul ensemble...
+
Let's do the correction on the value...
   −
{{underline|Pour commencer:}} vous aurez lu les points précédents et vous savez donc :
+
{{underline|First:}} read the preceding point, from it we know :
* Faites en sorte que la pression au niveau de la mer corresponde à la valeur du jour (baseline=100200)
+
* that we have to set the baseline to the current pressure at day's sea level pressure (baseline=100200)
* Ceci fait, relevez votre altitude à l'aide du senseur (le mienne est de 104 m)
+
* once done, we can use the sensor to calculate the current altitude of the sensor (in our case, it is 104 m)
* La pression diminue de 1hPa chaque fois que l'on monte en altitude de 8.3m .
+
* the pressure decrease of 1hPa every time we increase the altitude of 8.3m .
   −
{{underline|Ensuite, la station météo:}}
+
{{underline|Next, on the reference Weather station:}}
   −
Les stations météos normalisent la valeur de la pression atmosphérique pour la ramener "au niveau de la mer" (PNM: Pression Niveau Mer ou SLP: Sea Level Pressure).
+
The weather station does normalize the atmospheric pressure calculate local pressure at the Sea Level altitude (called SLP for "Sea Level Pressure" also named "PNM" for ''Pression Niveau Mer'').
   −
Cela signifie que la station météo appliquent une correction (compensation) comme indiqué en début de cette section.  
+
This means that reference weather station applies the correction (compensating) to the read value.  
   −
Pour ma station de référence, il s'agit de 120m. En gros, la correction consiste à ajouter une colonne d'air de 120m au dessus du senseur donc une correction de (120 / 8.3) hPa = 14.45 hPa.
+
For the reference station next to house, its height is 120m. so the correction adds the air column of 120m height over the sensor value to get the normalized SLP pressure. So the correction is evaluated to (120 / 8.3) hPa = 14.45 hPa.
   −
{{underline|Appliquons la correction à la mesure notre BMP180:}}
+
{{underline|Let's apply the same principle to our BMP280 readings:}}
   −
Dans notre cas précis, notre altitude est de 104m. Rapellez-vous, la pression diminue de 1hPa tous les 8.3m.
+
In our case, we know that the altitude of the BMP280 sensor is 104m. Remind, the pressure is reduced of 1hPa every time our altitude increase of 8.3m.
   −
Pour 104m la colonne d'air correspondante représente une pression de 104 / 8.3 = 12.53 hPa
+
For 104m, the air column until the sea level correspond to 104 / 8.3 = 12.53 hPa additional pressure.
   −
Le senseur BMP180 retourne la valeur 989.09 hPa, la valeur corrigée au niveau de la mer est 989.09 + 12.53 = 1001.62 hPa. Soit la valeur de la station de météo de référence (1002 hPa) à deux pas de la maison.
+
As the sensor give the 989.09 hPavalue, the correction to have the Normalized SLP is 989.09 + 12.53 = 1001.62 hPa. Great! it is almost the same value than reference weather station next to home (to remind, it communicates 1002 hPa).
   −
{{ambox|text=Vous aurez sans doute noté que la pression de la station de référence est de 1002 hPa, tout comme la pression au niveau de la mer (aussi 1002 hPa). C'est un pure hasard du jour, ces deux valeurs sont habituellement différentes.}}
+
{{ambox|text=Please note that the today's pressure is 1002 hPa and our normalized pressure is also 1002 hPa. This is rare situation and means that the air will not flow in any way between our location and the sea.}}
    
{{ENG-CANSAT-TRAILER}}
 
{{ENG-CANSAT-TRAILER}}
29 836

modifications

Menu de navigation