NodeMCU

Introduction
NodeMCU is an ESP8266 Wi-Fi SoC (System On a Chip) based, open soruce IOT platform. The Base chip is an ESP8266 ESP-12 module.
The name, “NodeMCU” refers mainly to the firmware itself, rather than the develeopment kit. The firmware uses Lua scripting language, but also available for Arduino IDE platform. So if you are familiar with the arduino devices, you can also develop on NodeMCU development module also.

Main Specifications
Networking: Built in Wi-Fi module (Wi-Fi 802.11 b/g/n). Used as an access point and/or station. Host, a server, connect to the internet, data communication.
USB port: Micro-B USB port with CP2012 USB-serial converter.
Power supply: From USB port (5V @ 500mA max current draw) or throgh external power supply through VIN (refer to the Voltage regulator datasheet)
Buttons: On Board Reset and Flash Buttons
Programming: Lua, or Arduino IDE
Size: 49 x 24,5 x 13mm
Memory: 4MB Flash (32 MBit)

NodeMCU & ESP-12 Pinout

Dev Kit Pins and ESP8266 INternal GPIO pins

NodeMCU Devkit PinESP8266 Internal GPIO pins
D0GPIO16
D1GPIO5
D2GPIO4
D3GPIO0
D4GPIO02
D5GPIO14
D6GPIO12
D7GPIO13
D8GPIO15
D9/RXGPIO3
D10/TXGPIO1
D11/SD2GPIO9
D12/SD3GPIO10

Programming With Arduino IDE
1. Open Arduino IDE and go to File -> Preferences
2. To the additional Board manager URLs paste the following link:
http://arduino.esp8266.com/stable/package_esp8266com_index.json

3. Now Go To Tools -> Board -> Boards Manager

4. In Board manager search for ESP8266 and install available board

Now you are able to select NodeMCU board and set the port to program the device. If you upload the following simple code to the module the built in LED will start to blink.

void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
 digitalWrite(LED_BUILTIN, LOW);
 delay(1000);  digitalWrite(LED_BUILTIN, HIGH);
 delay(2000);
}