What is NodeMCU?
NodeMCU is an open-source firmware, hardware, and software development environment project developed initially for the ESP8266 Wi-fi SoC chip based on LUA. The most spectacular features are:
It is a low-cost, small, and powerful board. It is specifically designed for IoT applications. It is compatible with Arduino IDE and python making prototyping a lot faster.
Because of all these features, Node MCU ESP8266 is the most popular and trending board in the electronics market.
The below images show NodeMCU development board v0.9 and v1.0 (right).
The v0.9 board is also called as 1st generation or V1 board. It is very wide and not convenient to use on a breadboard. This limitation is overcome by its next generation i.e. 2nd generation or v1.0 or V2 board.
This ESP8266 NodeMCU WiFi development board is more narrow and easy to fit on the breadboard. Also, the chip in this board is upgraded i.e. from ESP-12 to ESP-12E.
3rd generation board V3 is produced by LoLin which has minor improvements over the V2 board and is believed to have a more robust USB port than its predecessor(CH340G USB-TTL chip is used instead of Silabs CP2102 from V1.0). But again this board is wide making it difficult to use.
Since it can be connected to the Internet it can be used in a wide variety of applications like smart houses, smart industrial devices, smart healthcare devices, etc.
Read our blog esp8266 vs Arduino, which compares the features of Arduino UNO and NodeMCU, two popular microcontrollers used in DIY projects.
Specifications & Construction:
Let’s look at the NodeMCU ESP8266 specifications and construction of this module which makes it superior to its counterparts.
- The onboard ESP8266 chip manufactured by Espressif Systems has an ESP8266EX core Wi-Fi SoC and a Tensilica L106 32-bit processor in the same chip.
- Node MCU ESP8266 has 2.4GHz 802.11b/g/n Wi-fi with on-board antenna which supports WPA/WPA2.
- It has 17 GPIO, 11 are usable( 6 are used for communication with the onboard flash memory chip) and some of them support PWM. This GPIO can be used to interface ESP8266 NodeMCU with the external environment through sensors and actuators.
- It also has UART, SDIO, SPI, I2C, I2S, and IR remote control peripheral interface.
- It operates on 2.5-3.6V and average 80mA current with temperatures ranging from -40 to 125 C.
- It comes in a QFN 32-pin ( 5mm * 5mm) package.
- It supports firmware upgrades via UART download/ OTA (via network).
- It also has SDK for customized development/cloud server development.
Let us look at the Node MCU ESP8266 pin diagram.
Pins from D0-D8 can be used as GPIO pins.
Let's discuss these ESP8266 NodeMCU pin configuration in detail;
UART pins:
GPIO1 and GPIO3 are tx and rx pins respectively used for UART communication.
I2C pins:
D1 and D2 can be used SCL and SDA for I2C communication.
Note that NodeMCU doesnt has hardware I2C pins. We can implement I2C in software on any GPIO pins.
SPI pins:
D5-D8 ( SCLK,MISO,MOSI,AND CS ) can be used for SPI communication.
You can see that in the above pinout diagram we have not labelled pins from GPIO6 to GPIO11. The reason they are not shown is they cannot be used for interfacing because they are connected ot the flash chip.
Analog Pin:
The pin marked as A0 on the silkscreen layer of PCB is the only pin which can analog read.
ESP8266 On-board LED:
On-board LED is connected to GPIO2.
Reset pin:
You can reset the ESP8266 NodeMCU board in 2 ways one is by pressing the reset button and other is by pulling the reset pin LOW.
Reference: Espressif
The block diagram of ESP8266EX is shown in Figure 5 which explains the architecture of the chip.
How to upload programs to ESP8266 NodeMCU?
Following are the steps to upload the program to ESP8266 NodeMCU:
1. Install the esp8266 by ESP8266 Community
Open Arduino IDE. Go to File> Preferences
The above two URLs in additional boards manager URLs.
These URLs allow us to add additional boards in Arduino IDE. ( above URLs add ESP32 and ESP8266 NodeMCU boards.)
Once done click OK.
Now go to Tools > Board > Boards Manager …
2. Once installation is done upload your program by selecting the board
3. Open the blink sketch for ESP8266.
4. Select the appropriate COM port and click on upload.
Once uploading is done you will see led blinking on the board!!
Conclusion:
The NodeMCU ESP8266! A powerful and versatile platform, it bestows upon us mere mortals a realm of endless possibilities for IoT applications and DIY projects.
It has grown in popularity among both amateurs and professionals because to its low cost and ease of use, and it is backed by a large online community. This extensive study has provided you with a detailed understanding of its internal operations and capabilities.
Whether you're a beginner or an experienced electronics user, the ESP8266 is an indispensable tool for your next project. So, what are you waiting for? Discover the full potential of the ESP8266 right now!
If you understand what is NodeMCU ESP8266 and appreciate our work don't forget to share this post and leave your opinion in the comment box.
Please do check out other blog posts about Popular Electronics
Make sure you check out our wide range of products and collections (we offer some exciting deals!)