Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

ESP32 and BME280 Sensor-Based Wi-Fi Weather Station

View and Edit Project In Cirkit DesignerImage of ESP32 and BME280 Sensor-Based Wi-Fi Weather Station

Circuit Documentation

Summary

This document provides a detailed overview of a circuit that includes an ESP32 microcontroller and a BME/BMP280 sensor. The ESP32 reads temperature, pressure, and humidity data from the BME/BMP280 sensor and prints the data to the Serial Monitor. The document includes a component list, wiring details, and the embedded code used in the microcontroller.

Component List

ESP32 (30 pin)

BME/BMP280

Wiring Details

ESP32 (30 pin)

BME/BMP280

Code

Code for ESP32

/*
 * This Arduino Sketch reads temperature, pressure, and humidity data from
 * the BME/BMP280 sensor connected to the ESP32 microcontroller and prints
 * the data to the Serial Monitor.
 */

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

#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme; // I2C

void setup() {
  Serial.begin(115200);
  if (!bme.begin(0x76)) {
    Serial.println("Could not find a valid BME280 sensor, check wiring!");
    while (1);
  }
}

void loop() {
  printSensorData();
  delay(2000);
}

void printSensorData() {
  Serial.print("Temperature = ");
  Serial.print(bme.readTemperature());
  Serial.println(" *C");

  Serial.print("Pressure = ");
  Serial.print(bme.readPressure() / 100.0F);
  Serial.println(" hPa");

  Serial.print("Humidity = ");
  Serial.print(bme.readHumidity());
  Serial.println(" %");

  Serial.println();
}

Code for BME/BMP280

/*
 * This Arduino Sketch reads temperature, pressure, and humidity data from
 * the BME/BMP280 sensor connected to the microcontroller and prints the data
 * to the Serial Monitor.
 */

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

#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme; // I2C

void setup() {
  Serial.begin(115200);
  if (!bme.begin(0x76)) {
    Serial.println("Could not find a valid BME280 sensor, check wiring!");
    while (1);
  }
}

void loop() {
  printSensorData();
  delay(2000);
}

void printSensorData() {
  Serial.print("Temperature = ");
  Serial.print(bme.readTemperature());
  Serial.println(" *C");

  Serial.print("Pressure = ");
  Serial.print(bme.readPressure() / 100.0F);
  Serial.println(" hPa");

  Serial.print("Humidity = ");
  Serial.print(bme.readHumidity());
  Serial.println(" %");

  Serial.println();
}

This documentation provides a comprehensive overview of the circuit, including the components used, their wiring, and the code running on the microcontroller.