-->
Notification texts go here Contact Us pelacakan

ESP8266 NodeMCU: BME680 Environmental Sensor using Arduino IDE

 ESP8266 NodeMCU: BME680 Environmental Sensor using Arduino IDE

ESP8266 NodeMCU: BME680 Environmental Sensor
ESP8266 NodeMCU: BME680 Environmental Sensor

To use the BME680 environmental sensor with an ESP8266 NodeMCU using the Arduino IDE to measure gas, pressure, humidity, and temperature, follow these steps.

Components Needed:

ESP8266 NodeMCU

BME680 sensor

Jumper wires

Breadboard

Wiring:

Connect the components as follows:

Connect the BME680 sensor:

Connect the sensor's VCC pin to 3.3V on the NodeMCU.

Connect the sensor's GND pin to GND on the NodeMCU.

Connect the sensor's SDA pin to D2 on the NodeMCU.

Connect the sensor's SCL pin to D1 on the NodeMCU.

Arduino Code:

#include <Wire.h>

#include <SPI.h>

#include <Adafruit_Sensor.h>

#include "Adafruit_BME680.h"

/*#define BME_SCK 14

#define BME_MISO 12

#define BME_MOSI 13

#define BME_CS 15*/

#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME680 bme; // I2C

//Adafruit_BME680 bme(BME_CS); // hardware SPI

//Adafruit_BME680 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK);

void setup() {

  Serial.begin(115200);

  while (!Serial);

  Serial.println(F("BME680 async test"));

  if (!bme.begin()) {

    Serial.println(F("Could not find a valid BME680 sensor, check wiring!"));

    while (1);

  }

  // Set up oversampling and filter initialization

  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); // 320*C for 150 ms

}

void loop() {

  // Tell BME680 to begin measurement.

  unsigned long endTime = bme.beginReading();

  if (endTime == 0) {

    Serial.println(F("Failed to begin reading :("));

    return;

  }

  Serial.print(F("Reading started at "));

  Serial.print(millis());

  Serial.print(F(" and will finish at "));

  Serial.println(endTime);

  Serial.println(F("You can do other work during BME680 measurement."));

  delay(50); // This represents parallel work.

  // There's no need to delay() until millis() >= endTime: bme.endReading()

  // takes care of that. It's okay for parallel work to take longer than

  // BME680's measurement time.

  // Obtain measurement results from BME680. Note that this operation isn't

  // instantaneous even if milli() >= endTime due to I2C/SPI latency.

  if (!bme.endReading()) {

    Serial.println(F("Failed to complete reading :("));

    return;

  }

  Serial.print(F("Reading completed at "));

  Serial.println(millis());

  Serial.print(F("Temperature = "));

  Serial.print(bme.temperature);

  Serial.println(F(" *C"));

  Serial.print(F("Pressure = "));

  Serial.print(bme.pressure / 100.0);

  Serial.println(F(" hPa"));

  Serial.print(F("Humidity = "));

  Serial.print(bme.humidity);

  Serial.println(F(" %"));

  Serial.print(F("Gas = "));

  Serial.print(bme.gas_resistance / 1000.0);

  Serial.println(F(" KOhms"));

  Serial.print(F("Approx. Altitude = "));

  Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));

  Serial.println(F(" m"));

  Serial.println();

  delay(2000);

}

Instructions:

Copy the code into the Arduino IDE.

Upload the code to your ESP8266 NodeMCU.

Open the Serial Monitor to view the gas, pressure, humidity, and temperature readings.

This example initializes the BME680 sensor and reads gas, pressure, humidity, and temperature from it. Adjust the pin configurations as needed for your specific setup. The BME680 library simplifies communication with the sensor, making it easy to retrieve environmental data.

إرسال تعليق

Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.