#include #include #include #include #include #include #define BME_SCK 13 #define BME_MISO 12 #define BME_MOSI 11 #define BME_CS 10 #define NUMPIXELS 1 #define SEALEVELPRESSURE_HPA (1013.25) Adafruit_NeoPixel pixels(NUMPIXELS, PIN_NEOPIXEL, NEO_GRB + NEO_KHZ800); #define DELAYVAL 500 Adafruit_BME280 bme; // I2C //Adafruit_BME280 bme(BME_CS); // hardware SPI //Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI unsigned long delayTime; void pixel_on(int r, int g, int b) { pixels.clear(); pixels.setPixelColor(0, pixels.Color(r, g, b)); pixels.show(); } void pixel_off(){ pixels.clear(); pixels.show(); } void setup() { Serial.begin(9600); while(!Serial); // time to get serial running Serial.println(F("BME280 test")); unsigned status; // default settings status = bme.begin(); // You can also pass in a Wire library object like &Wire2 // status = bme.begin(0x76, &Wire2) if (!status) { Serial.println("Could not find a valid BME280 sensor, check wiring, address, sensor ID!"); 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); } Serial.println("-- Default Test --"); delayTime = 1000; pixels.begin(); Serial.println(); } void loop() { printValues(); if(bme.readTemperature()<30){ pixel_on(0, 150, 0); } else { pixel_on(150, 0, 0); } delay(delayTime); } void printValues() { Serial.print("Temperature = "); Serial.print(bme.readTemperature()); Serial.println(" °C"); Serial.print("Pressure = "); Serial.print(bme.readPressure() / 100.0F); Serial.println(" hPa"); Serial.print("Approx. Altitude = "); Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA)); Serial.println(" m"); Serial.print("Humidity = "); Serial.print(bme.readHumidity()); Serial.println(" %"); Serial.println(); }