Loading...

Weather monitoring system using Arduino - Arduino Geek



Hello everyone! Welcome to Arduino Geek. Today we will discuss about an Arduino based weather monitoring system. So let's get started.

Weather monitoring system using Arduino:

A weather monitoring system using Arduino can be a fun and educational project for anyone interested in electronics, programming, and meteorology. The system can be built using Arduino, sensors, and a few other components.

Components:

  1. Arduino board (such as Arduino UNO or Arduino Nano)
  2. Temperature sensor (such as the DHT11 or DHT22)
  3. Humidity sensor (such as the DHT11 or DHT22)
  4. Barometric pressure sensor (such as the BMP180 or BMP280)
  5. Light sensor (such as the photoresistor or LDR)
  6. Breadboard
  7. Jumper wires
  8. USB cable
  9. LCD screen (optional)

How to make a weather monitoring system using Arduino:

Step 1:

Connect the temperature and humidity sensors to the Arduino board using jumper wires. Use the 5V and GND pins on the Arduino board to power the sensors, and connect their data pins to two digital pins on the board (such as D2 and D3). Refer to the data sheet of the sensor for the pinout details.


Step 2:

Connect the barometric pressure sensor to the Arduino board using jumper wires. Use the 3.3V and GND pins on the board to power the sensor, and connect its data pins to two digital pins on the board (such as D4 and D5).

Step 3:

Connect the light sensor to the Arduino board using jumper wires. Use the 5V and GND pins on the board to power the sensor, and connect its data pin to an analog pin on the board (such as A0).


Step 4:

If you are using an LCD screen to display the data, connect it to the Arduino board using jumper wires. Refer to the data sheet of the LCD screen for the pinout details.

Step 5:

Open the Arduino IDE on your computer and write a code to read the data from the sensors. You can use the libraries for each sensor to simplify the code. Here is a sample code that reads the data from the DHT11 sensor and displays it on the serial monitor.

Step 6:

Upload the code to the Arduino board using the USB cable.

Step 7:

Monitor the data on the serial monitor of the Arduino IDE. If you are using an LCD screen, display the data on the screen using the LCD library.

Step 8:

To add more sensors, repeat steps 1-4 and modify the code accordingly.


With these steps, you can create a basic weather monitoring system using Arduino. You can expand the system by adding more sensors or integrating it with a cloud service to store and analyze the data.

Arduino Code:

Here is a sample code for a weather monitoring system using Arduino. This code reads data from the DHT11 temperature and humidity sensor, BMP180 barometric pressure sensor, and a photo resistor light sensor, and displays the data on an LCD screen:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Adafruit_BMP085.h>
#include <DHT.h>
#define DHTPIN 2          // Digital pin connected to the DHT sensor
#define DHTTYPE DHT11     // DHT 11
DHT dht(DHTPIN, DHTTYPE);

LiquidCrystal_I2C lcd(0x27, 16, 2);  // Set the LCD I2C address and size
Adafruit_BMP085 bmp;                // Create an object for the BMP085 sensor
int lightPin = A0;                  // Analog pin connected to the photoresistor
int lightVal = 0;                   // Variable to store the light value

void setup() {
  Serial.begin(9600);
  dht.begin();
  lcd.init();
  lcd.backlight();
  bmp.begin();
}

void loop() {
  float temp = dht.readTemperature();
  float humidity = dht.readHumidity();
  float pressure = bmp.readPressure() / 100.0F;
  lightVal = analogRead(lightPin);
  
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Temp: ");
  lcd.print(temp);
  lcd.print(" C");
  lcd.setCursor(0, 1);
  lcd.print("Humidity: ");
  lcd.print(humidity);
  lcd.print("%");
  
  Serial.print("Temperature: ");
  Serial.print(temp);
  Serial.print(" C, ");
  Serial.print("Humidity: ");
  Serial.print(humidity);
  Serial.print("%, ");
  Serial.print("Pressure: ");
  Serial.print(pressure);
  Serial.print(" hPa, ");
  Serial.print("Light: ");
  Serial.print(lightVal);
  Serial.println("");
  
  delay(2000);
}

Arduino Code Description:

In this code, we first include the necessary libraries for the LCD, BMP085 and DHT11 sensors. We then define the pins used by each sensor and create objects for them. In the setup function, we initialize the sensors and the LCD screen.

In the loop function, we read the temperature, humidity, pressure and light values from the sensors. We then display the temperature and humidity values on the LCD screen and print all the sensor values to the serial monitor. We also add a delay of 2 seconds to prevent the program from overwhelming the sensors.

You can modify this code to add more sensors or change the way the data is displayed.
 
close