How to measure temperature pressure and Altitude on Oled display with BMP280 using Arduino

 







            CODE 

#include <Wire.h>

#include <Adafruit_SSD1306.h>

#include <Adafruit_GFX.h>

#include <Adafruit_BMP280.h>


#define SCREEN_WIDTH 128

#define SCREEN_HEIGHT 64


#define OLED_ADDRESS 0x3C

#define BMP280_ADDRESS 0x76


Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire);

Adafruit_BMP280 bmp;


void setup() {

  Serial.begin(9600);

  Wire.begin();


  if (!display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDRESS)) {

    Serial.println(F("SSD1306 OLED not found"));

    while (true);

  }


  display.clearDisplay();

  display.display();


  if (!bmp.begin(BMP280_ADDRESS)) {

    Serial.println("BMP280 sensor not found!");

    while (true);

  }


  display.setTextSize(2);  // Medium text

  display.setTextColor(SSD1306_WHITE);

  display.setCursor(0, 0);

  display.println("BMP280    Monitor");

  display.display();

  delay(2000);

}


void loop() {

  float temperature = bmp.readTemperature();     // °C

  float pressure = bmp.readPressure() / 100.0F;  // hPa

  float altitude = bmp.readAltitude(1013.25);    // m


  display.clearDisplay();

  display.setTextSize(1);  // Medium size text

  display.setTextColor(SSD1306_WHITE);


  // Line 1 - Temperature

  display.setCursor(0, 0);

  display.print("Temp> ");

  display.print(temperature, 1);  // 1 decimal

  display.println(" C");


  // Line 2 - Pressure

  display.setCursor(0, 24);

  display.print("Press> ");

  display.print(pressure, 1);

  display.println(" hPa");


  // Line 3 - Altitude

  display.setCursor(0, 48);

  display.print("Alt>  ");

  display.print(altitude, 1);

  display.println(" m");


  display.display();

  delay(100);

}

Post a Comment

Previous Post Next Post

Contact Form