• Skip to main content
  • Skip to primary sidebar

Homemade Circuit Projects

Need circuit help? Post them in the comments! I've answered over 50,000!

Blog | Categories | About | Contact | Calculators-online
You are here: Home / Sensors and Detectors / Make this Simple Weather Station Project for Homes and Offices

Make this Simple Weather Station Project for Homes and Offices

Last Updated on December 5, 2024 by Swagatam 6 Comments

In this post I will show how to construct an interesting Arduino based mini weather station project, which can show you ambient temperature, humidity, pressure, air quality and much more data from your surroundings, which can be used to predict weather from home.

If you are interested in meteorology this project might come in handy for studying about local weather conditions and short term changes. The proposed project is solid state design, which means no moving parts exist.

This project may be placed in indoor or semi-indoor conditions, where the circuit is away from direct sunlight or heavy wind or moisture which can deteriorate the sensors on-board.

The Design:

The proposed mini weather station circuit project is built around Arduino, which is brain of the weather station which does collect lots of data from various sensors and process them and displays on 16x2 LCD screen.

You can choose your favorite arduino board for this project. The circuit consists of three sensors MQ-135, BMP180 and DHT11. Let’s see what each sensor does in detail.

MQ-135 Sensor:

The MQ-135 is air quality measuring sensor, which can detect carbon dioxide, alcohol, benzene, smoke, butane, propane etc.

If the chemical concentration these gases are high in the air, then we can say that air is polluted.

The sensor can detect change in the concentration of pollutants in the air and gives out appropriate voltage level.

The sensor’s output voltage is directly proportional to chemical concentration level in the air.

The voltage variation from sensor is fed to Arduino; we have pre-determined threshold levels in the program.

When it crosses the threshold level the microcontroller tell us whether the air is safe or not.

Circuit Diagram

interface MQ135 sensor with weather station circuit

The above diagram shows the wiring diagram. This sensor needs external 5V supply because it has heating element inside the sensor which consumes around 1 Watt.

The power from arduino‘s power pin can’t supply higher current.

The heating element keeps the sensor warm and helps to sample appropriate amount of chemical concentration in air. The sensor takes about couple of minutes to reach optimum temperature.

DHT11 Sensor:

DHT11 sensor is popularly known as Temperature and humidity sensor. It can measure temperature and humidity from surrounding as the name suggests.

It is a 4 pin device but only 3 of them are used. It may look like a very simple component, but it has a microcontroller inside the sensor which passes the data in digital form to the arduino board.

It send 8 bit data every second to arduino, to decode the received signal, we need to include library in the code which is designed to handle it. The link for the library is given later part of the article.

Circuit diagram:

 

interface DH11 with arduino

The circuit connection from sensor to arduino is very simple. The output of the sensor is connected to A1 pin of arduino. The supply Vcc and GND are connected to power supply pins of arduino.

Note: Please make sure that your sensor has built in pull-up resistor, if it doesn’t have one; connect a 4.7K pull-up resistor at output pin of the DHT11 sensor.

BMP180 sensor:

The BMP180 is barometric sensor; it can measure atmospheric pressure, altitude and temperature.

The temperature measurement from this sensor is neglected as we have dedicated sensor for measuring the ambient temperature.

The sensor measures altitude of the setup from the sea level, it is also one of the parameter used in meteorology.

Circuit Diagram:

interfacing BMP180 sensor with Arduino

It uses I2C communication protocol, the SDA pin goes to A4 of arduino and SCL goes to A5 of arduino. The Vcc and GND are connected to power supply pins of arduino.

LCD connection:

humidity sensor using Aduino

 
The LCD display shows all the data from the sensors. The connection between LCD display and arduino is standard; we can find similar connection on many other LCD based projects. Adjust the 10K potentiometer for optimum visibility from the LCD display.

Author’s Prototype:   

weather station prototype image

Here is the author’s prototype of a mini weather monitor circuit where all the sensor shown in the schematics are connected to the arduino board.

Note: The circuit connection from each sensors and LCD display should be connected to single arduino board.

