Weather Station using Arduino Uno
Objective:
To build a weather monitoring system using Arduino Uno that measures temperature, humidity, and
atmospheric pressure, and displays real-time data on an LCD screen.
Components Required:
- Arduino Uno
- DHT11 or DHT22 Sensor
- BMP180 or BMP280 Sensor
- 16x2 LCD Display (I2C optional)
- Breadboard and Jumper Wires
- USB Cable
Working Principle:
The DHT11/DHT22 measures temperature and humidity. The BMP180/BMP280 measures
atmospheric pressure. The Arduino reads these values and displays them on a 16x2 LCD.
Arduino Code (Sample):
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP085.h>
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
Adafruit_BMP085 bmp;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.begin();
lcd.backlight();
dht.begin();
bmp.begin();
void loop() {
float temp = dht.readTemperature();
float hum = dht.readHumidity();
float pressure = bmp.readPressure() / 100.0;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("T:");
lcd.print(temp);
lcd.print("C H:");
lcd.print(hum);
lcd.setCursor(0, 1);
lcd.print("P:");
lcd.print(pressure);
lcd.print("hPa");
delay(2000);
Expected Output:
T:25.0C H:60.0
P:1012.3hPa
Applications:
- Environmental monitoring
- STEM education
- Weather trend observation