IoT Embedded Device Parts
- CPU = Chip, SoC, eg. ESP8266 or ESP32
- Motherboard = Module, eg. ESP12
- Computer = Development Board, Development Module, eg. NodeMCU, Wemos D1
We have a chip (SoC), then module (chip + antena or similar, ), then Development Board (module + usb connector, pins and similar).
Serial Chip on motherboard can be CH340G, CP2102, CH340G, etc
We can look at with PC analogy: chips is CPU, module is mainboard, Dev Board is Computer
NodeMCU is open-source IoT platform (aka firmware plus hardware that platform is based on). 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. The firmware uses the Lua scripting language. Initially included firmware that runs on the ESP8266 and later, support for the ESP32 was added.
Perfectly explained: NodeMCU, ESP12, ESP8266 - What is the difference?
ESP8266 < ESP32-S2 < ESP32: SoC models explained
With ESP32-S2 Espressif is filling a gap between the ESP8266 and the ESP32, both in features and price. The ESP32-S2 is not an ESP32 but an ESP8266 killer.
Both ESP32 and ESP8266 are cheap WiFi-based SOC (Systems on Chip). Both have 32-bit processors, ESP32 is dual-core 80Mhz to 240MHz CPU and ESP8266 is an 80MHz single-core processor.
The development board equips with an ESP-WROOM-32
A notable difference with the ESP32 is its Bluetooth capability that allows the ESP32 to not only be limited to Wi-Fi communication, allowing it to be integrated into more projects. It supports both classic Bluetooth and Bluetooth Low Energy. While the ESP8266 does not support Bluetooth.
ESP32 Online Simulator
ESP32 Simulator from Wokwi supports ESP32 simulation online. It is a free online simulator that can be used to interface with various LEDs, Displays, Third-party sensors, buttons and more
ESP32-C5 is RISC-V SoC with Wi-Fi 6, 2.4 and 5 GHz ESP32-PoE is ESP32-WROOM-32 WiFi/BLE module with Power-Over-Ethernet feature
ESP32 supports multiple programming environments, some of commonly used are:
- ESP-IDF aka Espressif IDF (C and C++, IoT Development Framework), lowest level option is ESP-IDF
- Arduino IDE (C++), mid-level option is Arduino adapted for the ESP32 hardware
- PlatformIO IDE (C, built on top of Visual Studio Code, can use any framework like Arduino)
- MicroPython, high-level option for ESP32, lot of IDE’s: MicroPython IDEs for ESP32 and ESP8266
- nanoFramework (C#)
- CLion is IDE for C and C++ by JetBrains
- 4refr0nt/ESPlorer for LUA for NodeMCU and MicroPython
Arduino uses C++ but files have “.ino” extension - “.ino” means the exact same as “.cpp”. Arduino is really just C++ with the Arduino library