#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>

Adafruit_BMP280 bmp;

const int window_size = 5;
int sum = 0;
int index = 0;
int a[window_size];
float averaged = 0;

void setup() 
{
  Serial.begin(9600);
  if (!bmp.begin(0x76)) 
  {
    Serial.println("Could not find a valid BMP280 sensor, check wiring!");
    while (1);
  }
  
  for (int i = 0; i < window_size; i++) 
  {
    a[i] = bmp.readPressure() / 100;
    sum += a[i];
  }
}

void loop() 
{
  sum -= a[index];
  a[index] = bmp.readPressure() / 100;
  sum += a[index];
  index = (index + 1) % window_size;
  averaged = (float)sum / window_size;
  
  Serial.print("Pressure (Smoothed): ");
  Serial.print(averaged);
  Serial.println(" hPa");

  delay(1000); 
}