Been tinkering around with the
NodeMCU (
ESP8266) more after I published the original tutorial about
Getting Started To Use NodeMCU (ESP8266) With Arduino IDE. Before reading this further, I would recommend you go through it to make sure the board is already setup on your PC with the Arduino IDE (if not already).
I came to notice its quite easy to jump into the interesting world of IoT with this particular board. Since the board has on-board WiFi chip from Espressif, you can control just about anything you want remotely.
I have shared below a simplest possible example of how you can control state of an LED connected to the
NodeMCU board remotely (from your phone). Let's start by putting connecting the LED as shown below:
Connect the board to the PC using a/the
Micro-USB cable. Go to Tools, Board, select
NodeMCU 0.9 (ESP-12 Module). Go to
Tools,
Port & select
COMX port on which the board is connected to PC.
Replace below example code into your Sketch in
Arduino IDE.
Let me describe what the above code actually does. At startup, it tries to and waits for a successful connection with the
SSID &
password you have specified. Once connected, it then starts and listens for incoming connections over
port 80 (HTTP default). This is what it does in the setup stage.
Now in the main loop, it waits for an incoming
HTTP client connection which if found, the checks if the request method is
GET and URL contains a specific command like
/state/OFF or
/state/ON and then reacts accordingly i.e., put the specified pin
LOW or
HIGH which in turn, sets the
LED off or on respectively. In either case, it also responds with a
HTML page that shows current state of
LED and a link to change the state.
To access the
HTML page, you need to be connected to the same
WiFi network as the
NodeMCU (
ESP8266) board and browse the board's
local IP address in your favorite browser. To know the IP address easily, the above code writes some useful messages over the serial port it is connected to which you can see by open the
Serial Monitor from
Tools,
Serial Monitor from the
Arduino IDE.