Getting Started With ESP8266(LiLon
NodeMCU V3) Complete Guide for IoT
Startup With Example(as Server)
Things You Need:
NodeMCU Flasher Master (Flasher)
NodeMCU Firmware (Firmware)
Latest Arduino IDE (Arduino)
NodeMCU V3
Micro USB Cable
LED
Features
Open-source, Interactive, Programmable, Low cost, Simple, Smart,
WI-FI enabled
Arduino-like hardware IO
Lowest cost WI-FI
Step 1: Installing the Firmware
In NodeMCU Boards the first thing you need is to install the
Firmware to the board
the following method works for all NodeMCU Boards
1. Open the NodeMCU flasher master folder than open the
win32/win64 folder as your computer. now open the folder Release
than double click ESP8266Flasher.
2. Select the COM Port.
3. Goto config tab
4. click on the small gear and open up the firmware which you have
downloaded
5. go to the advenced tab and select the desired Baudrate
6. Goto the Operation tab and click on Flash Button.
Add TipAsk QuestionCommentDownload
Step 2: Preparing the Arduino IDE
After Installing the firmware you are ready to do the programming
with the ESP8266
1. Install the Arduino IDE
2. open the Arduino IDE from the desktop icon
3. Click on File tab and than open preferences
4. In the additional Boards Manager URLs add the following link
(http://arduino.esp8266.com/stable/package_esp8266com_index.js
on) and click OK
5. Goto Tools>Borads>Boards Manager
6. In the search field type esp8266 click the esp8266 by ESP8266
Community option and click Install
Add TipAsk QuestionCommentDownload
Step 3: Code...
Now you can do whatever you want with your NodeMCU board
Following is an example for led blinking with NodeMCU board via
webserver
In arduino IDE goto tools>Boards>select NODEMCU 1.0 (ESP -
12E Module)
again goto tools and select port.
Change the Wifi name and password from the following code.
Now click on Upload button to upload the following code.
Connect the led's positive leg on D0 pin of board and negative to
the ground of the code.
Power up the board and open the serial monitor from arduino IDE
after connecting to the wifi it will show you the IP address.
type that IP address on the web browser(Edge, Chrome, Firefox
etc..)
A webpage will open you can change the status of LED by turning it
ON or OFF.
#include <ESP8266WiFi.h>
const char* ssid = "your_ssid";// your WiFi name
const char* password = "your_password";// your WiFi password
int ledPin = 16; // GPIO16
WiFiServer server(80);
void setup() {
Serial.begin(115200);
delay(10);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
// Connect to WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
Serial.println("");
Serial.println("WiFi connected");
// Start the server
server.begin();
Serial.println("Server started");
// Print the IP address
Serial.print("Use this URL to connect: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
void loop() {
// Check if a client has connected
WiFiClient client = server.available();
if (!client) {
return;
// Wait until the client sends some data
Serial.println("new client");
while(!client.available()){
delay(1);
// Read the first line of the request
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();
// Match the request
int value = LOW;
if (request.indexOf("/LED=ON") != -1) {
digitalWrite(ledPin, HIGH);
value = HIGH;
if (request.indexOf("/LED=OFF") != -1) {
digitalWrite(ledPin, LOW);
value = LOW;
// Set ledPin according to the request
//digitalWrite(ledPin, value);
// Return the response
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println(""); // do not forget this one
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.print("Led pin is now: ");
if(value == HIGH) {
client.print("On");
} else {
client.print("Off");
// HTML for buttons to work LED
client.println("<br><br>");
client.println("<a href=\"/LED=ON\"\"><button>Turn On </button></a>");
client.println("<a href=\"/LED=OFF\"\"><button>Turn Off </button></a><br />");
client.println("</html>");
delay(1);
Serial.println("Client disconnected");
Serial.println("");
If you encounter any problem comment it down