Table of contents
In the world of microcontrollers and Arduino, it's easy to get confused by all the different available hardware. One question I often see is, "What's the difference between an ESP8266, NodeMCU, and ESP12?"
So let's look at what these things are and how they compare to each other.
The SoC
The ESP8266 itself, at its core, is a microcontroller with built-in WiFi in a single, small form factor chip. It's manufactured by Espressif and it became very popular among makers due to its excellent Arduino support and affordable price.
This type of chip is also known as a System-on-a-Chip (or SoC for short). It means that all or most components of a computer are integrated into a single chip. In this case, the computer isn't powerful enough to run Windows. But it's made to run custom firmware that we can, for example, create using Arduino.
Modules
The ESP12 (or ESP12E, ESP12F ...) is an RF module containing the ESP8266 SoC and other necessary components, like the antenna. With a module like this, it's a lot easier to design products with WiFi capabilities, as you can simply use the module without needing a ton of additional components.
The ESP12 is made by AI-Thinker, but Espressif also has its own modules like the ESP-WROOM-02. There are a variety of modules available. Most of them only differ in form factor, price, and antenna design.
Development Boards
The NodeMCU is a popular development board based on the ESP8266. It features not only the ESP12 module (which contains the ESP8266 SoC), but it also comes with a USB connector and breadboard-friendly pins, to make it easy for you to test and develop projects on the ESP8266.
There are plenty of other development boards out there. Other popular ESP8266 based boards include the D1 Mini or the Feather HUZZAH by Adafruit. Espressif also makes its own development boards like the ESP8266-DevKitC.
Development boards can differ in form factor and additional features (i.e. LiPo battery charger), but in the end, they are all just an easy way for you to make something with the onboard microcontroller.
Conclusion
The NodeMCU has an ESP12, which itself is a module containing the ESP8266.
You can think of it as a computer with a mainboard, including a CPU.
Because our ESP8266 Deauther project requires an ESP8266 to run (hence the name), you'd need to get development boards that use the ESP8266 (either directly or in a module like the ESP12) to recreate the project. Of course, you could technically just buy the SoC or a module, but it would be impossible to make any use of it without additional equipment. Like using a CPU without a mainboard. But a development board will have all the needed hardware onboard.
So that's the difference between an SoC, RF module, and development board. Of course, the same concept applies to other chips, like the ESP32. We just took the ESP8266 as an example here.