NodeMCU ESP8266
NodeMCU is a microcontroller board developed using the ESP8266 chip from Espressif, which is notable for:
Built-in Wi-Fi connectivity
cheap price
Easy to use with Arduino IDE
Suitable for IoT (Internet of Things) such as controlling devices via the Internet, sending sensor data to the web, making a smart home.
The name "NodeMCU" stands for "Node MicroController Unit" and was originally written in Lua, but is now more commonly written in C/C++ via the Arduino IDE.
NodeMCU ESP8266 Specifications
list
details
Main chip
ESP8266 (ESP-12E or ESP-12F)
CPU speed
80 MHz (Overclockable up to 160 MHz)
Memory (Flash)
4MB
SRAM (RAM)
64KB
Wi-Fi
802.11 b/g/n (2.4GHz), supports both STA and AP
Working pressure
3.3V (but USB can use 5V because it has a built-in converter)
USB port
Use CH340 or CP2102 chip (for programming via USB)
Number of GPIOs
11 legs (some legs have special functions such as PWM, ADC, I2C, SPI)
ADC leg
1 leg (reads analog values 0–1V)
Digital leg pressure
3.3V (If using with 5V, a voltage divider resistor is required)
3. Using NodeMCU ESP8266
Highlights:
Built-in Wi-Fi connectivity (no separate module required)
You can load the code via USB.
Works with the web, phones, and online databases.
Supports writing with Arduino IDE or PlatformIO
Popular usage examples:
✅ Control light bulbs via Wi-Fi
✅Write a built-in web server, control it via a web browser.
✅ Send sensor data (DHT11, MQ-2, Soil) to Firebase / ThingSpeak
✅ Make a node to send data via Wi-Fi to a server or MQTT.
✅ Create a notification system via LINE Notify or Telegram.
Code sample: Open a simple web server
include <ESP8266WiFi.h>
const char* ssid = "YOUR_WIFI_NAME";
const char* password = "YOUR_WIFI_PASSWORD";
WiFiServer server(80);
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi..."); }
Serial.println("Connected: ");
Serial.println(WiFi.localIP());
server.begin();
}
void loop() {
WiFiClient client = server.available();
if (client) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<h1>Hello from NodeMCU!</h1>");
delay(1000);
}
}