When learning Arduino, one often hears about other platforms like Micro:Bit, ESP8266, NodeMCU, and Raspberry Pi. Naturally, one might wonder what these are and how they relate to or differ from Arduino. Previously, we introduced “Micro:Bit”; today, let’s discuss the popular ESP8266 and the IoT marvel, NodeMCU.
Starting with Arduino and the Internet
ENC28J60 and W5100 Expansion Modules
Not long ago, connecting a microcontroller to the internet or even a local area network was quite a luxury. For Arduino, you needed to buy an ENC28J60 or W5100 network expansion module. If you wanted wireless, I recall the official WiFi Shield costing 69 euros (about 545 RMB), which could buy you three official UNOs. The high price sparked many innovative solutions, such as using a TP-LINK TL-WR702N/TL-WR703N router as a bridge to connect to WiFi.
The 69 Euro Arduino WiFi Shield
Arduino connecting to wireless WiFi via TL-WR702N Client Mode
However, this solution was not ideal in terms of cost and size. Later, the concepts of IoT and smart hardware became popular, BLE and related technologies matured, and costs decreased. However, WiFi did not see significant breakthroughs in power consumption, cost, or scalability. As a player in open-source hardware, if your project involves WiFi, your options are limited: platforms running Linux + wireless cards, like Raspberry Pi and WRTnode; or the aforementioned Arduino with W5100 + TP-LINK. Thank goodness, the official Arduino finally launched the Arduino Yun with an onboard WiFi module in 2013, but its price of around 500 RMB still deterred enthusiasts worldwide. Is it really that difficult for microcontrollers to connect to the internet?
WRTnode Development Board
Arduino Yun Development Board
Birth of the ESP8266 Chip
ESP8266 SoC
In the distant city of Shanghai, there is a chip company called Espressif. In the second half of 2013, Espressif launched a SoC chip called ESP8266EX, which integrates WiFi functionality and includes a 32-bit MCU. It has GPIO, I2C, ADC, SPI, PWM modules, is about 5*5mm in size, and costs a jaw-dropping 7-10 RMB. Modules based on the ESP8266EX can be used to connect to the internet with Arduino!
ESP8266-01 Module
Using ESP8266-01 Module with Arduino to Access the Internet
Initially, due to the SDK’s unique nature and limitations in programming methods and documentation, it did not attract much attention. However, as time passed, the ESP8266 gradually caught the interest of the foreign open-source community. More technical documentation was translated, people began optimizing the SDK, and various scripting languages like Lua, Espruino (JS), and MicroPython were introduced. The community based on ESP8266 began to grow wildly, with various experts contributing code. Espressif and other manufacturers continuously released new hardware versions. However, what truly made the ESP8266 popular in the Maker community was the ESP8266 core for Arduino library. This Arduino library allows people to program the ESP8266 module directly using the Arduino IDE, significantly lowering the usage threshold for those familiar with Arduino programming. It’s worth mentioning that since the ESP8266 SoC comes with a 32-bit MCU, it can be used independently without Arduino!
The IoT Marvel: NodeMCU
NodeMCU
NodeMCU is one of the most stable and user-friendly development boards that evolved from the early secondary packaging of ESP8266. NodeMCU’s secondary packaging includes both hardware and software firmware. On the hardware side, NodeMCU adds some peripheral USB serial circuits based on ESP8266. On the software side, NodeMCU introduces a lightweight scripting language, Lua, and supports event-driven APIs. You can write code similarly to NodeJS, which might be the origin of NodeMCU’s name.
Programming NodeMCU with Arduino IDE
Thanks to the participation of many experts, NodeMCU firmware incorporates various advanced technologies, such as bypassing system flash size checks and using single-byte emulation for four-byte read/write operations to efficiently utilize limited memory, along with the SPIFFS file system. As of now, NodeMCU’s firmware is arguably the most convenient way to get started with ESP8266 besides the ESP8266 core for Arduino, especially if you are familiar with NodeJS programming.
ESP8266 core for Arduino
Of course, you can also use the ESP8266 core for Arduino and Arduino IDE to program NodeMCU, just like using an Arduino development board.
We believe that the ESP series development boards will be the “Arduino” of the post-Arduino era, worthy of every Maker’s learning and ownership!
If you are interested in the ESP8266 module and NodeMCU, you can purchase them at the following addresses:
Purchase link for ESP01S module:
(Can be used with Arduino)
https://item.taobao.com/item.htm?id=581006133310
Purchase link for NodeMCU development board:
(Can be used with Arduino or independently)
https://item.taobao.com/item.htm?id=580998229338
How to obtain Arduino eBooks and video tutorials
Do you also want a copy of our eBook and various video tutorials included with the kit?
Scan the QR code below to follow us and reply with “benefits”
Click to read the original text and purchase the Arduino beginner learning kit