Modifications

Sauter à la navigation Sauter à la recherche
1 506 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 97 : Ligne 115 :     
== Pressure and altitude ==
 
== Pressure and altitude ==
 +
This section could also be named "the Weather Station OR the Altimeter".
 +
 +
Depending on the use case (weather station or altimeter", the way of using the BMP280 is slightly different.
 +
 
 
=== About pressure reading ===
 
=== About pressure reading ===
 
The pressure is returned in Pascals (an unit from [https://en.wikipedia.org/wiki/International_System_of_Units International System of Units]). 100 Pascals = 1 hPa = 1 millibar. The barometric pressure is often using the millibar or mm of mercury as unit. Just note that 1 pascal = 0.00750062 mm of mercury mercure.
 
The pressure is returned in Pascals (an unit from [https://en.wikipedia.org/wiki/International_System_of_Units International System of Units]). 100 Pascals = 1 hPa = 1 millibar. The barometric pressure is often using the millibar or mm of mercury as unit. Just note that 1 pascal = 0.00750062 mm of mercury mercure.
Ligne 126 : Ligne 148 :  
Indeed, we can read the current pressure (without caring about the baseline) THEN we add the "correction" value --> Tadaaa! We have the SLP pressure (the same than displayed on Reference Weather Station).
 
Indeed, we can read the current pressure (without caring about the baseline) THEN we add the "correction" value --> Tadaaa! We have the SLP pressure (the same than displayed on Reference Weather Station).
   −
 
+
  <nowiki># mean pressure at the sea level (not critical for SLP pressure)
  <nowiki>
  −
# mean pressure at the sea level (not critical for SLP pressure)
   
p.baseline = 101325
 
p.baseline = 101325
 
# SLP pressure  
 
# SLP pressure  
p = bmp280.pressure + compensation
+
p = bmp280.pressure + compensation</nowiki>
</nowiki>
      
where {{fname|p}} would contains pressure normalized at sea level (so the SLP value).
 
where {{fname|p}} would contains pressure normalized at sea level (so the SLP value).
Ligne 143 : Ligne 162 :  
* '''if you need a flying sensor''' in a rocket then you have to care about the baseline value (sea level pressure {{underline|of the day}}) for have a accurate measure the the altitude.
 
* '''if you need a flying sensor''' in a rocket then you have to care about the baseline value (sea level pressure {{underline|of the day}}) for have a accurate measure the the altitude.
   −
=== La pression au niveau de la mer varie! ===
+
=== The sea level pressure change every day! ===
Une valeur standard de la pression au niveau de la mer est de 1013.25 mbar (ou 1013.25 hPa).
+
The usual pressure at sea level is about 1013.25 mbar (or 1013.25 hPa or 101325 Pa).
   −
Cependant, cette valeur varie en fonction des conditions atmosphérique et de la quantité de vapeur d'eau dans l'air.
+
However, this value depends on the weather conditions and quantity of steam in the air.
   −
Par exemple, ce jour, la pression est de 1002.00 hPa à la Panne (En bordure de mer, Belgique). La Belgique étant un petit territoire relativement plat, la variation de pression à la mer est forcement un élément plus important qu'ailleurs.
+
By example, today the pressure is 1002.00 hPa at the Belgian's sea level.  
   −
<font color="red">Cette valeur est importante si vous avez besoin de relever votre altitude avec une certaine précision en vue de calculer la colonne d'air de compensation (pour calculer les pressions PNM)'''</font>
+
<font color="red">this value is critical if you want to evaluate the altitude of the sensor.</font>. It is also important to know the current altitude if you plan to calculate the "correction" for the normalized SLP pressure.
   −
J'ai donc corrigé ma baseline comme suit (valeur en hPa * 100):
+
So I have fixed the baseline as follow before reading the altitude:
   −
  bmp180.baseline = 100200
+
  Serial.print(bme.readAltitude(1002.00));
 +
Serial.println(" m");
   −
Vous pouvez facilement prendre connaissance de cette pression en consultant un site météo local.
+
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]
   −
Je vous propose [http://www.meteobelgique.be/observations/temps-reel/stations-meteo.html ce lien vers meteobelgique.be]
+
=== The sensor doesn't give the right altitude! ===
   −
=== Le senseur ne me donne pas la bonne altitude! ===
+
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?
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)!  
     −
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 910

modifications

Menu de navigation