We already disccuse basic theories around WiFi. ESP8266 WiFi Module is a Common Module Used in DIY Electronics Including Arduino. WiFi is a technology for wireless local area networking with devices based on the IEEE 802.11 standards. In this article we will discuss some basic theory around popular ESP8266 WiFi module and in future we will do some practical projects. What we refer as Internet Protocol Suite is also known as TCP/IP. ESP8266 is a cheap WiFi microchip with full TCP/IP stack manufactured Chinese manufacturer Espressif Systems :
The ESP8266 Arduino compatible module has a Micro Controller Unit which gives the possibility to control I/O digital pins via simple code like programming language (Hayes command set). Hayes Communications introduced re-using the existing data pins with no modification where the modem itself could switch itself between data mode and command mode. WiFi compatible devices can connect to the Internet via a WLAN and a wireless access point (or hotspot) with a range of about 66 feet in indoors.
The ESP8266 WiFi Module
It has a 32-bit RISC microprocessor core running at 80 MHz, 64 KiB of instruction RAM, 96 KiB of data RAM, up to 16 MiB external QSPI flash, integrated TR switch, balun, LNA, power amplifier, WEP or WPA/WPA2 authentication or open networks, 16 GPIO pins, SPI, software implementation of I²C, I²S interfaces with DMA (sharing pins with GPIO), UART on dedicated pins, additionally a transmit-only UART can be enabled on GPIO2, 10-bit ADC (successive approximation ADC).
Espressif Systems has software development kit, there is open source ESP-Open-SDK. The ESP8266 Arduino Core is available on GitHub. ESP8266 Arduino module comes with PCB trace antenna with good coverage with only 6 I/O pins, although the MCU can support up to 16 I/O.
Sleep modes of ESP8266 WiFi Module is important for Arduino. Currently there are 3 different sleep modes which can be programmatically controlled. ESP8266WiFi library offers specific functions to call sleep modes which can take settings parameters that change the callback jobs after wake-up like waking up with RF module powered off or on.
DEEP_SLEEP mode, which consumes very low power during sleep, you need to connect REST pin with the GPIO16 pin.
ESP8266 has awkwardly spaced 8 header pins in a 4×2 arrangement which forces the need of male-female jumper wires to connect the pins on the ESP8266 to Arduino/breadboard.
There is huge resource on ESP8266 from community :