I designed the circuit with the idea to use batteries without a voltage regulator, because they use current every time. The sensor board should stay in low power mode most of the time, so a voltage regulator (even the ultra low power ones) could be responsible to a significant amount of power drain.
Not long ago, Espressif updated their datasheet of the ESP8266. Now they state the operating voltage is between 2.5 V and 3.6 V (in the past, they only guaranteed a minimum voltage of 3.0 V).
By my own experiments, I found a working minimum voltage of 2.3 V using different modules. This allows to use different battery technologies directly. Sadly, the wide known LiPo batteries are no candidates, because their voltage ranges from 3.0 V (drained, better go not lower than that) to 4.2 V fully charged.
For microcontroller circuits there is another interesting alternative: LiFePO4. The nominal voltage of one cell is 3.2 V, which is near the 3.3 V of modern electronics. They are fully charged at 3.6 V (perfect) and can be discharged to 2.5 V – 2.0 V (depends on the manufacturer). I managed to get cells in the AA-battery size with 700 mAh capacity and used two in parallel.
The next possibility are NiMH-cells. You have to use two cells in series because their nominal voltage is 1.2 V per cell. Fully charged they are near 3 V, then they have a long plateau around their nominal voltage and at 2.3 V they are over 90 % drained. Sounds good. I used Eneloops which have a low self-discharge rate. Their capacity is araound 2000 mAh.
As alternative you could also use alkaline batteries. If they last long enough, they could be an option because they are way cheaper than the rechargable NiMH-cells. 1.5 V is their nominal voltage, which is slightly higher if they are new. They can be drained until no voltage remaines, but they are quite dead at 2.3 V (or 1.15 V per cell). The capacitiy is a bit higher than the Eneloops at around 2500 mAh.
I programmed a test procedure to get battery life results in time-lapse: The sensor board wakes up, connects to my Wifi, reads the sensors, reports the states to my MQTT broker, sleeps for 5 seconds an repeats everything. At every wakeup it increments the reboot number and stores it in the RTC memory to last between the wakeups.
I got the following results:
Battery | Voltage Range | Reboots | Lifetime (10 reboots/h) |
LiFePO4 (2P) | 3.5 V – 2,26 V | 53706 | 223 days |
Eneloop (2S) | 2.9 V – 2.27 V | 82883 | 345 days |
Alkaline (2S) | 3.3 V – 2.26 V | 91652 | 381 days |
:
At a wakeup rate of 10 wakes per hour or every 6 minutes, every battery technology can achieve the desired goal of 6 months of operation. Of course the lifetime will be lower in the real usecase, because the test didn’t acount for the standby currents. The winners are clearly the alkaline cells, followed by the Eneloops. For environemntal reasons, I will choose the NiMH, because they are rechargable.