Interfacing BMP280 Pressure Sensor Module with Arduino

Project Goal: To measure the atmospheric pressure using one of the best modules i,e BMP280 Pressure sensor module.

Components Used in the Project:

  • Arduino Uno
  • BMP280
  • Connecting Wires
  • LCD 16 X2

BMP280 Pressure Sensor Module

The BMP280 sensor module operates with the minimum voltage (VDD) of 1.71V, However, the previous version of this sensor modules operate on 1.8V (VDD). The BMP sensor includes a Pressure sensing element, Humidity sensing element as well as Temperature sensing element which is then attached to Pressure front-end, Humidity front-end and temperature front-end.

These front end IC’s are sensitive analog amplifiers that are utilized in the process of the amplifying of small signals. In this integration, the analog values are turned to digital signal and this voltage is supplied to the logic circuits for further interface.

The BMP280 can be also utilized in mobile phones, tablets, PCs, Portable health care devices, GPS devices, home weather stations, etc. By using this procedure we can simply interface BMP280 with the Arduino.

Schematic

Code

#include <Wire.h>
#include <SPI.h>
#include <Adafruit_BMP280.h>
#include <LiquidCrystal.h>
Adafruit_BMP280 bmp; // I2C
//Adafruit_BMP280 bmp(BMP_CS); // hardware SPI
//Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO,  BMP_SCK);
LiquidCrystal lcd(9, 8, 5, 4, 3, 2);
void setup() {
  lcd.begin(16,2);
  Serial.begin(9600);
  Serial.println(F("BMP280 test"));
  lcd.print("Welcome to ");
  lcd.setCursor(0,1);
  lcd.print("CIRCUIT DIGEST");
  delay(1000);
  lcd.clear();
  if (!bmp.begin()) {
    Serial.println(F("Could not find a valid BMP280 sensor, check wiring!"));
    while (1);
  }
  /* Default settings from datasheet. */
  bmp.setSampling(Adafruit_BMP280::MODE_NORMAL,     /* Operating Mode. */
                  Adafruit_BMP280::SAMPLING_X2,     /* Temp. oversampling */
                  Adafruit_BMP280::SAMPLING_X16,    /* Pressure oversampling */
                  Adafruit_BMP280::FILTER_X16,      /* Filtering. */
                  Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */
}
void loop() {
    Serial.print(F("Temperature = "));
    Serial.print(bmp.readTemperature());
    Serial.println(" *C");
    lcd.setCursor(0,0);
    lcd.print("Temp= ");
    lcd.print(bmp.readTemperature());

    Serial.print(F("Pressure = "));
    Serial.print(bmp.readPressure());
    Serial.println(" Pa");
    lcd.setCursor(0,1);
    lcd.print("Press= ");
    lcd.print(bmp.readPressure());
    Serial.print(F("Approx altitude = "));
    Serial.print(bmp.readAltitude(1018)); /* Adjusted to local forecast! */
    Serial.println(" m");
    Serial.println();
    delay(2000);
}

Demo

Leave a Reply

RELATED PROJECTS

X

By continuing to use the site, you agree to the use of cookies. more info

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close