We have given discrete sensor connection on each schematic to avoid confusion while duplicating the circuit.

Download the Library files before uploading the code:

DHT11 library: https://arduino-info.wikispaces.com/file/detail/DHT-lib.zip

BMP180 library: github.com/adafruit/Adafruit_BMP085_Unified.git

Program Code:

#include <LiquidCrystal.h>
#include <dht.h>
#include <Wire.h>
#include <Adafruit_BMP085.h>
#define DHTxxPIN A1
LiquidCrystal lcd(12,11,5,4,3,2);
dht DHT;
Adafruit_BMP085 bmp;
int ack;
int input = A0;
unsigned long A = 1000L;
unsigned long B = A * 60;
unsigned long C = B * 2;
int low = 300;
int med = 500;
int high = 700;
int x = 4000;
void setup()
{
Serial.begin(9600);
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("Sensors are");
lcd.setCursor(0,1);
lcd.print("getting ready");
delay(C);
}
void loop()
{
ack=0;
int chk = DHT.read11(DHTxxPIN);
switch (chk)
{
case DHTLIB_ERROR_CONNECT:
ack=1;
break;
}
if(ack==0)
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Temp(*C)= ");
lcd.print(DHT.temperature);
lcd.setCursor(0,1);
lcd.print("Humidity(%) = ");
lcd.print(DHT.humidity);
delay(x);
}
if(ack==1)
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("NO DATA");
lcd.setCursor(0,1);
lcd.print("Check Sensor");
delay(x);
}
if (!bmp.begin())
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("BMP180 sensor");
lcd.setCursor(0,1);
lcd.print("not found");
while (1) {}
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("----Pressure----  ");
lcd.setCursor(0,1);
lcd.print(bmp.readPressure());
lcd.print("  Pascal");
delay(x);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("----Altitude----");
lcd.setCursor(0,1);
lcd.print(bmp.readAltitude(101500));
lcd.print("  meter");
delay(x);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("  Air Quality:");
if(analogRead(input)==0)
{
lcd.setCursor(0,1);
lcd.print("  Sensor Error");
delay(x);
}
if(analogRead(input)<=low && analogRead(input)>0)
{
lcd.setCursor(0,1);
lcd.print("      GOOD");
delay(x);
}
if(analogRead(input)>low && analogRead(input)<med)
{
lcd.setCursor(0,1);
lcd.print("  GETTING BAD");
delay(x);
}
if(analogRead(input)>=med && analogRead(input)<high)
{
lcd.setCursor(0,1);
lcd.print("   VERY POOR");
delay(x);
}
if(analogRead(input)>=high)
{
lcd.setCursor(0,1);
lcd.print("     WORST");
delay(x);
}
}

NOTE:

The explained mini weather station circuit takes 2 minutes to show the readings from the sensor, until then it displays “Sensors are getting ready”. This is because the MQ-135 sensor takes 2 minute to reach optimum operating temperature.

You'll also like:

  • 1.  Very Low Frequency (VLF) Detector Circuit
  • 2.  Precision Current Sensing and Monitoring Circuit using IC NCS21xR
  • 3.  Buck Converter Circuit Using Arduino
  • 4.  Arduino Tachometer Circuit for Precise Readings
  • 5.  Introduction to RGB Colour sensor TCS3200
  • 6.  3 Simple Frequency Counter Circuits Discussed

About Swagatam

I am an electronics engineer with over 15 years of hands-on experience. I am passionate about inventing, designing electronic circuits and PCBs, and helping hobbyists bring their projects to life. That is why I founded homemade-circuits.com, a website where I share innovative circuit ideas and tutorials. Have a circuit related question? Leave a comment.... I guarantee a reply!

Previous Post: « How to Build a Simple Cloth Dryer for Rainy Season
Next Post: Clap Operated Toy Car Circuit »

Reader Interactions

