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

Arduino UNO Weather Station with BME280 Sensor

View and Edit Project In Cirkit DesignerImage of Arduino UNO Weather Station with BME280 Sensor

Circuit Documentation

Summary

This circuit involves an Arduino UNO microcontroller interfaced with a BME/BMP280 sensor module. The sensor is connected to the Arduino via the I2C protocol, and the Arduino reads temperature, pressure, and humidity data from the sensor and prints the values to the Serial Monitor.

Component List

  1. Arduino UNO

    • Description: A microcontroller board based on the ATmega328P.
    • Pins: UNUSED, IOREF, Reset, 3.3V, 5V, GND, Vin, A0, A1, A2, A3, A4, A5, SCL, SDA, AREF, D13, D12, D11, D10, D9, D8, D7, D6, D5, D4, D3, D2, D1, D0
  2. BME/BMP280 Sensor Module

    • Description: A sensor module capable of measuring temperature, pressure, and humidity.
    • Pins: GND, SCL, SDA, VIN

Wiring Details

Arduino UNO

BME/BMP280 Sensor Module

Code Documentation

/*
 * This Arduino Sketch reads temperature, pressure, and humidity data from a
 * BME/BMP280 sensor connected via I2C and prints the values 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(9600);
  if (!bme.begin(0x76)) {
    Serial.println("Could not find a valid BME280 sensor, check wiring!");
    while (1);
  }
}

void loop() {
  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();
  delay(2000);
}

Code Explanation