Amazing ESP8266 ESP-01 WiFi boards have pretty irritating problem: theirs power consumption is pretty high. Minimal power consumption of about 70mA when doing nothing and above 100mA when when transferring data makes it rather impossible to use it on battery power for a longer period of time. Set of 2 AA batteries would be drained in less than a day. Not good.
There is a way to make ESP-01 work for months using something called
deep sleep mode. When in deep sleep, ESP8266 disables almost all of its functions and reboots after specified period of time. There is one catch: ESP-01 is capable to enter deep sleep, but unable to restart and resume operation. XPD_DCDC MCU pin in not connected to RESET pin. To fix it, you would have to solder thin wire between XPD_DCDC and RESET pin just like on a picture below:
It's doable with a decent soldering iron and some training. The fact, that XPD_DCDC is the last pin on the bottom edge of MCU (antenna facing left) makes it much simpler.
I also suggest to remove red status LED. It drains around 8mA all the time. Without this LED, board would draw only about 80uA when in deep sleep. Just rip it out with a knife or desolder it you like to do things right.
After this is done, deep sleep can be entered (when using Arduino) using:
ESP.deepSleep([sleep_time_in_seconds] * 1000000);
After defined period of time, ESP8266 will reboot itself and do
Right now, I have 2 ESP8266 ESP-01 with DS18B20 reporting temperature every 15 minutes running on 2 AA batteries for 5 weeks. And expect them to work for at least 6 months before batteries will be depleted.
Update after 6 months
Looks like I was right. Both my ESP8266 with DS18B20 reporting temperature every 15 minutes were running 2 AA batteries for almost 6 months. So let's be safe and call it 5 month of operation time. For me, quite impressive results the way I see it!