Mini Weather Station Using Arduino Nano

This is a simple and fun project with pocket friendly budget.

Feb 11, 2020

38913 views

49 respects

Components and supplies

1

Arduino Nano R3

1

DHT 11 module

1

USB A to mini USB B cable

1

3D PRINTED ENCLOSURE

1

BMP-280 PRESSURE SENSOR

1

1.44 inch ST7735 LCD Display

Tools and machines

1

Double sided tape

1

Soldering iron (generic)

1

3D Printer (generic)

1

Soldering Wire

Apps and platforms

1

Fusion 360

1

Arduino IDE

Project description

Code

THE CODE

c_cpp

THIS IS THE RELEVANT SKETCH FOR THE PROJECT, THE COMMENT STATEMENTS WILL EXPLAIN THE WORKING

Downloadable files

CIRCUIT DIAGRAM

YOU JUST NEED TO FOLLOW THE WIRING SHOWN.

CIRCUIT DIAGRAM

CIRCUIT DIAGRAM

YOU JUST NEED TO FOLLOW THE WIRING SHOWN.

CIRCUIT DIAGRAM

Documentation

3D PARTS

THIS IS THE STL FILE FOR THE 3D PRINTED PARTS I USED

3D PARTS

3D PARTS

THIS IS THE STL FILE FOR THE 3D PRINTED PARTS I USED

3D PARTS

Comments

Only logged in users can leave comments

GoneXc

a year ago

Everything lights up but the sensor values don't change. Tried other sensors to no avail. Advice appreciated

Anonymous user

2 years ago

Is there a way to do this without the screen and have it use the serial monitor instead? I ordered a screen but am not sure when it will be in.

Anonymous user

2 years ago

This is an excellent project, thank You.

dnbakshi07

2 years ago

Thanks a lot for the appreciation.

Anonymous user

2 years ago

Why haas 3d model been deleted?

Cynicroute

2 years ago

Nice work! Just curious why you opted for the BMP and DHT sensors rather than a BME280?

dnbakshi07

2 years ago

Thanks. You're right in pointing that out. Two separate sensors have been used to keep the cost of production low. The price of BME280 is more than twice the DHT 11 and BMP 280 combined.

Anonymous user

2 years ago

Good morning This is my first time here and I saw this Mini Weather Station project which I really like. so I copied the program code and compiled in arduino, then I uploaded to arduino nano everything went fine so I bought the remaining elements for the project and here the problems started after uploading the code on the display I only have the information Connection Error no reading from sensors, I'm not a programmer I'm a pensioner and for myself (so as not to be bored) I wanted to make such a weatherwoman, please help, I assure you that the sensor connections are correct.

Anonymous user

2 years ago

Thank you for the post. I have enjoyed using this as my first Arduino project. Problems I encountered along the way: 1) Wiring diagrams and labels can change a fair amount between brands of TFT screen. I have not used the same screen in my build (however it is very similar), and my pin outs were labelled differently, but it will works fine. GCK = SCL AO = RS 2) Anyone interested in more colours? Add these to your header ☺ #define TFT_BLACK 0x0000 #define TFT_WHITE 0xFFFF #define TFT_GRAY 0x7BEF #define TFT_LIGHT_GREY 0xDEFB #define TFT_GREEN 0x07E0 #define TFT_LIME 0x87E0 #define TFT_BLUE 0x001F #define TFT_MIDBLUE 0x2DDF #define TFT_RED 0xF800 #define TFT_AQUA 0x5D1C #define TFT_YELLOW 0xFFE0 #define TFT_MAGENTA 0xF81F #define TFT_CYAN 0x07FF #define TFT_DARK_CYAN 0x03EF #define TFT_ORANGE 0xFCA0 #define TFT_PINK 0xF97F #define TFT_BROWN 0x8200 #define TFT_VIOLET 0x9199 #define TFT_SILVER 0xA510 #define TFT_GOLD 0xA508 #define TFT_NAVY 0x000F #define TFT_MAROON 0x7800 #define TFT_PURPLE 0x780F #define TFT_OLIVE 0x7BE0 You need RGB565 colour codes if you plan to add/edit your own. 3) I have had to change the wiring from the diagram above. LED on the TFT takes 5V input, so use the 5V power out pin on the TFT to power your DHT11 and BMP280 or the DHT11 will not get enough power to output an accurate reading. Also move the ground wire for the DHT11 onto PIN29. This might require some splicing, choc blocks or soldering - take your pick. You can test your DHT11 using example DHT_Test or googling various method testing scripts. You will need to add libraries for this, but you *should* be able to run an example from your Sketch pad that gives you a serial output to check your DHT11 is connected as it should be - and outputting the correct figures. I ended up using 'DHT Sensor Library' and Adafruit Unified Sensor respectively. If everything is wired correctly and you are supplying enough power then you should be good to go and your readings will be updating. 4) Maybe the OP could make a list of libraries necessary for the noobs to get this to compile. I had to do some quick (and easy) googling to add a few libraries. Thanks again OP. Next job is to get the case printed then mines finished. I might even try and add a battery. Will post back if I do. ☺

