book collections email follower instructable user
Picture of ESP32 Weathercloud Weather Station

Last year, I published my biggest Instructable to date called Arduino Weathercloud Weather Station. It was very popular I would say. It was featured on the Instructables homepage, Arduino blog, Wiznet museum, Instructables Instagram, Arduino Instagram and also on Weathercloud Twitter. It even was one of the top 100 Instructables of 2018! And that was a very big deal for a small maker like me. I was pleased to see so many positive reactions and I carefully read through every single comment and tip. For about 8 months I've been working on this new, refined station. I fixed and improved various things. I tried to make it smaller, simpler, smarter, cooler and leave the acceptable cost of 150€ (165$). The station is mounted at a robotic farm near Senec, Slovakia. Here is the current data.

I will try to explain my whole thought process here so if you just want to get right on the build just skip right to step 3.



-measurement of 12 meteorological values

-usage of 8 distinct sensors

-IoT - data is public on cloud

-5V 500mA operation

-communication via Wi-Fi

-completely weatherproof

-looks cool

-it's DIY


Thanks very much to Lab Cafe makerspace for providing space and support while building this station. Go check them out!

Photo credit: ME (of course) + Viktor Demčák

Step 1: Design

Picture of Design

Designing a weather station is a long and thoughtful process.
You have so many options to choose from. These are the main things you should think about when designing a weather station (or at least I did so):

1) BUDGET. This is pretty self-explanatory.

2) LOCATION. This is very important since it affects the installation as well as the communication technology and the required power source. Remote weather stations need long range transmitters and a self-sustainable power source such as a solar panel.

3) MEASURED VARIABLES. Do you just want to measure temperature or humidity? Then you can put the probe nearly anywhere. But if you want to measure rainfall, wind, solar radiation, UV index or other stuff related to sun or precipitation then the sensors cannot be in a shadow and cannot be blocked neither from upside or from the sides.

4) ACCURACY. Do you want your measurements to be precisely calibrated and comparable to the national weather institute or are rather amateur values enough for you?


So by now you should have a pretty good image of what you want. So let's get to the drawing board! Here are some basic rules I did think about:

1) PROTECT THE TEMPERATURE SENSOR. You absolutely need to do this. Heat can travel in so many ways it can radiate and conduct through the structure of the station itself. So try to coat all of the metal parts, and put the temperature sensor in a radiation shield. I know, my radiation station isn't perfect but it helps.

2) PUT THE WIND SENSOR HIGH UP. Wind sensors are supposed to be placed 10m high by the international standards. I don't even have the money to buy a 10m pillar so a 2m pipe above a rooftop is enough for me.

3) CLEAR AREA AROUND AND ABOVE THE STATION. If you want to measure sunlight you cannot have the sensor in a shadow. If you want to measure rainfall you cannot have something blocking the droplets. So make sure that the area around and above the station is cleared.


Let's continue. So, for my station I decided I want to measure these variables: Air temperature, ground temperature, relative humidity, atmospheric pressure, heat index, dew point, wind chill, rainfall, solar radiation, UV index, wind speed and wind direction. This is 8 sensors in total from which there are 3 small, PCB-mountable modules and 5 external probes. I will need 2 separate microcontrollers, one for handling just rainfall measurements and the second one for everything else.

I decided to put everything I can on a single PCB. I put the PCB inside a IP65 box with transparent cover, so that sunlight can pass through to the solar radiation and UV index sensors. All of the other sensors will be connected to the main control box with a cable. So that's it for my design.

RimvydasP3 days ago
If your main board is ESP32, why you need Arduino? Arduino only for rain counter? If EP32 can connect to ntp time server, why you need DS3231 RTC ?
Jakub_Nagy (author)  RimvydasP3 days ago
Right. The Arduino is only for rain counting. The rain sensor outputs data only for about 60ms so if the ESP32 processor is doing anything else for more than 60ms (which is probable) it won't detect it. Sure it could be done with interrupts but there could be some crashes and errors happening. I also experimented with a flip flop circuit but it wasn't perfect.

You could absolutely do that. I actually coded it and it worked pretty good. But just in case it would not work I designed the PCBs with the RTC. After I got them I just used the RTC. It costs just 1€ so it's fine.
Jakub, received the PCB from JLCPCB today! Awesome quality! You comment ..."There have been some issues at the I2C line in my PCB"... The files were corrected? The main PCB pinout identifications of the RTC module is correct? See the attached photo.
Still waiting for the rest of the sensors, but making progress ! :-)

thank you.
Jakub_Nagy (author)  luisalfahotel6 days ago
Awesome! Yes it should be corrected but I didn't test it. But the I2C part seems flipped compared to mine (which is good). Anyway, mount the RTC with the battery side up, IC side down.

Awesome mount! I honestly really like your design. Good luck with the project!
mlesage15 days ago
Got the PCB last week! Can't wait to go on with this project! I was looking forward for something complete like this one! Thanks!!
Jakub_Nagy (author)  mlesage13 days ago
Awesome! Last week? You either live in China or you had very expensive shipping. Either way, I'm really happy to hear that and hope that the project goes well.

