I’ve been using the DS3231 RTC module as one means of reducing the consumption of battery-powered ESP8266 sensors. The idea being to set up an alarm on the DS3231 which will take the (DS3231) interrupt pin low when triggered. That pin is connected to the gate of a P-channel MOSFET, which functions as a power switch for the battery supply to the ESP8266. Once powered, the ESP takes a sensor reading, connects to the network and sends the reading and then programs a new alarm into the DS3231, clearing the interrupt and thus turning its own power off. This actually works very well. The DS3231 module runs on its own button-cell battery and the ESP on three AA alkaline batteries (fed via a low quiescent current, LDO 3v3 regulator). The standard set up will run for many months and this can be extended by using the RTC memory as a data store and only initializing the ESP wireless to send on every 10th (or whatever) reading of the sensor.
I recently came across a very similar implementation on the LowPowerLab’s forum, where user “TomWS” published a circuit using the TI TPL5110 “Nano-power system timer” to drive the MOSFET (instead of the DS3231 in my implementation). The advantages are simplification (the TPL5110 only needs a resistor to set the delay between power-ons, no programming) and a pin saving (the TPL5110 only requires a single GPIO “done” signal from the ESP, as opposed to the two pins required for the i2c bus connection to the DS3231). The TPL5110’s timing range is a little more restricted than the DS3231, with effective delays between fractions of a second and 2-hours. Having said that though, that range probably covers the usage requirements of most hobby applications.
The TPL5110 module (which includes the P-channel MOSFET) is available from LowPowerLab’s web site for about $5. The TPL5110 chip itself is available from Mouser/Digikey, etc for slightly more than a dollar.