====== ESP8266 ====== ===== An overview ===== 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 2x4 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 {{ :esp8266:esp8266_02b.jpg?nolink |}}