
//BotronikS.com:

#include <Wire.h>
#include <SPI.h>
//#include <Adafruit_BMP280.h>
#include <Adafruit_BME280.h>
//#define BMP280_ADDRESS 0x76
#define BME280_ADDRESS 0x76
//Adafruit_BMP280 bmp; // I2C
Adafruit_BME280 bme; // I2C

//
void setup() {
  Serial.begin(9600);
  while ( !Serial ) delay(100);   // wait for native usb
  Serial.println(F("BME280 test"));
  unsigned status;
  status = bme.begin(BME280_ADDRESS);
  if (!status) {
    Serial.println(F("Could not find a valid BMP280 sensor, check wiring or "
                      "try a different address!"));
    Serial.print("SensorID was: 0x"); Serial.println(bme.sensorID(),16);
    Serial.print("        ID of 0xFF probably means a bad address, a BMP 180 or BMP 085\n");
    Serial.print("   ID of 0x56-0x58 represents a BMP 280,\n");
    Serial.print("        ID of 0x60 represents a BME 280.\n");
    Serial.print("        ID of 0x61 represents a BME 680.\n");
    while (1) delay(10);
  
  //* Default settings from the datasheet. */
  bme.setSampling(Adafruit_BME280::MODE_NORMAL      /* Operating Mode. */
                  //Adafruit_BME280::SAMPLING_X2,     /* Temp. oversampling */
                  //Adafruit_BME280::SAMPLING_X16,    /* Pressure oversampling */
                  //Adafruit_BME280::FILTER_X16,      /* Filtering. */
                  //Adafruit_BME280::STANDBY_MS_500
                  ); /* Standby time. */

  }
}
//
void loop() {
    Serial.print(F("Temperature = "));
    Serial.print(bme.readTemperature());
    Serial.println(" *C");

    Serial.print(F("Humidity = "));
    Serial.print(bme.readHumidity());
    Serial.println(" %");

    Serial.print(F("Pressure = "));
    Serial.print(bme.readPressure());
    Serial.println(" Pa");
    
    Serial.print(F("Approx altitude = "));
    Serial.print(bme.readAltitude(1013.25)); /* Adjusted to local forecast! */
    Serial.println(" m");
    Serial.println();
    delay(2000);
}
//end