Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use ESP32 Dev board (20 pins): Examples, Pinouts, and Specs

Image of ESP32 Dev board (20 pins)
Cirkit Designer LogoDesign with ESP32 Dev board (20 pins) in Cirkit Designer

Introduction

The ESP32 Dev Board (20 pins) is a versatile microcontroller development board powered by the ESP32 chip. It features built-in Wi-Fi and Bluetooth capabilities, making it an excellent choice for Internet of Things (IoT) projects, wireless communication, and rapid prototyping. With its dual-core processor, low power consumption, and extensive GPIO options, the ESP32 Dev Board is widely used in smart home devices, wearable electronics, and industrial automation.

Explore Projects Built with ESP32 Dev board (20 pins)

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
ESP32 and I2C LCD Display for Data Visualization
Image of layar20x4I2C: A project utilizing ESP32 Dev board (20 pins) in a practical application
This circuit consists of an ESP32 Devkit V1 microcontroller connected to a 20x4 I2C LCD display. The ESP32 controls the LCD via I2C communication, with the SCL and SDA lines connected to GPIO pins D22 and D21, respectively, and provides power and ground connections to the display.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based OLED Display Interface
Image of d: A project utilizing ESP32 Dev board (20 pins) in a practical application
This circuit features an ESP32 microcontroller connected to an OLED 1.3" display. The ESP32's GPIO pins 21 and 22 are used for I2C communication (SDA and SCL respectively) with the OLED display. The display is powered by the 5V output from the ESP32, and both devices share a common ground.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Environmental Monitoring System with Water Flow Sensing
Image of Water: A project utilizing ESP32 Dev board (20 pins) in a practical application
This circuit features an ESP32 Devkit V1 microcontroller connected to a DHT22 temperature and humidity sensor and a water flow sensor. The ESP32 reads environmental data from the DHT22 via a digital input pin (D33) and monitors water flow through the water flow sensor connected to another digital input pin (D23). The ESP32 is powered through its VIN pin, and both sensors are powered by the ESP32's 3V3 output, with common ground connections.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32 and Logic Level Converter-Based Wi-Fi Controlled Interface
Image of Toshiba AC ESP32 devkit v1: A project utilizing ESP32 Dev board (20 pins) in a practical application
This circuit features an ESP32 Devkit V1 microcontroller connected to a Bi-Directional Logic Level Converter, which facilitates voltage level shifting between the ESP32 and external components. The ESP32 is powered through its VIN pin via an alligator clip cable, and the logic level converter is connected to various pins on the ESP32 to manage different voltage levels for communication.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with ESP32 Dev board (20 pins)

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of layar20x4I2C: A project utilizing ESP32 Dev board (20 pins) in a practical application
ESP32 and I2C LCD Display for Data Visualization
This circuit consists of an ESP32 Devkit V1 microcontroller connected to a 20x4 I2C LCD display. The ESP32 controls the LCD via I2C communication, with the SCL and SDA lines connected to GPIO pins D22 and D21, respectively, and provides power and ground connections to the display.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of d: A project utilizing ESP32 Dev board (20 pins) in a practical application
ESP32-Based OLED Display Interface
This circuit features an ESP32 microcontroller connected to an OLED 1.3" display. The ESP32's GPIO pins 21 and 22 are used for I2C communication (SDA and SCL respectively) with the OLED display. The display is powered by the 5V output from the ESP32, and both devices share a common ground.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Water: A project utilizing ESP32 Dev board (20 pins) in a practical application
ESP32-Based Environmental Monitoring System with Water Flow Sensing
This circuit features an ESP32 Devkit V1 microcontroller connected to a DHT22 temperature and humidity sensor and a water flow sensor. The ESP32 reads environmental data from the DHT22 via a digital input pin (D33) and monitors water flow through the water flow sensor connected to another digital input pin (D23). The ESP32 is powered through its VIN pin, and both sensors are powered by the ESP32's 3V3 output, with common ground connections.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Toshiba AC ESP32 devkit v1: A project utilizing ESP32 Dev board (20 pins) in a practical application
ESP32 and Logic Level Converter-Based Wi-Fi Controlled Interface
This circuit features an ESP32 Devkit V1 microcontroller connected to a Bi-Directional Logic Level Converter, which facilitates voltage level shifting between the ESP32 and external components. The ESP32 is powered through its VIN pin via an alligator clip cable, and the logic level converter is connected to various pins on the ESP32 to manage different voltage levels for communication.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • IoT devices and smart home automation
  • Wireless sensor networks
  • Bluetooth-enabled devices
  • Data logging and remote monitoring
  • Robotics and embedded systems prototyping

Technical Specifications

The ESP32 Dev Board (20 pins) is designed to provide robust performance and flexibility for a wide range of applications. Below are its key technical details:

Key Technical Details

