Modul senzor de presiune barometric BMP280

    Modulul BMP280 este o versiune mai noua a modulului BMP180. Acest modul are aceeasi parametri ca si modulul BMP180.
    Adresa I2C a acestui modul este 0x76. Poza cu acest modul este mai jos:

    Pentru a folosi acest modul va trebui sa folosim libraria Adafruit BMP280 Library. Aceasta librarie se poate descarca de aici.
    Pe langa aceasta librarie mai avem nevoie si de libraria Adafruit Unified Sensor Library care poate fi descarcata si ea de aici.
    Ultima librarie care va trebui instalata este Adafruit BusIO Library. Aceasta se poate descarca de aici.
    Afisarea informatiilor le vom face pe un display LCD cu interfata I2C. Acest display se conecteaza conform informatiilor din acest articol.
    Inainte de functia setup() vom include noua librarie instalata:

#include <Adafruit_BMP280.h>

    De asemenea vom defini si o constanta in care vom stoca adresa I2C a acestui modul:

#define BMP280_I2C_ADDRESS  0x76

    Apoi vom initializa clasa librariei:

Adafruit_BMP280 bmp;

    Ultima variabila care va trebui sa o definim este o variabila de tip float numita bp_acasa in care vom stoca presiunea la nivelul marii din locatia nostra curenta. :

float bp_acasa = 1016;


    In functia setup() vom initializa modulul BMP280 folosind urmatoarea linie de cod:

bmp.begin(BMP280_I2C_ADDRESS);

    Dar pentru a realiza si la inceputul rularii programului a unei mici verificari vom face initializarea modulului exact in aceslasi mod in care am initializat si modulul BMP180 (in articolul anterior):

bool succes = bmp.begin(BMP280_I2C_ADDRESS);
if (succes) {
    lcd.print("initializat");
} else {
    lcd.print("eroare!!!");
}

    In functia loop() vom face afisarea valorilor citite de catre senzor. Iar prima valoare pe care o vom citi este temperatura. Citirea se face cu ajutorul functiei readTemperature().Valoarea returnata de catre functie este in grade Celsius. Codul folosit pentru a citi aceasta valoare este urmatorul:

float temp = bmp.readTemperature();

    In urmatoarea linie de cod vom citi presiunea. Acest lucru se face cu ajutorul functiei readPressure(). Valoarea returnata de catre functie este in Pascali, pentru a face conversia in hectoPascali vom folosi urmatoarea metodda de afisare: (valoare/100). Codul sursa folosit este cel de mai jos:

float pres = bmp.readPressure();

    Ultimul parametru pe care-l vom citi este altitudinea. Aceasta poate fi citita cu ajutorul functie readAltitude(your_pressure) unde vom introduce ca si parametru variabila your_pressure, variabila care reprezinta presiunea la nivelul marii din locatia voastra curenta. Valoarea returnata de catre functie este in metri. Codul folosit pentru a citi aceasta valoare este urmatorul:

float alt = bmp.readAltitude(bp_acasa);

    Pentru a afisa aceste informatii pe displayul LCD vom folosi urmatoarele linii de cod. Pentru temperatura vom folosi aceasta linie de cod:

lcd.print(temp);

    Pentru a afisa presiunea linia de cod folosita este cea de mai jos:

lcd.print(pres/100);

    Iar pentru afisarea altitudinii vom folosi acest cod sursa:

lcd.print(alt);

    Sketchul in forma lui finala este cel de mai jos:

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
#include <Adafruit_BMP280.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define BMP280_I2C_ADDRESS  0x76
Adafruit_BMP280 bmp;
float bp_acasa = 1016;

void setup() {
  lcd.begin();
  lcd.print("Modul BMP280");
  bool succes = bmp.begin(BMP280_I2C_ADDRESS);
  lcd.setCursor(0, 1 );
  if (succes) {
    lcd.print("initializat");
  } else {
    lcd.print("eroare!!!");
  }
  delay(1000);
}

void loop() {
 float temp = bmp.readTemperature();
 float pres = bmp.readPressure();
 float alt = bmp.readAltitude(bp_acasa);
 lcd.clear();
 lcd.print("Temperatura:");
 lcd.setCursor(0, 1);
 lcd.print(temp);
 lcd.print(" C");
 delay(1000);
 lcd.clear();
 lcd.print("Presiune");
 lcd.setCursor(0, 1);
 lcd.print(pres/100);
 lcd.print(" hPa");
 delay(1000);
 lcd.clear();
 lcd.print("Altitudine");
 lcd.setCursor(0, 1);
 lcd.print(alt);
 lcd.print(" m");
 delay(1000);
}

    Poze cu montajul in functiune sunt mai jos:

Nu sunt comentarii in “Modul senzor de presiune barometric BMP280”

Lasa un comentariu

Raspuns lui Some User

Autentificare