How to choose your ESP8266 module
We are first going to see how to choose the right ESP8266 module for your project. There are many modules available in the market and it is quite easy to get lost with all the choices available.
The first one that you have probably heard of is the small ESP8266 Serial Wireless Transceiver module:
This module is the most famous one, as it is really small and only costs $5. However, the number of accessible GPIO pins (input/output pins) is quite limited. It is also difficult to plug it into a standard breadboard.
If you choose this module, there are some projects in this book that you might not be able to do. For example, you won't be able to do the projects using analog sensors, as the analog input pin is not accessible.
You can find more information about this module at:
https://nurdspace.nl/images/e/e0/ESP8266_Specifications_English.pdf
But there are many other modules on the market that give you access to all the pins of the ESP8266. For example, I really like the ESP8266 Olimex module, which is also cheap (around $10):
This module can easily be mounted on a breadboard and you can easily access all the pins of the ESP8266. This is the one I will use for most of this book and therefore I also recommend that you use a similar module.
You can find additional details about this module at:
https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardware
One other choice is to use a board based on the ESP-12, which is a version of the ESP8266 made to be integrated on PCBs. This version also gives you access to all the pins of the ESP8266. It is relatively easy to find breakout boards for this chip. For example, this is a board that I bought on Tindie:
You can find more information about this module on:
http://www.seeedstudio.com/wiki/images/7/7d/ESP-12E_brief_spec.pdf
You can also get your hands on the Adafruit ESP8266 breakout board, which also integrates the ESP-12:
http://www.adafruit.com/product/2471
Another solution is to use the NodeMCU development kit, which is similar to the Olimex board but also has an integrated USB-to-Serial converter, as well as an onboard power supply. It is easier to use, but was hard to find at the time this book was written. You can get more information on the NodeMCU website:
http://nodemcu.com/index_en.html
Note that with the NodeMCU module, you will have to translate the pins from the module to the pins defined in the ESP8266 Arduino IDE, which we are going to use. You will find the correspondence between pins here:
https://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_en#new_gpio_map