Introduction
ESP-01 is a wifi module which is based on ESP8266 which is a Wi-Fi microcontroller chip. It is a low-cost wifi module with the help of which we can connect wifi to our microcontroller boards. As stated earlier ESP-01 is a low-cost wifi module hence it is widely used in IoT-related projects.
The ESP-01 is itself a system on a chip having Transmission Control Protocol/ Internet Protocol support which helps it to establish a connection with several devices on the internet.
In today’s article, we are going to discuss ESP-01 Specifications, detailed pin description, and its programming. So without further ado let us see ESP-01 board components:
Board Components
- ESP8266 Microcontroller – As mentioned earlier the ESP-01 is based on the ESP8266 microcontroller chip which is a highly integrated wifi chip which supports TCP/IP protocol for internet connectivity. It also has General Purpose Input/Output(GPIO) pins for connecting with other devices and a 32-bit Reduced Instruction Set Computer(RISC) CPU as well.
- Inbuilt Antenna – The ESP-01 has an integrated Printed Circuit Board(PCB) antenna for establishing wifi connection.
- Flash Memory – The most common size of flash memory found in ESP-01 is about 512 kb or 1 Mb. Flash memory is used for storing the program and firmware.
- GPIO Pins – There are a limited number of GPIO pins available in the ESP-01 wifi module which makes it favorable for simple projects too however the number of GPIO pins may vary according to the version of the ESP-01 module.
- Power LED – There is an inbuilt power led in the ESP – 01 module which is red in color and it will start blinking when the board is connected to a power supply.
That is all in the board components. Lets us have a look at the specifications of the ESP-01:
Board Features
Features of the ESP-01 board are as follows:
Board | ESP-01 |
Microcontroller | ESP8266 |
PCB Antenna | 1 |
Flash Memory | 512 kb, 1 mb |
External QSPI flash memory | 8Mb |
Board Dimension | 14.3 x 24.8mm |
Weight Of the board | 1.5g |
I/O Port | 2 |
Power Consumption OF ESP – 01
The power consumption of the ESP-01 is as follows:
Power Supply | +3.3V |
Current Consumption | 100mA |
I/O Voltage | 3.6 v(max) |
I/O source current | 12mA (max) |
Modem Sleep | 20 mA |
Light Sleep | 2 mA |
Deep Sleep | 0.02 mA |
Pinout OF ESP-01
Pin Name | Pin Function |
VCC | Power Supply – 3.3V only |
GND | Ground |
TX | UART TX |
RX | UART RX |
RST | Reset |
CH_PD | Chip Enable |
GPIO 0 | General Purpose IO |
GPIO 2 | General Purpose IO |
VCC :
The VCC pin in the ESP-01 module is responsible for a power supply of 3.3 volts. The nature of the supply of this pin is positive.
GND :
This pin is also known as a ground pin. It is used for connecting the board to the ground. The nature of the supply of this pin is negative.
TX :
This pin is also known as GPIO 1 pin. This pin can be used as a serial output or normal input output pin. TX pin is used for transmitting the data.
RX :
This pin is also known as GPIO 3 pin. It is a serial input or normal input output pin. The main work of the RX pin is to receive the data.
RST :
The RESET pin is used to reset the board. It is an active low pin and for resetting the board we need to pull this pin to low.
CH_PD :
This pin is also known as Chip Power Down or Chip Enable pin. This pin is used for enabling the chip. It is an active high pin so for enabling the chip we need to pull this pin to high.
GPIO 0 :
It is the general-purpose input-output pin.
GPIO 2 :
It is the general-purpose input-output pin.
Programming OF Esp 01
To Program ESP-01 using Arduino ide first you have to install the ESP board into your Arduino IDE software. The esp-01 board doesn’t have an onboard FTDI program like esp-8266 or any upper variant. So, either use an Arduino board to program it or use a USB FTDI Programmer.
Programing esp-01 Using Arduino Board
Connection
The instructions for connecting ESP 01 and the Arduino board are as follows:-
Connection For Programming –
- Connect the Ground pin of ESP 01 to the Ground pin of Arduino.
- GPIO 0 of ESP 01 to Ground Pin of Arduino.
- RXD of ESP 01 to RX of Arduino
- TXD of ESP 01 to TX of Arduino
- CHPD of ESP 01 to 3.3V of Arduino
- VCC of ESP 01 to
- 3.3V of ESP 01 to 3.3V of Arduino
- GPIO-2 and RST will be not connected
Now before uploading the code we have to make GPIO 0 to ground and after it connect RST to ground. Now remove RST after half a second and then click on upload. Now you can see that the blue flashes once and then blink till it gets uploaded.
Connection After Programming
- After programming, remove the serial Arduino cable and then plug it again
- Take out GPIO-0 from GND
- Connect GND of ESP 01 of GND of Arduino
- GPIO 0, GPIO 2, and RST remains not connected
- Connect RXD of ESP 01 to TX of Arduino
- Connect TXD of ESP 01 to RX of Arduino
- Connect CHPD of ESP 01 to 3.3V of Arduino
- Connect VCC of ESP 01 to 3.3V of Arduino
Code
Open Arduino IDE -> go to files -> go to preferences.
Head to Additional Boards Manager URLs and paste the URL given –
https://dl.espressif.com/dl/package_esp32_index.json, http://arduino.esp8266.com/stable/package_esp8266com_index.json
Then Go to Tools > Board > Boards Manager.
Now search for ESP8266 and install it.
Then select the Generic ESP8266 module from there.
The code is as follows
#define BLYNK_PRINT Serial
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>
#include <SoftwareSerial.h>
#define ESP8266_BAUD 9600
char auth[] = "6bae2d0e7bfa4b6096feeaffa2030e4f";
char ssid[] = "Enter wiFi Name"; //You can replace the wifi name to your wifi
char pass[] = "Password"; //Type password of your wifi.
SoftwareSerial EspSerial(2, 3); // RX, TX
WidgetLCD lcd(V0);
ESP8266 wifi(&EspSerial);
void setup()
{
Serial.begin(9600);
EspSerial.begin(ESP8266_BAUD);
Blynk.begin(auth, wifi, ssid, pass);
lcd.clear();
lcd.print(1, 1, "IoT");
}
void loop()
{
Blynk.run();
}
Programing esp-01 Using FTDI programmer
Connection
The instructions for connecting ESP 01 and FTDI are as follows:-
- Connect VCC of FTDI to VCC of ESP 01
- Connect CH_PD of FTDI to GPIO 0 of ESP 01
- Connect GND of FTDI to GND of ESP 01
- Connect TX of FTDI to RX of ESP 01
- Connect RX of FTDI to TX of ESP 01
- Ground the GPIO 0 to enter into the programming mode of ESP 01.
- Connect the FTDI cable to the USB port
That is all in connection of the FTDI and ESP 01.
Code
Before uploading the code let’s select the required board in Arduino IDE before uploading the code
- Start the Arduino IDE
- Go to File > Preferences
- Go to additional board manage URLs and paste the following link there – http://arduino.esp8266.com/stable/package_esp8266com_index.json
- Go to Tools > Boards > Boards Manager
- Search ESP8266
- Click the Install button to install the ESP8266 Board
- Now select the Generic ESP8266 Module from the board selection list.
Now upload the code given below
void setup() {
// initialize LED_BUILTIN as an output pin.
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on
delay(1000);
digitalWrite(LED_BUILTIN, LOW); // turn the LED off
delay(1000);
}
After the uploading of the Blink LED program is completed, connect the LED to the GPIO_2 Pin of ESP8266.
Frequently Asked Questions:
- What is the esp 01 baud rate?
The baud rate of the Esp 01 module is 115200 bps.
- Does esp-01 have Bluetooth?
No, the ESP 01 does not have Bluetooth.
- What is the difference between esp 01 and esp 12e?
Both of the boards are wifi modules but esp 01 is a smaller board with less number of pins while the esp 12e has more pins which makes it versatile for a wider range of products.