The ESP8266 is an inexpensive System on a Chip (SoC), consisting of a Tensilica L106 32-bit micro controller unit (MCU) and a Wi-Fi transceiver. It supports a full Transmission Control Protocol/Internet Protocol (TCP/IP) stack. It has 17 General Purpose Input/Output (GPIO) pins*, and an analog input as well.
(*) 6 of these pins (6-11) are used for communication with the on-board flash memory chip.
You can program it with either Arduino or Lua. Thanks to its Wi-Fi communication capabilities, you can use it to connect to your Wi-Fi network, and thus the Internet. As a result, the ESP8266 has become the most popular Internet of Things (IOT) device available.
There are many different EP8266 modules available, standalone modules like the ESP-## series by AI Thinker, or complete development boards like the NodeMCU DevKit or the WeMos D1. Different boards may have different pins broken out, have different Wi-Fi antennas, or a different amount of flash memory on board.
The V3 NodeMCU (Node MicroController Unit) is an open source development board that is built around the ESP8266 SoC microcontroller, which integrates the ESP8226, 4 MByte (32Mbit) flash memory, and the ESP-12E WiFi module on its printed circuit board (PCB).
For my air quality sensor project, I decided to use the V3 NodeMCU, along with the SDS011 particle sensor, and DHT11 temperature/humidity sensor.