Introduction: Low Power Weather Station
Now in it's third version and having been tested for over two years, my weather station gets upgraded for better low power performance and data transfer reliability.
Power consumption - not a problem in the months other than December and January, but in these very dark months the solar panel, although rated at 40 Watts, was unable to keep up with the demand of the system ... and most of the demand came from the 2G FONA GPRS module which transmits the data directly to the interwebs.
The next problem was with the FONA GPRS module itself, or more probably the cell phone network. The device would work perfectly for weeks / months, but then suddenly stop for no apparent reason. Apparently the network does try to send some kind of 'system update info' which, if not accepted, causes the device to get booted off the network, so GPRS is not really a maintenance free solution for data transmission. It's a shame because when it did work, it worked really nicely.
This upgrade uses the low power LoRa protocol to send the data to a Raspberry Pi local server, which then will sends it on to the interwebs. In this way, the weather station itself can be low power on a solar panel and the 'heavy lifting' part of the process, done somewhere within WIFI range on mains power. Of course, if you have a public LoRa gateway within range, the Raspberry Pi would not be required.
Building up the weather station PCB is easy as the SMD components are all quite large (1206) and everything on the PCB works 100%. Some of the components, namely the wind instruments, are quite expensive but can sometimes be found second hand on Ebay.
Step 1: Components
Arduino MKR1300 LORAWAN ......................................................................... 1 of
Raspberry Pi (optional dependant on local LoRa gateway availability) ............ 1 of
BME280 for pressure, humidty, temperature and altitude ................................ 1 of
RJ 25 connector 477-387 ................................................................................. 1 of
L7S505 ............................................................................................................. 1 of
Beeper 754-2053 .................................... 1 of
Shottky diode (1206) .......................................... 2 of
R1K restors .......................................... 3 of
R4.7K resistor ....................................... 1 of
C100nF capacitor ................................... 3 of
R100K ................................................... 1 of
R10K ..................................................... 4 of
C1uF ...................................................... 1 of
C0.33uF ................................................ 1 of
R100 ..................................................... 1 of
R0 ........................................................ 1 of
Dallas DS18B20 temperature probe ............ 1 of
PCB ............................................................... 1 of
Rain gauge .................................................... 1 of
Soil probe ……………………………………… 1 of (see step 6 for DIY probe)
A100LK anemometer ................................ 1 of
W200P wind vane ......................................1 of
Step 2: How It Works
It's easy enough to get sensors working for things like temperature, humidity and pressure but some of the otheres are quite tricky, although all the code is included in this blog.
1. The rain gauge is on an 'interrupt' and works on when a change is detected. The rain enters the instrument and drips down on a see- saw rocker that rocks over once one end is full, triggering a magnetic sensor twice as it goes over. The rain sensor takes precedence over everything and works even if data is being transmitted.
2. The anemometer works by sending a low power pulse, the frequency of which is dependent on it's speed. It's very simple to code and uses very little power even though it needs to record about once every second to catch the most severe of gusts. The code keeps a running note of the average wind speed and the maximum gust during the recording session.
3. Although on first thoughts the wind vane would be easy to code, once the intricacies are explored, it's a lot more complicated. In essence, it's just a very low torque potentiometer, but the problem of getting readings from it is compounded by the fact it has a short 'dead zone' around the north direction. It needs pull down resistors and capacitors to prevent weird readings near north which then cause non linearity in the readings. Also, becuase the readings are polar, normal mean average calculations are not possible and so the more complicated mode needs to be calculated which involves creating a massive array of about 360 numbers! .... And that's not the end of it .... Special consideration has to be made concerning which quadrant the sensor is pointing in as if it is in the quadrant either side of north, the mode has to be treated differently.
4. The soil moisture is a simple conductivity probe, but to save energy and prevent corrosion, it's pulsed very quickly with one of the Arduino's spare digital pins.
5. The system sends data from the Arduino to the Raspberry Pi (or LoRa gateway) but also needs a 'call back' from the receiver to confirm that it has actually received the data properly before resetting all the various counters and averages and taking a fresh set of readings. A recording session might be about 5 minutes each, after which the Arduino attempts to send the data. If the data is corrupted or there is no internet connection , the recording session is extended until the call back indicates success. In this way, no maximum gust of wind nor rain measurement will be missed.
6. Although beyond the scope of this blog, once in the internet server (it's a big computer located in Ipswich, UK), the data is then assembled into a MySQL database which can be accessed using simple PHP scripts. The end user can also see the data displayed in fancy dials and graphs thanks to proprietary Java software by Amcharts. Then 'end result' can be seen here:
Step 3: Files
All Arduino, Raspberry Pi code files and the file for creating the PCB on 'Design Spark' software are loacted in Github repository here:
Step 4: Populating the PCB
No stencil is required for soldering the SMD components - just dab a bit of solder on the PCB pads and place the components with some tweezers. The components are large enough to do everything by eye and it does not matter if the solder looks messy or the components are a bit off centre.
Place the PCB in a toaster oven and heat to 240 degrees C using a K type thermometer probe to monitor temperatures. Wait for 30 seconds at 240 degrees and then turn off the oven and open the door to release the heat.
Now the rest of the components can be hand soldered.
If you want to buy a PCB, download the zipped gerber files here:
https://github.com/paddygoat/Weather-Station/blob/master/PCB/Gerbers_Weather%20station%203_Tx_01.zip
and upload them to JLC here: https://jlcpcb.com/
Select the 100 x 100 mm board size and use all the defaults. Cost is $2 + postage for 10 boards.
Step 5: Deployment
The weather station is deployed in the middle of a field with the wind instruments on a tall pole with guy cables. Details of deployment are given here:
Step 6: Previous Work
This instructable is the latest stage in on going project that has it's development history in seven other previous projects:
https://www.instructables.com/id/Arduino-GPRS-Weat...
https://www.instructables.com/id/Arduino-GPRS-Weat...
https://www.instructables.com/id/Setting-Up-an-A10...
https://www.instructables.com/id/Analogue-Sensors-...
https://www.instructables.com/id/Analogue-Wind-Van...
https://www.instructables.com/id/Arduino-Soil-Prob...
https://www.instructables.com/id/Arduino-GPRS-Weat...
![]() |
![]() |
![]() |
![]() |
![]() |

Participated in the
PCB Contest
18 Comments
Question 3 years ago
Hi, Where I can find the schematchs of the circuit? in the zip file on github I can't find anything
4 years ago on Step 6
Very much in awe. Great project
4 years ago
This is awesome! One quick question, do you have a rough total cost for the parts? Or, at least the major components like: Soil probe, Anemometer, Wind vane, etc.?
Reply 4 years ago
I will second Jimmy's request, also could you list the links for purchase of the items.
Thanks
Reply 4 years ago
Soil probe cost me about $15 to make. The wind vane and anemometer I got for free so don't know what costs are. I've seen them on ebay for $60 each.
4 years ago
Wow Amazing
Question 4 years ago on Introduction
Hi, thank you for this very useful project. I would like to make a similar
weather station. Can you send me a copy of your latest schematics?
Best wishes,
Lionel
Question 4 years ago on Step 6
Hello, and thank you for a great project. I'm looking for a simple way to monitor only temperature and humidity at 3 different levels in a alpine facility as we produce snow with our snowmaker. It is very different temperatures the higher up in the facility the snowmaker is placed, and when the snowmaker is running we need to monitor the temperature remotely so we don't have to go up to the snowmaker to check the temperature so very often. If the weather temperature drops very much and very fast it is important to react fast and go up there and shut down the snowmaker, otherwise it will only make wet slush and that is not the kind we want to happen. So to my question, would it be possible to get som help from you to make our more simple monitoring setup? We have power all the way up through the facility at each powerpole for the lights in the facility, so if we mount each sensor/setup at these poles it would be easy to get 220volt to each sensor/setup. I have to say i'm not an expert, but i do understand the most of what you have built, still i feel i need some help to "simplify" the setup because we only need temperature and humidity monitoring for our needs. Also it would be nice if it is possible to buy PCB boards from you if we decide to go for this project :-) Again, awesome job and fantastic system you have developed, and i hope to hear from you. My mail: morten@kvv.as Kind regards from Norway, Morten Nordby
Answer 4 years ago
WIFI wont give the range needed. Lora has up to 200 km with true line of sight.
Reply 4 years ago
I didn't see a range specified, but with the right antenna and the ESP8266 you could get 1mile or 1.6km, if you needed more, just simply attach it to an inexpensive UBNT radio and do 300+ km at 500 Mbps or higher depending on your needs and radio. I do this daily here to get other types of data to and from station to station. I'm just using it for a much different type of data including video and images.
Again, this is an amazing project, just adding another perspective to the question.
Good luck on the contest. :)
Reply 4 years ago
Good comment!
There are two reasons for using the LoRa module :
1. Very long range (up to 200km) and
2. Very low power consumption, especially when compared to WIFI modules.
Like you mentioned, antenna is important and getting it up high may be necessary to get line of sight.
Using an amplifier is (I believe) illegal on my island and output power is limited. If I was somewhere where I could amplify signal I'd use a Qorvo QPL9065 low noise amp and appropriate band pass filters to add 20 dB to signal strength.
Answer 4 years ago
I'm in no way stepping on this amazing project, it is incredible by the way, well put together and great time line of components.
MortenN8 -- I again, am just adding to any response the creator may post. I would consider adding something from the ESP family like the ESP8266, and using the onboard WiFi, which if put together correctly would allow this weather station or in your case just the temperature and humidity to broadcast to your "base station" from each of the poles, especially if you have line of sight to each one.
I am sure the creator will have a go to plan for you, but just wanted to add some thoughts.
Reply 4 years ago
WIFI wont give the range needed. Lora has up to 200 km with true line of sight.
Answer 4 years ago
MortenN8,
I too do not want to step on the makers toes either. But I do agree with parkerscott that an ESP8266 with Temp/Humidity Probe would be an easy and fairly cheap solution.
Cheers,
Jeff
Reply 4 years ago
WIFI wont give the range needed. Lora has up to 200 km with true line of sight.
4 years ago
This is an excellent and great use of a custom PCB! Thank you for sharing this with us, and good luck on the contest!!!!
Reply 4 years ago
Thanks - I'm hoping to win a mug!
4 years ago
That picture of your dog is amazing! I even saved it to my camera roll because I used to have a dog that looked like that :)
cool project too!