There have been some issues at the I2C line in my PCB. I corrected them but I didn't order and test the corrected PCB so it isn't 100%. Just let me know when something is wrong.
dionisij19 days ago
It is amazing!
Jakub_Nagy (author)  dionisij19 days ago
Thanks for the "tip"!
n4mwd24 days ago
Pretty cool, but the high current draw bugs me. Maybe that can get fixed in version 3.0. A station like that really screams solar panel so it could be 100% wireless. A half amp draw is just too much to be practical for solar considering the size of the weather station. Would it be possible to power the sensors selectively with FETs? So like instead of constantly checking the temp, maybe just power the sensor every 15 minutes just long enough to take a reading? So if you could get the average power draw down to 40mA you could power it with an 18650 for 2 days in the event of cloudy weather preventing the solar panel from working at its rated output. Then it would only take a 2 amp solar panel and one hour of direct sunlight to recharge the battery to its full capacity. Just thinking out loud.
Jakub_Nagy (author)  n4mwd23 days ago
I'm going to be completely honest with you. From the beginning, I knew that I would have a power outlet on site. That's why I didn't care about the power consumption at all. Half an amp is just an estimate. I didn't test it for with lower current because I don't have a bench power supply. I think it can be as low as a 100mA but I can't really tell.

Everything you are saying would absolutely be possible. With a TPL5110, I could get it to a 100mA while reading for 10 seconds, and then to 30uA in the sleep mode for 10 minutes. That's 163uA or 0.163mA average current consumption. I know how to optimize really well from my picoballoons, I just knew that this station wouldn't need it.

100% wireless sounds nice and all, but it isn't such as useful. Wi-Fi has range of around 20 meters. And when there's a Wi-Fi router 20 meters away from the station, there should be a power outlet as well. Solar power is cool but then it would make sense to also change the communication to GSM. Basically what I'm saying in step 1 "Design".

I have another 3 people which want another 3 stations built so if they'll want it to be solar powered, I can make it solar powered.
Yes, 0.163mA average current consumption would be really awesome. A solar powered unit would be autonomous and would be much easier to install - say at the top of a pole. You would only need gsm if you were installing it in the middle of a field somewhere - for example, a farmer that wants to check the weather conditions of his crops. Where I live, in South Florida, we can have hurricanes that knock out the power and that is when you want weather data the most. But if you only draw less than 1mA, then a simple battery backup would work just as well as solar. A single 18650 would last about a year on a charge.
Jakub_Nagy (author)  n4mwd23 days ago
I agree with everything. It is something to think about in the next version.
JDrago24 days ago
Great project. Very well done. Did you purchase or manufacture the anemometer and wind vane? If purchased can you provide a link. If you built them can you explain how you built them?
Jakub_Nagy (author)  JDrago23 days ago
Thanks. I did purchase both of the wind sensors from Britain. You can find the links in the BOM or right here:
GISMapper24 days ago
This looks great. Is there a way to export the data to a spreadsheet without uploading it to the internet?
Thanks for your great reply. This is a great project. You got my vote.
Jakub_Nagy (author)  GISMapper23 days ago
Thanks. Sure there is, but I'm not sure why would you want to do that. Do you want your data to be private? Then I would just setup a premium account. Even if I would be doing it with a spreadsheet, I would choose a cloud one such as Google Spreadsheets. Even though the ESP32 can save files on a SD card, I don't think it can handle writing in a spreadsheet format such as .xslx. So you would have the data in a .txt format which would be OK for climatology logging, but absolutely unnecessary and inconvenient when you want real time data. There is a large advantage to the cloud services that's why everything is IoT now. Oh and also, Weathercloud has a function called "Reports" which can basically make you a spreadsheet from data from your station. You can choose any value and any time period you want.
MarcelS923 days ago
Really cool, very well done! It seems to me, though that you missed one cheap but crucial component when you designed your enclosure: the pressure vent. I learned this the hard way when I built an outdoor LoRaWAN gateway for the The Things Network ( Without a pressure vent condensate will soon start accumulating inside the enclosure.
Jakub_Nagy (author)  MarcelS923 days ago
Thanks! Oh that's exactly what I've been looking for. I'll add that ASAP to my station and Instructable as well.
daveyrb24 days ago
This is really neat, a nice project I will defanatly have a go at this. I have voted for you as well.
Jakub_Nagy (author)  daveyrb23 days ago
Thanks! ❤️
PaulB3324 days ago
Very impressed by your build. I am going to incorporate some of your design ideas in my next project.
Jakub_Nagy (author)  PaulB3323 days ago
I'll be happy to see the results!
Excellent and useful project.
Thank You for sharing it. I voted for you.
Jakub_Nagy (author)  Open Green Energy24 days ago
Thanks very much!
Sarah8024 days ago
This looks great for our experimental farm. I will come back to it after finishing my current projects!
Jakub_Nagy (author)  Sarah8024 days ago
Happy to hear that! Let me know when you will start the build.
CB7124 days ago
Pretty neat.
Jakub_Nagy (author)  CB7124 days ago