Introduction: Arduino Ultra Low Power Weather Station
This guide will show you how to build a super low power weather station using an arduino nano, a bme 280 and the rf433 radio module, that will last about 1.5 to 2 years on 2 LiPo 18650's and the ability to expand it adding more sensors and a solar panel.
Step 1: Parts
- 1 x Arduino Pro mini (With the power led and voltage regulator removed)
- 1 x Bme280 sensor (any sensor would do, just add a few bits of code)
- 1 x Buck converter (The most efficient possible, OPTIONAL)
- 1 x Diode (OPTIONAL)
- 2 x 18650s(any battery would do if its in the range of 2-5.5v)
- 1 x Breadboard
- Some male and female headers and cables
- 1 x Rf433 transmitter (with antenna)
- 1 x solar panel (OPTIONAL)
- 1 x Weatherproof enclosure (I used an old Tupperware)
- 1 x Arduino Pro mini (In this case any arduino would do)
- 1 x Liquid Crystal display
- 1 x Rf433 Receiver (With antenna)
Step 2: Build It
Wire everything accordingly in the protoboard for the receiver, make sure to make the antenna according to your module's frequency with a page like this one. The length of the antenna should be the same for the receiver and transmitter.
Step 3: The Code
The receiver on the other side has no optimization for low power, although you can easily add it yourself.
Some options are commented in the code to save power but it can easily be uncommented for debugging purposes.
Step 4: Results
Measuring the current from the transmitter side shows a sleep current of about 11uA. It does this for around 24 seconds, and then transmit's Temperature, humidity and barometric pressure. Taking around 350ms to do so, and using around 11.5 mA. But you can easily add your own sensors and expand the weather station.
To calculate run time i used this handy calculator from Oregon embedded. Replacing the values in the online calculator shows us a run time of around 1.5 years, which is pretty acceptable taking into account the two 1,500mAh LiPos that are fitted . With the solar panel on the other hand the run time would be unlimitted with this kind of consumption.
I will later add a battery protection ic, or some code for monitoring the battery
I hope you found it useful, any questions or corrections feel free to leave them down below