DIY Weather Station with ESP32, DHT22, and BMP280 Sensors (with Code)

🌤 Let`s build an affordable, accurate weather station at home using ESP32!

Weather

What You`ll Need:

  • ESP32 microcontroller
  • DHT22 Sensor (Temperature & Humidity).
  • BMP280 Sensor (Pressure & Altitude).
  • Breadboard and Jumper wires.

Step-by-Step Implementation:

Step 1: Wiring

  • Connect DHT22 data pin to ESP32 GPIO4.
  • Connect BMP280 using I2C: SDA to GPIO21, SCL to GPIO22.

Step 2: Arduino IDE Setup Install these libraries:

  • Adafruit DHT Sensor Library.
  • Adafruit BMP280 Library.
  • Adafruit Unified Sensor.

Step 3: Code Implementation

#include <WiFi.h>
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>
#include "DHT.h"

#define DHTPIN 4
#define DHTTYPE DHT22

DHT dht(DHTPIN, DHTTYPE);
Adafruit_BMP280 bmp;

void setup() {
  Serial.begin(115200);
  dht.begin();
  if (!bmp.begin(0x76)) {
    Serial.println("Could not find BMP280 sensor!");
    while (1);
  }
}

void loop() {
  float temp = dht.readTemperature();
  float humidity = dht.readHumidity();
  float pressure = bmp.readPressure() / 100.0;

  Serial.print("Temp: "); Serial.print(temp); Serial.println("°C");
  Serial.print("Humidity: "); Serial.print(humidity); Serial.println("%");
  Serial.print("Pressure: "); Serial.print(pressure); Serial.println(" hPa");

  delay(5000);
}