#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
// Define constants
#define SEALEVELPRESSURE_HPA (1013.25) // Adjust based on your location
// Create a BME280 object
Adafruit_BME280 bme; // I2C
// Function to initialize the BME280 sensor
void setup() {
Serial.begin(115200); // Start serial communication
if (!bme.begin(0x76)) { // Address might be 0x77 depending on your sensor
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}
}
// Function to read and print data from the sensor
void loop() {
float temperature = bme.readTemperature(); // Read temperature
float humidity = bme.readHumidity(); // Read humidity
float pressure = bme.readPressure() / 100.0F; // Convert Pa to hPa
// Calculate additional parameters
float altitude = bme.readAltitude(SEALEVELPRESSURE_HPA); // Estimate altitude
// Print sensor data to the Serial Monitor
Serial.print("Temperature = ");
Serial.print(temperature);
Serial.println(" °C");
Serial.print("Humidity = ");
Serial.print(humidity);
Serial.println(" %");
Serial.print("Pressure = ");
Serial.print(pressure);
Serial.println(" hPa");
Serial.print("Approx. Altitude = ");
Serial.print(altitude);
Serial.println(" m");
// Delay between readings
delay(2000); // Wait for 2 seconds before taking the next reading
}