The program read BME-680 sensor to serial monitor.
Install the Adafruit BME680 Library (this will also prompt you to install the Adafruit Unified Sensor and Adafruit BME680 Library, which you need)
/* * BME680 Sensor - Arduino Uno/Nano * Connection: I2C * Data: Temperature, Humidity, Pressure, Gas (Air Quality) * * Required Libraries (Arduino Library Manager): * - "Adafruit BME680 Library" by Adafruit * - "Adafruit Unified Sensor" by Adafruit * * Wiring (I2C): * BME680 --> Arduino Uno/Nano * VCC --> 3.3V (or 5V depending on module) * GND --> GND * SDA --> A4 * SCL --> A5 */ #include <Wire.h> #include <Adafruit_Sensor.h> #include <Adafruit_BME680.h> // Sea level pressure for altitude calculation (adjust to your location in hPa!) #define SEA_LEVEL_PRESSURE_HPA 1013.25 // Create BME680 object (I2C address: 0x76 or 0x77) Adafruit_BME680 bme; void setup() { Serial.begin(9600); while (!Serial); // Wait until Serial is ready Serial.println(F("============================")); Serial.println(F(" BME680 Sensor - Arduino ")); Serial.println(F("============================")); // Initialize sensor if (!bme.begin(0x76)) { Serial.println(F("ERROR: BME680 not found!")); Serial.println(F("Please check your wiring.")); Serial.println(F("Trying address 0x77 ...")); if (!bme.begin(0x77)) { Serial.println(F("ERROR: BME680 not found on 0x77 either!")); while (1); // Halt program } } Serial.println(F("BME680 found successfully!")); // Configure sensor settings bme.setTemperatureOversampling(BME680_OS_8X); bme.setHumidityOversampling(BME680_OS_2X); bme.setPressureOversampling(BME680_OS_4X); bme.setIIRFilterSize(BME680_FILTER_SIZE_3); bme.setGasHeater(320, 150); // Heater temperature: 320°C, Heating time: 150ms Serial.println(F("Sensor configured. Starting measurements...\n")); delay(2000); } void loop() { // Start measurement and wait for result if (!bme.performReading()) { Serial.println(F("ERROR: Reading failed!")); delay(2000); return; } // Print sensor values Serial.println(F("----------------------------")); // Temperature Serial.print(F("Temperature: ")); Serial.print(bme.temperature, 1); Serial.println(F(" °C")); // Humidity Serial.print(F("Humidity: ")); Serial.print(bme.humidity, 1); Serial.println(F(" %")); // Pressure Serial.print(F("Pressure: ")); Serial.print(bme.pressure / 100.0, 2); Serial.println(F(" hPa")); // Altitude above sea level (calculated) Serial.print(F("Altitude (approx): ")); Serial.print(bme.readAltitude(SEA_LEVEL_PRESSURE_HPA), 1); Serial.println(F(" m")); // Gas resistance (air quality) Serial.print(F("Gas Resistance: ")); Serial.print(bme.gas_resistance / 1000.0, 2); Serial.println(F(" kΩ")); // Air quality as simple rating Serial.print(F("Air Quality: ")); Serial.println(getAirQuality(bme.gas_resistance)); Serial.println(); // Wait 3 seconds until next measurement delay(3000); } // Simple air quality rating based on gas resistance String getAirQuality(uint32_t gasResistance) { uint32_t kOhm = gasResistance / 1000; if (kOhm >= 300) { return F("Very Good"); } else if (kOhm >= 150) { return F("Good"); } else if (kOhm >= 50) { return F("Moderate"); } else if (kOhm >= 10) { return F("Poor"); } else { return F("Very Poor"); } }
This page has been accessed for: Today: 1, Until now: 1