There’s no shortage of things to like about the ESP8266 and ESP32, but if we had to make a list of the best features these WiFi-enabled microcontrollers have to offer, their power management capabilities would certainly be near the top. Which is how we assumed [Mark] was able to take a whopping 23,475 pictures on his ESP32 camera while powered by nothing more exotic than four AA batteries from the grocery store.
But as it turns out, the full story is quite a bit more interesting. As far as we can tell, [Mark] isn’t bothering with the ESP32’s sleep modes all. In fact, it looks like you could pull this trick off with whatever chip you wanted, which certainly makes it worth mentally filing away for the future; even if it depends on a fairly specific use case.
In the most simplistic of terms, [Mark] is cutting power to the ESP32 completely when it’s not actively taking pictures. The clever circuit he’s come up with only turns on the microcontroller when a PIR sensor detects something moving around in front of the camera. Once the chip is powered up and running code, it brings one of its GPIO pins high which in turn triggers a 4N37 optoisolator connected to the gate on the circuit’s MOSFET. As long as the pin remains high, the circuit won’t cut power to the ESP32. This gives the chip time to take the requested number of pictures and get everything in order before bringing the pin low and allowing the circuit to pull the plug.
If you’re looking to maximize runtime without wrangling any MOSFETs, we’ve seen some excellent examples of how the low power modes on the ESP8266 and ESP32 can be put to impressive use.
[Thanks to Jason for the tip.]