Specification Value
Microcontroller ESP32 Dual-Core Xtensa LX6
Clock Speed Up to 240 MHz
Flash Memory 4 MB (varies by model)
SRAM 520 KB
Wi-Fi Standard 802.11 b/g/n
Bluetooth Bluetooth 4.2 and BLE
Operating Voltage 3.3V
Input Voltage (VIN) 5V (via USB or VIN pin)
GPIO Pins 20 (multipurpose, including ADC, PWM, etc.)
ADC Resolution 12-bit
PWM Channels 16
Communication Interfaces UART, SPI, I2C, I2S, CAN, Ethernet
Power Consumption Ultra-low power modes available

Pin Configuration and Descriptions

The ESP32 Dev Board (20 pins) has the following pinout:

Pin Number Pin Name Description
1 EN Enable pin (active high)
2 IO23 GPIO23, SPI MOSI
3 IO22 GPIO22, I2C SCL
4 IO21 GPIO21, I2C SDA
5 GND Ground
6 IO19 GPIO19, SPI MISO
7 IO18 GPIO18, SPI SCK
8 IO17 GPIO17, UART2 TX
9 IO16 GPIO16, UART2 RX
10 IO15 GPIO15, PWM, ADC
11 IO14 GPIO14, PWM, ADC
12 IO13 GPIO13, PWM, ADC
13 IO12 GPIO12, PWM, ADC
14 IO5 GPIO5, PWM, ADC
15 IO4 GPIO4, PWM, ADC
16 IO2 GPIO2, PWM, ADC
17 IO0 GPIO0, Boot Mode Selection
18 3V3 3.3V Power Output
19 VIN 5V Power Input
20 GND Ground

Usage Instructions

How to Use the ESP32 Dev Board in a Circuit

  1. Powering the Board:

    • Connect the board to a 5V power source via the USB port or the VIN pin.
    • Ensure the power supply provides sufficient current (at least 500 mA).
  2. Programming the Board:

    • Install the Arduino IDE and add the ESP32 board support package.
    • Connect the board to your computer using a USB cable.
    • Select the correct board and port in the Arduino IDE.
  3. Connecting Peripherals:

    • Use the GPIO pins for connecting sensors, actuators, or other peripherals.
    • Refer to the pin configuration table to identify the appropriate pins for your application.
  4. Uploading Code:

    • Write or load your code in the Arduino IDE.
    • Click the upload button to flash the code to the ESP32.

Important Considerations and Best Practices

  • Voltage Levels: The GPIO pins operate at 3.3V. Avoid applying 5V directly to the pins to prevent damage.
  • Boot Mode: Ensure GPIO0 is not pulled low during normal operation, as this will put the board into bootloader mode.
  • Power Supply: Use a stable power source to avoid unexpected resets or instability.
  • Wi-Fi and Bluetooth: Avoid placing the board near metal objects or enclosures that may interfere with wireless signals.

Example Code for Arduino UNO Integration

Below is an example of using the ESP32 to control an LED via Wi-Fi:

#include <WiFi.h>

// Replace with your network credentials
const char* ssid = "Your_SSID";
const char* password = "Your_PASSWORD";

void setup() {
  Serial.begin(115200); // Initialize serial communication
  pinMode(2, OUTPUT);   // Set GPIO2 as an output pin for the LED

  // Connect to Wi-Fi
  Serial.print("Connecting to Wi-Fi");
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("\nWi-Fi connected!");
}

void loop() {
  digitalWrite(2, HIGH); // Turn the LED on
  delay(1000);           // Wait for 1 second
  digitalWrite(2, LOW);  // Turn the LED off
  delay(1000);           // Wait for 1 second
}

Troubleshooting and FAQs

Common Issues and Solutions

  1. The board is not detected by the computer:

    • Ensure the USB cable is functional and supports data transfer.
    • Install the correct USB-to-serial driver for the ESP32.
  2. Code upload fails:

    • Check that the correct board and port are selected in the Arduino IDE.
    • Press and hold the "BOOT" button on the ESP32 while uploading the code.
  3. Wi-Fi connection issues:

    • Verify the SSID and password are correct.
    • Ensure the Wi-Fi network is within range and not overloaded.
  4. Unstable operation or frequent resets:

    • Use a stable power supply with sufficient current.
    • Avoid connecting high-power peripherals directly to the GPIO pins.

FAQs

  • Can I use 5V sensors with the ESP32?
    Yes, but you will need a level shifter to step down the voltage to 3.3V.

  • How do I reset the ESP32?
    Press the "EN" button on the board to reset it.

  • Can the ESP32 operate on battery power?
    Yes, you can power the ESP32 using a 3.7V LiPo battery connected to the VIN pin.

This documentation provides a comprehensive guide to using the ESP32 Dev Board (20 pins) effectively. For further assistance, consult the official ESP32 documentation or community forums.