Anonymous user

2 years ago

Good morning This is my first time here and I saw this Mini Weather Station project which I really like. so I copied the program code and compiled in arduino, then I uploaded to arduino nano everything went fine so I bought the remaining elements for the project and here the problems started after uploading the code on the display I only have the information Connection Error no reading from sensors, I'm not a programmer I'm a pensioner and for myself (so as not to be bored) I wanted to make such a weatherwoman, please help, I assure you that the sensor connections are correct.

dnbakshi07

2 years ago

Thanks a lot for the valuable information and suggestions.

Anonymous user

2 years ago

it is small and does not occupy space inside its case

dnbakshi07

2 years ago

Thanks for the idea. Will surely try it out.

Anonymous user

2 years ago

Good Morning! You could add a esp01 and send data or set up a simple page on the internet. Or even send the conditions via rss!

Anonymous user

2 years ago

Hello... Just read this article and looks very good. I would appreciate a brief explanation about the Libraries for this code. Why they are need and for what are they? Thanks

dnbakshi07

2 years ago

Thanks for the suggestion. I will surely look into it.

Anonymous user

2 years ago

Great project! I would like to see "trends" for T/RH/pressure. Small arrow displayed next to the value with hysteresis (maybe average from last 20 measurements). Is that possible? Thank you! Also ESP01 wifi module to use as IoT (Thingspeak) would be also great!

dnbakshi07

2 years ago

Thanks that you liked the project. I think a little tweak in the sketch can allow us to show the trends using arrows and that will be a really good modification.

Anonymous user

2 years ago

