Arduino Ultra Low Power Weather Station
Intro: 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
Transmitter:
- 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)
Receiver:
- 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 transmitter's code is optimized for low power using the LowPower.h library and adafruit's bme280 library.
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
STEP 5: EDIT:
I have changed the rf433 module with a nrf24l01 board and an antenna, and for the receiver, I've added an esp8266 and used Blynk to get the information on my phone, with this setup you can have multiple weather stations with one receiver communicating back to your phone. If anyone wants the code schematics or custom PCB that I designed, feel free to talk to me.
12 Comments
fantastiko 4 years ago
Topspliff 5 years ago
Great project, I also would not mind the schematics, also on the downloads the code is for the old RF transmitter not the NRF2401, so updated code would also be very nice.
Thanks Alan
alexanderb176 6 years ago
Thanks in Advice,
Alexander
IvanB169 5 years ago
the wiring diagram is pretty straight forward, sorry for the loong response time, the hardest part would be desoldering the regulator and led from the arduino board. If you still want the schematics, I can gladly help
Carl ErikK 5 years ago
IvanB169 5 years ago
It could be done, you would have to, with a transistor or mosfet, turn the power to the gprs unit off when going to sleep> other than that it would be pretty easy, We could make it happen
DIY Hacks and How Tos 6 years ago
Cool. It would be really interesting to set up a network is small cheap weather stations like this around a city and see how the data compares with the different locations.
Michal Choma 6 years ago
esp with wifi is super simple. I order 2 boards, I see, how it will works. But basically, you just need esp board, sensor, lion battery- from old bad notebooks, low quescient current voltage regulator. total value can be less then 10 dolars, but should be around less then 5 dollar!
IvanB169 6 years ago
IvanB169 6 years ago
edo126 6 years ago
IvanB169 6 years ago