Hello everyone, this is my first post on a forum like this, I'll try to make this as concise as possible. I've started a project to measure Temperature and Humidity both inside and outside my house, to study how hall heating and outside temperature interact, as well as thermal inertia etc.
The problem is, I thought a 9V Alkaline battery would be enough to power everything for 1-2-3 days (3 would be more than enough), but after researching a bit it turns out, it might be a problem.
The set-up is:
- x1 Arduino Nano
- x1 MicroSD card reader (5V or 3.3V)
- x1 DHT22 Temperature and Humidity sensor (5V or 3.3V)(Measuring: 0.5 mA, Standby: 15 μA)
- x1 9V Alkaline Battery
*(Optional) x1 LM35DZ (To just measure Temperature if the DHT22 consumes too much)
So, I've read about how the Vin pin from the Arduino dissipates the exceeding energy from the 9V to turn it into 5V, and I've also read that a x4 AA/AAA rechargeable batteries would have much more capacity and would be better. Should I aim for that configuration instead of the 9V battery?
Edit: I'm probably going to use x4 AA Rechargable Batteries at 1.5V so we start at 6V instead at 4.5V, which is already lower than 5V and will continue to decrease with time.
Should power everything that admits 3.3V with just 3.3V (instead of 5V if they admit it), to save energy, or that doesn't work like that?
I would like to measure once every minute (could be more or less often depending on battery life), so I get the current temperature and relative humidity values, and I store them into the SD card in a .txt separated by commas in order to read it as a .csv on the computer later.
In order to do that I've seen that the Arduino has different sleep modes:
- SLEEP_MODE_IDLE: 15 mA
- SLEEP_MODE_ADC: 6.5 mA
- SLEEP_MODE_PWR_SAVE: 1.62 mA
- SLEEP_MODE_EXT_STANDBY: 1.62 mA
- SLEEP_MODE_STANDBY : 0.84 mA
- SLEEP_MODE_PWR_DOWN : 0.36 mA
It also can deactivate some functionalities (ADC for example) to save additional battery life, if I'm not mistaken.
So, how should I set up my Arduino to work in order to just take a single measurement every minute and then just consume the least energy as possible? Could I deactivate everything but some Timer0, or interrupt, so the ONLY thing the Arduino does, is keep track of millis() or something similar in order to just know when to wake up and take the next measurement?
Edit2: I've read that you could also store data in an array and only save it into the MicroSD once every hour or so. Would this make sense in this case to save energy?
All of the information I read on this topic was from: Gammon Forum : Electronics : Microprocessors : Power saving techniques for microprocessors