ESP8266 is a low cost RF module produced by the Chinese manufacturer Espressif Systems which includes a full TCP/IP stack and comes pre-programmed with an AT command set firmware, like old-fashioned modems: so, you can simply hook this module up to your Arduino (or hello board) and get WiFi-capabilities. However, the ESP8266 has on-board processing and storage capability (like an Arduino) that allows it to be programmed and extended. Moreover, it has a few GPIOs to which sensors and other interfaces can be attached to.
Most common modules come from AI-Thinkers vendor, Espressif Systems itself has produced the ESP-WROOM-02 Wi-Fi Module and there are also modules from other vendors, such as Olimex. AI-Thinker modules, which remain the most widely available (and often the cheapest), are collectively referred to as “ESP-xx modules”. The ESP-01 is the first (and less powerful) model: since 2014, the family has evolved and many other versions came out. ESP-12 is a widespread, more recent module, and ESP-14 is the most recent.
Aside the AT firmware, a C++ based firmware enables the ESP8266 CPU and its Wi-Fi components to be programmed like any other Arduino device using the Arduino IDE. Similarly, other firmwares for the ESP8266 include a port of the MicroPython interpreter, a Lua-based scripting environment (NodeMCU), and a BASIC interpreter specifically tailored for the IoT.
The ESP8266 ESP-01
The ESP-01 has 8 pins available in 2×4 dual in-line package; the antenna is a PCB trace and the module has a size of 14.3 × 24.8 mm
The 8 pins are:
- VCC must be connected to a 3.3V power supply - NO 5V (you can use a LM1117 low dropout voltage regulator)
- GPIO0 is a general purpose digital ports. GPIO0 also controls the module operating mode (programming or normal operation). To enable programming mode, it must be connected to GND.
- GPIO2 is general purpose, programmable digital pin to read .
- CH_PD, or chip enable pin. Keep it on high (3.3V) for normal operation.
- RX goes to microcontroller or FTDI TX pin.
- TX goes to microcontroller or FTDI RX pin.
- RST resets the module: keep it high (3.3V) for normal operation, put it on GND to reset the chip.
- GND connect it to ground