Mini Weather Station





Introduction: Mini Weather Station

In this project, we will be making a mini weather station that measures temperature and humidity and transmits them wirelessly to a ground station, which displays the readings on an LCD display!

It’s a fairly easy project and can be used either on its own or part of something bigger.

Step 1: List of Materials

For this project, we will be using:

- RF 433 transmitter/receiver module cost: ~2.00 USD

- DHT11 Humidity and temperature sensor cost: ~5.00 USD

- Two Arduino boards

- 16x2 LCD display HD44780 equivalent cost: ~2.00 USD

- 10k linear potentiometer cost: ~1.00 USD

- Jumper wires

- Two breadboards

About the RX433.

This module can make an open air connection up to 500m, depending on the voltage you power it with (operating voltage range: 3.5-12V) and the length of the antenna you provide. Here, 5V are used from the Arduino board to power the RF433. For an antenna, you can solder a simple single-strand wire, like the one you see on the various pictures, which is about 17.2cm long. Depending on the frequency of your model, you should find out the appropriate length for the antenna.

You can calculate it on a website like this: /kd4sai/antencal.html. But if you use a 433MHz transmitter, 17.2cm is the correct antenna length.

Step 2: Hardware Connections

In general, the connections are very simple. Follow the instructions and images above, and you should have no problems.

Transmitter Side:

Connecting DHT11


- the VCC pin on Arduino’s 5V output

- the GND pin to Arduino’s GND and

- the DATA pin to Arduino’s digital pin 4

Connecting RF433 transmitter


- the VCC pin on Arduino’s 5V output

- the GND pin to Arduino’s GND and

- the DATA pin to Arduino’s digital pin 12

Receiver Side:

Connecting RF433 receiver


- the VCC pin to 5V on Arduino

- the GND pin to Arduino’s GND and

- the DATA pin to Arduino’s digital pin 11

Note: one of the pins will not be connected anywhere.

Connecting the LCD display

To properly connect the LCD display, you will need to connect the following:

- LCD VCC pin to 5V pin

- LCD GND pin to GND pin

- LCD RS pin to digital pin 7

- LCD Enable pin to digital pin 6

- LCD D4 pin to digital pin 5

- LCD D5 pin to digital pin 4

- LCD D6 pin to digital pin 3

- LCD D7 pin to digital pin 2

Connecting the potentiometer


- one of the outer pins to Arduino’s 5V output

- the opposite outer pin to Arduino’s GND and

- the middle pin to LCD’s VO

The potentiometer is used to control the LCD’s contrast, so you should fiddle with the pot a bit, when powered up, to find that sweet spot!

Once you have connected everything, it should look something like in the image.

Step 3: Arduino Programming

We will be using codebender to program our Arduinos. It’s really easy and effortless to make it work. Also, all the necessary libraries are already provided to include in our code straight away, so you will not have to search and download them.

Three libraries have been used and their links are in the resources section, at the end of this Instructable if you need them.

Here is the code for your transmitter Arduino:

To program your arduinos via the embedded link above, you must install the appropriate plugin to your browser, as indicated in the message at the bottom right of the code window. Make sure to choose the correct board and COM port!
And the code for your receiver Arduino:

You can clone and edit the code in any way you prefer.

Step 4: Enjoy Your Mini Weather Station!

After making sure that everything works smoothly, you can take the project from the breadboard and onto a PCB! Power through batteries or a plug and you’re good to go!

Libraries’ links:

DHT11 library

Easy Transfer Virtual Wire library

Liquid Crystal library

5 People Made This Project!


  • Epilog Challenge 9

    Epilog Challenge 9
  • Paper Contest 2018

    Paper Contest 2018
  • Science of Cooking

    Science of Cooking

We have a be nice policy.
Please be positive and constructive.




would this work with a DHT22, for more acurate data?

Yes, you can use a DHT22 sensor with some minor code modifications. Instead of the DHT11 library I am using Adafruit's DHT-sensor-library ( which allows you to easily swap between the DHT11 and DHT22 sensors.

I can provide the code but need to find a convenient way to post it. I am new to this posting online stuff :)


alini I loaded your code into my transmitter and switched out the DHT11 with a 22 and it worked perfectly. Thanks.

I have not tried using a DHT22 on this project, but it should. Please take a look here for the use of libraries for the DHT series.

I had the project working, "Everything was working" then I noticed that the degrees were in Celsius, so I thought I would change the degrees to Fahrenheit, well when I did that, I did not get any readings, so I changed the code back to Celsius, well that did not change anything back to where it was and I still got no readings, just a blacken in squares on the display of the LCD. I felt stupid and wondering why I did it in the first place and it was curiosity of course.

Even changing out the DHT11 did not change anything, so now I am not sure what it could be?

I have a problem with my project. I entered the codes into the boards and there is no reading on the LCD display ( Temp: 0C and Humi: 0% ).

Temp in the room is 72 degrees.

I also remember you telling me that once I have entered the codes into the boards that the project could power itself without being plugged in and that is not happening as well, it seems like it needs to be plugged in to my laptop.


I was wondering if there is anything that needs to changed with any of both codes for either of the arduino boards?