Modifications

Sauter à la navigation Sauter à la recherche
957 octets ajoutés ,  26 février 2022 à 23:57
Ligne 91 : Ligne 91 :     
<syntaxhighlight lang="python">
 
<syntaxhighlight lang="python">
 +
# Read the sensor values:
 +
#    (temperature_celcius, pressure_hpa, humidity_percent)
 +
#    Humidity only applies to BME280 only, not BMP280.
 +
#
 
from machine import I2C
 
from machine import I2C
 
# BME280 aslo work for BMP280
 
# BME280 aslo work for BMP280
 
from bme280 import BME280, BMP280_I2CADDR
 
from bme280 import BME280, BMP280_I2CADDR
 
from time import sleep
 
from time import sleep
i2c = I2C(1)
+
i2c = I2C(0)
 
bmp = BME280( i2c=i2c, address=BMP280_I2CADDR )
 
bmp = BME280( i2c=i2c, address=BMP280_I2CADDR )
 
while True:
 
while True:
Ligne 104 : Ligne 108 :     
Which produce the following results:
 
Which produce the following results:
 
+
<nowiki>(22.28, 1017.68, 0.0)
<syntaxhighlight lang="bash">
  −
(22.28, 1017.68, 0.0)
   
(22.27, 1017.66, 0.0)
 
(22.27, 1017.66, 0.0)
 
(21.87, 1017.67, 0.0)
 
(21.87, 1017.67, 0.0)
Ligne 112 : Ligne 114 :  
(21.83, 1017.68, 0.0)
 
(21.83, 1017.68, 0.0)
 
(21.81, 1017.68, 0.0)
 
(21.81, 1017.68, 0.0)
(21.81, 1017.68, 0.0)
+
(21.81, 1017.68, 0.0)</nowiki>
</syntaxhighlight>
      
By activating the Plotter, the value can even be made visible as a graph. However, to see a proper graph evolution, the best is to replace the {{fname|sleep(1)}} to {{fname|sleep( 60*30 )}} (30 min).
 
By activating the Plotter, the value can even be made visible as a graph. However, to see a proper graph evolution, the best is to replace the {{fname|sleep(1)}} to {{fname|sleep( 60*30 )}} (30 min).
Ligne 149 : Ligne 150 :     
<syntaxhighlight lang="python">
 
<syntaxhighlight lang="python">
 +
# Read Local pressure then
 +
# Calculate corresponding Altitude
 +
#
 
from machine import I2C
 
from machine import I2C
 
# BME280 aslo work for BMP280
 
# BME280 aslo work for BMP280
 
from bme280 import BME280, BMP280_I2CADDR
 
from bme280 import BME280, BMP280_I2CADDR
 
from time import sleep
 
from time import sleep
i2c = I2C(1)
+
i2c = I2C(0)
    
baseline = 1032.0 # day's pressure at sea level
 
baseline = 1032.0 # day's pressure at sea level
Ligne 178 : Ligne 182 :  
By example, today the pressure is 1002.00 hPa at the Belgian's sea level.  
 
By example, today the pressure is 1002.00 hPa at the Belgian's sea level.  
   −
<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.
+
<font color="red">this value is critical if you want to evaluate the altitude of the sensor</font>.  
   −
So I have fixed the baseline as follow before reading the altitude:
+
It is also important to know the current altitude if you plan to calculate the "correction" for the normalized SLP pressure.
 
  −
Serial.print(bme.readAltitude(1002.00));
  −
Serial.println(" m");
      +
{{underline|Remark:}}<br />
 
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]
   Ligne 202 : Ligne 204 :  
The sensor value is right, it just not apply the correction to return the Normalized SLP pressure (equivalent pressure at the sea level). The reference {{underline|reference}} weather station does applies SLP correction for you (so they displays normalized SLP).
 
The sensor value is right, it just not apply the correction to return the Normalized SLP pressure (equivalent pressure at the sea level). The reference {{underline|reference}} weather station does applies SLP correction for you (so they displays normalized SLP).
   −
Let's do the correction on the value...
+
Let's do the SLP correction on the sensor's value...
    
{{underline|First:}} You must know your altitude (121m in my case, see here before How I did calculate it).
 
{{underline|First:}} You must know your altitude (121m in my case, see here before How I did calculate it).
   −
{{underline|Then:}} Read the pressure and apply a correction factor.
+
{{underline|Then:}} Read the pressure and apply the SLP correction factor.
 
      
<syntaxhighlight lang="python">
 
<syntaxhighlight lang="python">
 +
# Read Local pressure
 +
# Calculate corresponding SLP pressure
 +
#  (SLP: sea level pressure)
 +
#
 +
from machine import I2C
 +
# BME280 aslo work for BMP280
 +
from bme280 import BME280, BMP280_I2CADDR
 +
from time import sleep
 +
i2c = I2C(0)
    +
# Sensor altitude (in meter) required to
 +
# calculate SLP (See Level Pressure)
 +
altitude = 120.1
 +
bmp = BME280( i2c=i2c, address=BMP280_I2CADDR )
 +
while True:
 +
    # returns a tuple with (temperature, pressure_hPa, humidity)
 +
    p = bmp.raw_values[1]
 +
    p_sea = p + (altitude/8.3)
 +
    print( "Plocal: %6.1f hPa, Psea: %6.1f hPa" % (p,p_sea) )
 +
    sleep(1)
 
</syntaxhighlight>
 
</syntaxhighlight>
    +
which returns:
    +
<nowiki>Plocal: 1017.4 hPa, Psea: 1031.8 hPa
 +
Plocal: 1017.4 hPa, Psea: 1031.9 hPa
 +
Plocal: 1017.3 hPa, Psea: 1031.8 hPa
 +
Plocal: 1017.4 hPa, Psea: 1031.8 hPa
 +
Plocal: 1017.4 hPa, Psea: 1031.9 hPa
 +
Plocal: 1017.4 hPa, Psea: 1031.9 hPa
 +
Plocal: 1017.4 hPa, Psea: 1031.8 hPa</nowiki>
    
{{ENG-CANSAT-PICO-TRAILER}}
 
{{ENG-CANSAT-PICO-TRAILER}}
29 917

modifications

Menu de navigation