The ESP8266 is a System on a Chip (SoC), produced by the Chinese company Espressif. It contains a Tensilica L106 32-bit microcontroller unit (MCU) and also a Wi-Fi transceiver. It has 11 GPIO pins (General Purpose Input/Output pins), and analog input as well.

GPIO | Function | State | Restrictions |
0 | Boot mode select | 3.3V | No Hi-Z |
1 | TX0 | – | Not usable during Serial transmission |
2 | Boot mode select TX1 | 3.3V (boot only) | Don’t connect to the ground at boot time Sends debug data at boot time |
3 | RX0 | – | Not usable during Serial transmission |
4 | SDA (I²C) | – | – |
5 | SCL (I²C) | – | – |
6 – 11 | Flash connection | x | Not usable, and not broken out |
12 | MISO (SPI) | – | – |
13 | MOSI (SPI) | – | – |
14 | SCK (SPI) | – | – |
15 | SS (SPI) | 0V | Pull-up resistor not usable |
16 | Wake up from sleep | – | No pull-up resistor, but pull-down instead Should be connected to RST to wake up |
The ESP8266 WiFi Module is a self-supporting SOC with an incorporated TCP/IP protocol stack that can give any microcontroller contact to your WiFi network. The ESP8266 can either be hosting an application or be offloading all WiFi networking features from another application processor. Each ESP8266 module comes pre-programmed with an AT command set firmware, meaning, you can merely hook this up to an Arduino device as well as obtain about as much WiFi-ability as a WiFi guard offers (which just out of the box). The ESP8266 module is a really cost-effective board with a big, and ever-growing, community.
Powering to the ESP8266 with Power-Saving Architecture of ESP8266
Engineered for smartphones, wearable electronics devices, and IoT applications, ESP8266 achieves low power usage with a grouping of a number of proprietary technologies. The power-saving design features three modes of operation – active mode, sleep mode, and deep sleep mode. This allows battery-powered designs to run for longer time periods.

As the operating voltage range of ESP8266 is 3V to 3.6V, the board comes with an LDO voltage regulator to keep the voltage consistent at 3.3V. It can reliably supply approximately 600mA, which should be ample when ESP8266 draws as high as 80mA throughout RF transmissions. The outcome of the regulatory mechanism is also broken out to one of the sides of the board and labeled as 3V3. This pin can be made use to supply power to outside parts.

Power to the ESP8266 NodeMCU is provided via the on-board MicroB USB adapter. Alternatively, if you have a controlled 5V voltage source, the VIN pin can be used to straight supply the ESP8266 and its peripherals
There are many possible methods to power the ESP8266 WiFi module – one can use 2 AA-sized batteries for powering, Computer port if you have a TTL-Serial-to-USB. You can utilize LIPO batteries to power the ESP Dev Thing board. You can also use the LM117 3.3V voltage regulator.
The ESP8266’s maximum voltage is 3.6V, so the thing has an onboard 3.3V regulator to supply a safe, steady-state voltage to the IC. That indicates the ESP8266’s I/O pins also conduct at 3.3V, you’ll need to Logic Level Controller any 5V signals running into the IC.
Communicating ESP8266 Via Arduino UNO
To interact with ESP8266 via Arduino UNO you will certainly need a Logic Level Controller in between to safely work with ESP8266.

Connection – ESP8266 works on 3.3v. So, we will try to connect ESP8266 with the help of Arduino Uno.
- Connect the Arduino’s 3v3 (3.3V) output to ESP8266. The ESP8266 deals with 3.3V and not 5V, so this is needed to maintain.
- Connect the RES or RESET pin, when you ground the reset pin, the Arduino works as a dumb USB to a serial connector, which is what we want to exchange for the ESP8266.
- Make connection the RXD pin of the Arduino to the RX pin of the ESP8266.
- Connect the TXD pin of the Arduino to the TX pin of the ESP. When we want two things to talk to each other over serial, we connect the TX pin of one to the RX of the other. Here the computer is dealing with it via the Arduino.
- Connect GND and VCC.
- Finally, CH_PD connects.
Software Application:
In the Arduino IDE, you do not need to choose a board, as we’re not uploading anything to the ESP8266.
- Just select the right port in the Tools menu
- Go to Tools → Serial Monitor.
- Then normally set the baud rate to 115200 (the default ESP8266 firmware uses it) and your line endings to Both NL & CR.
And since we interact about the CH_PD pin, bear in mind that if you want to flash the ESP8266 you should connect the GPIO0 pin.
ESP8266 Development Platforms
There are a variety of development platforms that can be outfitted to configure the ESP8266. You can opt for Espruino – JavaScript SDK and firmware very closely matching Node.js, or practice Mongoose OS – An operating system for IoT devices (recommended platform by Espressif Systems and Google Cloud IoT) or make use a software development kit (SDK) provided by Espressif
Fortunately, the amazing ESP8266 area with a bigger community took the IDE selection a step even more by creating an Arduino add-on. This ESP8266 add-on for Arduino is based on the amazing work by the ESP8266 community.
Making your Home Automation System using ESP8266
ESP8266 is a Wi-Fi module very popular for its Internet of Things (IoT) applications. Circuito.io, Tinkercad, Fritzing can be used to simulate and work with the board safely. Logic Level Controller is one of the vital elements to use with the ESP8266 module.
Home automation describes the ability of the home to make its very own choices relying on conservational problems and also gives the alternative to regulate it from a remote location. NodeMCU or any of the other versions of ESP8266 based boards can be used to build a web server where all the GPIOs of the board can be regulated over Wi-fi.

In-home automation, the key is the WiFi-enabled board that needs no introduction; the ESP8266 based NodeMCU development board. It is an open-source platform for developing WiFi-based embedded systems and it is based on the prominent ESP8266 Wi-fi Module. The NodeMCU board is simple to utilize, affordable which quickly engaged it to the heart of makers as well as it is among the most prominent boards today.
We can connect Temperature and Humidity (DHT22) sensors, Light detectors,s, and various sensors with Actuators to make a home automation system using ESP8266 modules.