Hello. i have a issue with my version all the code are same as yours but mine didnt shows the humidity :( can anyone please tell me whats wrong?

Anonymous user

2 years ago

Why haas 3d model been deleted?

Anonymous user

3 years ago

Good morning This is my first time here and I saw this Mini Weather Station project which I really like. so I copied the program code and compiled in arduino, then I uploaded to arduino nano everything went fine so I bought the remaining elements for the project and here the problems started after uploading the code on the display I only have the information Connection Error no reading from sensors, I'm not a programmer I'm a pensioner and for myself (so as not to be bored) I wanted to make such a weatherwoman, please help, I assure you that the sensor connections are correct.

Anonymous user

3 years ago

Hello. i have a issue with my version all the code are same as yours but mine didnt shows the humidity :( can anyone please tell me whats wrong?

Anonymous user

4 years ago

Is there a way to do this without the screen and have it use the serial monitor instead? I ordered a screen but am not sure when it will be in.

Anonymous user

5 years ago

Thank you for the post. I have enjoyed using this as my first Arduino project. Problems I encountered along the way: 1) Wiring diagrams and labels can change a fair amount between brands of TFT screen. I have not used the same screen in my build (however it is very similar), and my pin outs were labelled differently, but it will works fine. GCK = SCL AO = RS 2) Anyone interested in more colours? Add these to your header ☺ #define TFT_BLACK 0x0000 #define TFT_WHITE 0xFFFF #define TFT_GRAY 0x7BEF #define TFT_LIGHT_GREY 0xDEFB #define TFT_GREEN 0x07E0 #define TFT_LIME 0x87E0 #define TFT_BLUE 0x001F #define TFT_MIDBLUE 0x2DDF #define TFT_RED 0xF800 #define TFT_AQUA 0x5D1C #define TFT_YELLOW 0xFFE0 #define TFT_MAGENTA 0xF81F #define TFT_CYAN 0x07FF #define TFT_DARK_CYAN 0x03EF #define TFT_ORANGE 0xFCA0 #define TFT_PINK 0xF97F #define TFT_BROWN 0x8200 #define TFT_VIOLET 0x9199 #define TFT_SILVER 0xA510 #define TFT_GOLD 0xA508 #define TFT_NAVY 0x000F #define TFT_MAROON 0x7800 #define TFT_PURPLE 0x780F #define TFT_OLIVE 0x7BE0 You need RGB565 colour codes if you plan to add/edit your own. 3) I have had to change the wiring from the diagram above. LED on the TFT takes 5V input, so use the 5V power out pin on the TFT to power your DHT11 and BMP280 or the DHT11 will not get enough power to output an accurate reading. Also move the ground wire for the DHT11 onto PIN29. This might require some splicing, choc blocks or soldering - take your pick. You can test your DHT11 using example DHT_Test or googling various method testing scripts. You will need to add libraries for this, but you *should* be able to run an example from your Sketch pad that gives you a serial output to check your DHT11 is connected as it should be - and outputting the correct figures. I ended up using 'DHT Sensor Library' and Adafruit Unified Sensor respectively. If everything is wired correctly and you are supplying enough power then you should be good to go and your readings will be updating. 4) Maybe the OP could make a list of libraries necessary for the noobs to get this to compile. I had to do some quick (and easy) googling to add a few libraries. Thanks again OP. Next job is to get the case printed then mines finished. I might even try and add a battery. Will post back if I do. ☺

dnbakshi07

2 years ago

Thanks a lot for the valuable information and suggestions.

Anonymous user

2 years ago

Good morning This is my first time here and I saw this Mini Weather Station project which I really like. so I copied the program code and compiled in arduino, then I uploaded to arduino nano everything went fine so I bought the remaining elements for the project and here the problems started after uploading the code on the display I only have the information Connection Error no reading from sensors, I'm not a programmer I'm a pensioner and for myself (so as not to be bored) I wanted to make such a weatherwoman, please help, I assure you that the sensor connections are correct.

mattlogue

5 years ago

How does it know cloudy sunny.. u need a light sensor pouted up and down or n and s and close values are cloudy. No http code to wx underground, good place, or use weather.gov. I was thinking of building wx station by yesterday... Got frstratrated trying to make an ammnetor thingy

Anonymous user

5 years ago

Hello... Just read this article and looks very good. I would appreciate a brief explanation about the Libraries for this code. Why they are need and for what are they? Thanks

dnbakshi07

2 years ago

Thanks for the suggestion. I will surely look into it.

Anonymous user

5 years ago

This is an excellent project, thank You.

dnbakshi07

2 years ago

Thanks a lot for the appreciation.

Cynicroute

5 years ago

Nice work! Just curious why you opted for the BMP and DHT sensors rather than a BME280?

dnbakshi07

2 years ago

Thanks. You're right in pointing that out. Two separate sensors have been used to keep the cost of production low. The price of BME280 is more than twice the DHT 11 and BMP 280 combined.

Anonymous user

5 years ago

Great project! I would like to see "trends" for T/RH/pressure. Small arrow displayed next to the value with hysteresis (maybe average from last 20 measurements). Is that possible? Thank you! Also ESP01 wifi module to use as IoT (Thingspeak) would be also great!

dnbakshi07

2 years ago

Thanks that you liked the project. I think a little tweak in the sketch can allow us to show the trends using arrows and that will be a really good modification.

Anonymous user

5 years ago

it is small and does not occupy space inside its case

dnbakshi07

2 years ago

Thanks for the idea. Will surely try it out.

Anonymous user

5 years ago

Good Morning! You could add a esp01 and send data or set up a simple page on the internet. Or even send the conditions via rss!