Comments

  1. suresh says

    December 25, 2017 at 9:10 pm

    sir saying bmp180 not found

    Reply
    • Swagatam says

      December 25, 2017 at 9:30 pm

      suresh, I could not understand the problem, please clarify with more explanation!!

      Reply
  2. Oyekunle Quadri says

    June 10, 2017 at 10:18 am

    Thanks Mr.Swag… The connection and leg numbering of the IC written on the board correspond to the numbering when pull off the board?

    Reply
    • Swagatam says

      June 11, 2017 at 7:59 am

      Yes the numbering correspond to the pinouts of the IC…

      Reply
  3. Oyekunle Quadri says

    June 5, 2017 at 12:40 pm

    Nice project sir Swag…
    My question is, after the programming of the arduino. I can just remove the IC and solder it along with other components?
    Thanks

    Reply
    • Swagatam says

      June 6, 2017 at 3:26 am

      Thanks Oyenkule, yes that's possible but you will have to be extremely careful with the connections…

      Reply

Need Help? Please Leave a Comment! We value your input—Kindly keep it relevant to the above topic! Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

Subscribe to New Circuit Ideas

Categories

  • Arduino Projects (87)
  • Audio and Amplifier Projects (132)
  • Automation Projects (17)
  • Automobile Electronics (101)
  • Battery Charger Circuits (82)
  • Datasheets and Components (102)
  • Electronics Theory (143)
  • Free Energy (37)
  • Games and Sports Projects (11)
  • Grid and 3-Phase (19)
  • Health related Projects (25)
  • Home Electrical Circuits (12)
  • Indicator Circuits (14)
  • Inverter Circuits (87)
  • Lamps and Lights (142)
  • Meters and Testers (69)
  • Mini Projects (46)
  • Motor Controller (64)
  • Oscillator Circuits (27)
  • Pets and Pests (15)
  • Power Supply Circuits (108)
  • Remote Control Circuits (50)
  • Security and Alarm (64)
  • Sensors and Detectors (100)
  • Solar Controller Circuits (59)
  • Temperature Controllers (42)
  • Timer and Delay Relay (49)
  • Transmitter Circuits (29)
  • Voltage Control and Protection (37)
  • Water Controller (36)

Calculators

  • Battery Back up Time Calculator
  • Capacitance Reactance Calculator
  • IC 555 Astable Calculator
  • IC 555 Monostable Calculator
  • Inductance Calculator
  • LC Resonance Calculator
  • LM317, LM338, LM396 Calculator
  • Ohm’s Law Calculator
  • Phase Angle Phase Shift Calculator
  • Power Factor (PF) Calculator
  • Reactance Calculator
  • Transistor Astable Calculator
  • Transistor base Resistor Calculator
  • Voltage Divider Calculator
  • Wire Current Calculator
  • Zener Diode Calculator
  • Filter Capacitor Calculator
  • Buck Converter Calculator
  • Boost Converter Calculator
  • Solar Panel, Inverter, Battery Calculator
  • Wire Current Calculator
  • SMPS Transformer Calculator
  • IC SG3525, SG3524 Calculator
  • Inverter LC Filter Calculator

People Also Search

555 Circuits | 741 Circuits | LM324 Circuits | LM338 Circuits | 4017 Circuits | Ultrasonic Projects | SMPS Projects | Christmas Projects | MOSFETs | Radio Circuits | Laser Circuits | PIR Projects |

Recent Comments

  • Swagatam on Simple Delay Timer Circuits Explained
  • Swagatam on The Role of Inductor Coil in SMPS
  • Swagatam on 7 Modified Sine Wave Inverter Circuits Explored – 100W to 3kVA
  • Swagatam on 7 Modified Sine Wave Inverter Circuits Explored – 100W to 3kVA
  • Victor on 7 Modified Sine Wave Inverter Circuits Explored – 100W to 3kVA

Company

  • Privacy Policy
  • Cookie Policy
  • About Me
  • Contact
  • Disclaimer
  • Copyright
  • Videos
  • Sitemap

Social Profiles

  • Twitter
  • YouTube
  • Instagram
  • Pinterest
  • My Facebook-Page
  • Quora
  • Stack Exchange
  • Linkedin
  • © 2025 · Swagatam Innovations