The Espressif platforms still remain a firm favourite of mine in terms of price point, ease of programming and functionality. I’ve been trialling the ESP32 as the new Central Heating controller over the winter (2017/2018) and have been experimenting more recently with using the smaller modules for solar-powered temperature monitoring nodes.
The ESP-01, ESP-07 and ESP-12 are all Ai-Thinker modules, based on the ESP8266 chip, and are easily programmable via the Arduino IDE (with the right Board and Library installed).
The ESP-01 remains a favourite as bare-bones WiFi IOT device where I/O isn’t important (just 2PGIO really) and you just need to collect some data and pass it somewhere else. The lack of regulator / LVO and USB connectivity also means there are fewer losses in the board itself – so it’s great for battery-powered/solar:


The ESP-07 has more I/O and also has the benefits of being a low-frills module – but the spacing of those pads is not 2.54mm – so it will require an adapter. It has the advantage of U.FL antenna connector (as well as the onboard ceramic antenna) so you can put a better antenna in order to increase range.


The ESP-12 has more I/O again (11GPIO, 1ADC) and comes in a similar form factor to the ESP-07 (i.e. not breadboard friendly, albeit with more pads). Like all of the ESP modules listed here, it’s a 3-3.6V (i.e. 3V3) module.

Note there are different versions within each module (i.e. ESP-01, ESP-01S, ESP-01M, ESP-07, ESP-07S, and ESP-12, ESP-12E, ESP-12F, ESP-12S) and these variants usually contain different amount of flash or have different options for onboard / ceramic / U.FL antennas. Something to watch out for!