#include <Wire.h>
#include <Adafruit_Sensor.h>
#include "Adafruit_BMP3XX.h"
#include <LiquidCrystal_I2C.h>
#define BMP_SCK 13
#define BMP_MISO 12
#define BMP_MOSI 11
#define BMP_CS 10
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BMP3XX bmp;
LiquidCrystal_I2C lcd(0x27, 20, 4); // Change the address (0x27) to match your LCD
void setup() {
Serial.begin(115200);
lcd.begin(20, 4); // Initialize the LCD
while (!Serial);
Serial.println("Adafruit BMP388 / BMP390 test");
if (!bmp.begin_I2C()) {
Serial.println("Could not find a valid BMP3 sensor, check wiring!");
while (1);
}
bmp.setTemperatureOversampling(BMP3_OVERSAMPLING_8X);
bmp.setPressureOversampling(BMP3_OVERSAMPLING_4X);
bmp.setIIRFilterCoeff(BMP3_IIR_FILTER_COEFF_3);
bmp.setOutputDataRate(BMP3_ODR_50_HZ);
}
void loop() {
if (!bmp.performReading()) {
Serial.println("Failed to perform BMP3 reading :(");
return;
}
// Send BMP3 sensor readings over Serial
Serial.print("T:");
Serial.print(bmp.temperature);
Serial.print(",P:");
Serial.print(bmp.pressure);
Serial.print(",A:");
Serial.println(bmp.readAltitude(SEALEVELPRESSURE_HPA));
// Display BMP3 sensor readings on LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temperature: ");
lcd.print(bmp.temperature);
lcd.print(" *C");
lcd.setCursor(0, 1);
lcd.print("Pressure: ");
lcd.print(bmp.pressure / 100.0);
lcd.print(" hPa");
lcd.setCursor(0, 2);
lcd.print("Altitude: ");
lcd.print(bmp.readAltitude(SEALEVELPRESSURE_HPA));
lcd.print(" m");
delay(2000);
}