Project by Michael; Datalogging Weather Station (Battery Powered)

Michael just shared a new project: "Datalogging Weather Station (Battery Powered)"

This project will measure atmospheric conditions (Temperature, Humidity, Air Pressure) and log them to an SD card over a long period (months!) while running off a few AA or AAA cells.
Usually, projects powered by an Arduino Uno are quite power hungry and not really appropriate for extended battery power. Using a Power Timer module allows us to cycle power to the Arduino at a set interval (eg. 10 minutes) - that way we can have the Arduino wake up to perform measurements and datalogging, then send a shutdown signal to the power timer which will completely remove power until the next measurement interval.

Read more


Hi Michael,
it’d be interesting to see why your back of the envelope calcs differed, but 187 odd days for taking a reading every 10 minutes is pretty good. You just need to set a reminder to change the batteries.
Also I wonder how an ESP would compare. That would give you the possibility of using WiFi to save the data to a Pi and email a warning that the battery could be getting low.



G’day @dave50358, isn’t it curious?!
I think the major effect is my pessimistic estimates in the approximation. I was more concerned with guaranteeing a minimum mission-time rather than accurately estimating a maximum. So I built in some pessimistic estimates at each level which undoubtedly had a compounding effect.

  • The chosen battery capacity - I pulled a capacity estimate off a google search for a cell of a different brand.
  • The effective capacity - I (pessimistically) estimated I could only use a third of the battery capacity. That’s to account for the ATmega328 dropping out at an expected ~3.6V, when starting with a battery pack of only ~4.5V.
  • Power consumption at different voltages - With a full battery (high voltage) the circuit will consume more power than when the battery is nearly empty (low voltage). I measured power consumption at 4.2V which is pretty close to a full battery. By assuming the higher power-draw for all samples, rather than derating, I got a lower-accuracy but more conservative estimate for battery life.

There’s other sources of error of course - for example, I didn’t take a 4-wire measurement for voltage, there will be some loss in the test leads.

As for the ESP32, there’s a bunch of strategies to reduce power consumption on that device too - like turning off bluetooth and wifi radios unless needed etc. The Arduino port also has some pretty convenient sleep modes built-in, though if you’re using a power timer then perhaps that’s all moot. The power saving rabbit hole goes pretty deep and we’ve only just scratched the surface in this project :sweat_smile:


A wonderful project. The device is really useful for daily use.

Without digging deeply, I don’t see those things being more than 20%, and you got a 500% difference.

Also at mA currents the voltage drop in the wiring should be minuscule (although the breadboard may introduce some loss) , so no need for 4wire measuring.

1 Like

Hi Michael

Really not required for voltage measurement. Using a 10MΩ meter the meter current at 5V would only be 0.5µA or 500nA. Pretty minuscule and can be ignored for this type of measurement. This 10MΩ should be considered when measuring voltage across high value resistors as it is effectively in parallel with said resistor.
I am pretty sure the 4 wire technique is used for accurate resistance measurement, particularly low values.
Cheers Bob