How to Build a Simple Arduino-Powered WiFi Weather Station for Under


In this article, I will show you how to build your own simple WiFi-enabled weather station using an Arduino microcontroller and basic electronic components for under $50. Having your own Arduino weather station allows you to monitor temperature, humidity, barometric pressure, and more right from home.

This project is perfect for Arduino beginners looking to build something useful and educational. I will provide step-by-step instructions on:

So let's get started!

Parts and Tools Needed

Building this Arduino weather station requires just a few components that can all be purchased online for very cheap.

Here are the parts and tools you'll need:

Arduino Board

The brain of this weather station is an Arduino Uno or Arduino Nano microcontroller board. Either one will work for this project. The Arduino runs the software code and collects sensor data.

DHT22 Temperature and Humidity Sensor

To measure ambient temperature and humidity, we'll be using the DHT22 sensor. This digital sensor provides accurate readings with a good sampling rate.

DHT22 Sensor

BMP180 Barometric Pressure Sensor

The BMP180 sensor will be used to measure atmospheric pressure and altitude data. This small sensor connects easily to Arduino.

BMP180 Sensor

ESP8266 WiFi Module

An ESP8266 module will be used to get the weather data into the cloud over WiFi. This allows the sensor data to be accessed wirelessly.

ESP8266 Module


A solderless breadboard is needed to easily connect the Arduino and sensors together.


Connecting Wires

Jumper wires are needed to connect the components to the breadboard and Arduino. Both male-to-male and male-to-female wires will be useful.

Jumper Wires


You'll need a computer to program the Arduino and view the sensor data. Screwdrivers, wire cutters, and pliers may also come in handy.

That covers the key components and tools needed for this Arduino WiFi weather station project. Now let's look at how to put it all together.

Assembling the Circuit

With all the parts on hand, it's time to assemble the circuit on the breadboard. Follow these steps carefully when connecting everything together:

1. Insert the Arduino

Place the Arduino Uno or Nano board on the breadboard spanning the center trench. Make sure it is oriented correctly.

2. Connect the DHT22

Place the DHT22 sensor on the breadboard and connect VCC to 5V, GND to ground, and data to Arduino pin 7.

3. Connect the BMP180

Connect the BMP180's VCC, GND, SCL, and SDA pins to 5V, ground, Arduino SCL, and Arduino SDA respectively.

4. Connect the ESP8266

Similarly, connect the ESP8266's VCC, GND, TX, and RX pins. Make sure to match the pin labels.

5. Connect Remaining Pins

Use jumper wires to connect any remaining VCC, GND, and data pins as needed.

Double check that all components are connected properly before powering on. LEDs on each component should light up when powered on successfully.

Uploading the Arduino Code

Now that the circuit is assembled, it's time to upload the Arduino sketch that reads the sensor data and outputs it over WiFi.

1. Install Required Libraries

You'll need to install the DHT, BMP180, and ESP8266WiFi libraries for Arduino. Search for these in the Arduino IDE library manager.

2. Get the Sensor Code

For this project, I used the following Arduino code which pulls together all the required libraries: You can download it there or copy and paste it into a new Arduino sketch.

3. Upload the Code

With the code open in Arduino IDE, select your board type and COM port. Then upload the sketch. You may need to tweak some settings like WiFi name and password in the code.

Once uploaded, the sensors will begin collecting temperature, humidity, pressure, and altitude data and sending it to the cloud!

Viewing the Weather Data Over WiFi

The last step is viewing the live sensor data from anywhere over WiFi. The code is set to send data to which stores the data in the cloud and provides nice data visualizations.

1. Create a Thingspeak Account

If you don't already have a Thingspeak account, visit and create a free account.

2. Set Up a New Channel

Follow the process to create a new channel in Thingspeak for your weather data. Specify temperature, humidity, pressure, etc as field names.

3. Copy the Write API Key

In the channel settings, copy the Write API key. Paste this into the marked location in your Arduino code. This allows the Arduino to send data to your channel.

4. View the Live Data!

Once running, you can view live graphs and charts of temperature, humidity, pressure, and more. Congrats, your DIY Arduino weather station is complete!

The weather data can be viewed from anywhere in the world on Thingspeak. You can also connect other devices like LCD displays to show the readings right on the Arduino.


Building your own Arduino-based weather station is a fun electronics project that provides useful environmental data from the comfort of home.

With this guide, you should have all the knowledge to:

The whole project can be completed in an afternoon for under $50! Let me know if you have any other questions in the comments. Now get out there and start monitoring your own weather!