top of page

BMP280

El BMP280 és un termòmetre i baròmetre digital. Permet obtenir lectures de temperatura i de presió atmosfèrica. Donat que la pressió canvia amb l'altitud, també podem obtenir estimació de altitud sobre el nivell del mar.

Tensió d'alimentació: 3.3V

Medició de Presió barométrica

Rang: de 300 hPa a 1100 hPa (equivalent a una altitud de -500 m a 9000 m sobre el nivell del mar)

Precisió relativa: ± 0,12 hPa, equivalent a ± 1 m 

Precisió absoluta: ± 1,0 hPa 

Resolució: 0,16 Pa

Medició de temperatura

Rang: de -40 ºC a 85 ºC

Precisió: ± 1.0 ºC

Resolució: 0.01ºC 

Medició d'humitat (?):

Precisió: ± 3

El nostre admet tant connexió per I2C com per SPI (els models de 4 pins només admeten I2C).

Nosaltres l'hem comprat aquí. Ens ha costat 3,59 #.

BMP280.jpg
Esquema de connexions

Utilitzarem el protocol de comunicació I2C (pins SCL i SCA del sensor).​

BMP_esquema.png
Pautes de programació
Les llibreries

Per treballar amb l’OLED cal instal·lar dues llibreries des del gestor de llibreries de l'IDE (Programa / Incluir libreria / Administrar Bibliotecas): Adafruit BME280 i Adafruit Unified Sensor.

A més, per treballar amb I2C cal inserir als programes la llibreria Wire, inclosa a l'IDE Arduino.

L'adreça I2C

Sembla que l'adreça I2C del sensor és 0x76. Recordeu que podem comprobar-la executant l’sketch i2c_scanner.​

// llibreries:

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

#define PresioMar (1013.25)    // presió atmosfèrica mitjana a nivell del mar: 1.013,25 HPa a latitud 45º. Per obtenir major precissió, buscar la de la nostra latitud.

// definició del sensor:

Adafruit_BME280 bme;  

void setup ( )
{

  Serial.begin (115200);   // inicialització de comunicació sèrie 
  if (! bme.begin (0x76))   // inicialització del sensor. 0x76 és l'adreça I2C (caldria comprobar-ho)

  { Serial.println ("No es troba el sensor"); while (1); }
}


void loop ( )
{

  MostraValors ( );  // funció, que cal crear, per mostrar els valors mesurats pel sensor 

  delay (1000);

}

bme.readTemperature (); - llegeix la temperatura (en graus Celsius)

bme.readHumidity (); - llegeix la humitat absoluta

bme.readPressure (); - llegeix la presió en hPa (hectoPascal = milibar)

bme.readAltitude (PresioMar); - Estima l'altitud en metres en funció de la presión al nivell del mar

Podem comprobar online la relació entre la presió mesurada pel sensor i l'altitud calculada pel programa 

bottom of page