I've been working on adding random sensors of all kinds around my house to gather data and plot nice graphs. Given how cheap NodeMCU clones have gotten, I've decided to get ten and play with them - a month later I received "WeMos LoLin" boards, which are essentially a clone of a clone of a NodeMCU v3 board. They're great - just plug in via USB and get to work!
Prior to ordering these, I've put together really simple temperature sensors using bare ESP12F modules - combined with a MCP1700 voltage regulator, I could hook them up to a 18650 Lithium Ion battery and leave them running for around a month (using deep sleep, naturally).
WeMos can't be operated from a 18650 out of the box
I was disappointed to discover that my WeMos module wouldn't work when plugged in directly to a battery - upon further investigation, I've discovered that the regulator used on the board was AMS1117-3.3 - which has a dropout voltage of 1V. This meant that a fully charged 18650 would only work for a few minutes at most.
The solution was to replace the regulator on the board with a low-dropout regulator - the MCP1700. This required 5 minutes of soldering. It's a shame I couldn't find another regulator in a SOT-223 package whose pinout would be the same as the AMS1117 - so had bend the pins a bit to make everything fall into place.
Enabling deep sleep on the WeMos
Out of the box, if you put the module to deep sleep, it will just stay there doing nothing forever. What you need to do is to wire the D0 pin (GPIO16/WAKE) to the RST pin.