Maker Pro
Arduino

Interfacing BMP280 Pressure Sensor Module with Arduino

March 27, 2020 by rasika Joshi
 
Share
banner

To measure the atmospheric pressure we can use the BMP280 pressure sensor module.

Hardware

Software

1 Arduino IDE

To measure the atmospheric pressure we have used one of the best modules: the BMP280 pressure sensor module.

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 sensitivity analog amplifiers that are utilized in the process of the amplification of small signals. In this integration, the analog values are turned to digital voltage and this voltage is supplied to the logic circuits for further interface

BMP280.jpg

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.

interface pressure sensor with arduino.jpg
Pressure sensor output.jpg
#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);
}

Related Content

Comments


You May Also Like