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

How to Use ESP32 Wi-Fi + BLE MCU: Examples, Pinouts, and Specs

Image of ESP32 Wi-Fi + BLE MCU
Cirkit Designer LogoDesign with ESP32 Wi-Fi + BLE MCU in Cirkit Designer

Introduction

The ESP32 is a powerful microcontroller unit (MCU) that integrates Wi-Fi and Bluetooth Low Energy (BLE) capabilities, making it an ideal choice for Internet of Things (IoT) applications. It is designed for low-power, high-performance wireless communication and control, enabling seamless connectivity in a wide range of devices. The ESP32 is widely used in smart home systems, wearable devices, industrial automation, and other IoT solutions.

Explore Projects Built with ESP32 Wi-Fi + BLE MCU

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-Based Multi-Sensor Health Monitoring System with Bluetooth Connectivity
Image of circuit diagram: A project utilizing ESP32 Wi-Fi + BLE MCU in a practical application
This circuit features an ESP32-WROOM-32UE microcontroller as the central processing unit, interfacing with a variety of sensors and modules. It includes a MAX30100 pulse oximeter and heart-rate sensor, an MLX90614 infrared thermometer, an HC-05 Bluetooth module for wireless communication, and a Neo 6M GPS module for location tracking. All components are powered by a common voltage supply and are connected to specific GPIO pins on the ESP32 for data exchange, with the sensors using I2C communication and the modules using UART.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32 and HM-10 Bluetooth Module Communication System
Image of denuyo: A project utilizing ESP32 Wi-Fi + BLE MCU in a practical application
This circuit integrates an ESP32 microcontroller with an HM-10 Bluetooth module, powered by an external power supply. The ESP32 communicates with the Bluetooth module via UART, enabling wireless data transmission.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP8266 NodeMCU-Based Environmental Monitoring and Proximity Detection System
Image of mgr: A project utilizing ESP32 Wi-Fi + BLE MCU in a practical application
This circuit features an ESP8266 NodeMCU microcontroller interfaced with a BME/BMP280 sensor for environmental data, an HC-SR04 ultrasonic sensor for distance measurement, and an OLED display for output. Two LEDs (red and green) are included, each with a current-limiting resistor, likely for status indication. The ESP8266 facilitates communication with the sensors and display via I2C (SCL and SDA lines) and controls the LEDs and reads from the ultrasonic sensor using its GPIO pins.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino and ESP32 Bluetooth Communication System with Battery Backup
Image of Marie: A project utilizing ESP32 Wi-Fi + BLE MCU in a practical application
This circuit integrates an Arduino UNO and an ESP32 microcontroller, with an HM-10 Bluetooth module for wireless communication. The Arduino UNO powers the Bluetooth module and the ESP32, while the ESP32 communicates with the Bluetooth module to enable wireless data transmission. A 3.3V battery is used to power the ESP32.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with ESP32 Wi-Fi + BLE MCU

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 circuit diagram: A project utilizing ESP32 Wi-Fi + BLE MCU in a practical application
ESP32-Based Multi-Sensor Health Monitoring System with Bluetooth Connectivity
This circuit features an ESP32-WROOM-32UE microcontroller as the central processing unit, interfacing with a variety of sensors and modules. It includes a MAX30100 pulse oximeter and heart-rate sensor, an MLX90614 infrared thermometer, an HC-05 Bluetooth module for wireless communication, and a Neo 6M GPS module for location tracking. All components are powered by a common voltage supply and are connected to specific GPIO pins on the ESP32 for data exchange, with the sensors using I2C communication and the modules using UART.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of denuyo: A project utilizing ESP32 Wi-Fi + BLE MCU in a practical application
ESP32 and HM-10 Bluetooth Module Communication System
This circuit integrates an ESP32 microcontroller with an HM-10 Bluetooth module, powered by an external power supply. The ESP32 communicates with the Bluetooth module via UART, enabling wireless data transmission.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of mgr: A project utilizing ESP32 Wi-Fi + BLE MCU in a practical application
ESP8266 NodeMCU-Based Environmental Monitoring and Proximity Detection System
This circuit features an ESP8266 NodeMCU microcontroller interfaced with a BME/BMP280 sensor for environmental data, an HC-SR04 ultrasonic sensor for distance measurement, and an OLED display for output. Two LEDs (red and green) are included, each with a current-limiting resistor, likely for status indication. The ESP8266 facilitates communication with the sensors and display via I2C (SCL and SDA lines) and controls the LEDs and reads from the ultrasonic sensor using its GPIO pins.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Marie: A project utilizing ESP32 Wi-Fi + BLE MCU in a practical application
Arduino and ESP32 Bluetooth Communication System with Battery Backup
This circuit integrates an Arduino UNO and an ESP32 microcontroller, with an HM-10 Bluetooth module for wireless communication. The Arduino UNO powers the Bluetooth module and the ESP32, while the ESP32 communicates with the Bluetooth module to enable wireless data transmission. A 3.3V battery is used to power the ESP32.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications:

  • Smart home devices (e.g., smart lights, thermostats)
  • Wearable technology
  • Industrial IoT systems
  • Wireless sensor networks
  • Robotics and automation
  • Remote monitoring and control systems

Technical Specifications

The ESP32 is equipped with robust hardware and versatile features. Below are its key technical specifications:

Key Features:

  • Processor: Dual-core Xtensa® 32-bit LX6 CPU, up to 240 MHz
  • Wireless Connectivity:
    • Wi-Fi: 802.11 b/g/n
    • Bluetooth: BLE and Classic Bluetooth
  • Memory:
    • RAM: 520 KB SRAM
    • Flash: Typically 4 MB (varies by module)
  • GPIO Pins: 34 programmable GPIOs
  • Operating Voltage: 3.0V to 3.6V
  • Power Consumption: Ultra-low power consumption with multiple power modes
  • Interfaces: SPI, I2C, UART, ADC, DAC, PWM, and more
  • Operating Temperature: -40°C to +125°C

Pin Configuration:

The ESP32 has a variety of pins for different functionalities. Below is a summary of the pin configuration:

Pin Name Function Description
GPIO0 Input/Output, Boot Mode Select Used for boot mode selection during startup.
GPIO1 (TXD0) UART TX UART0 transmit pin.
GPIO3 (RXD0) UART RX UART0 receive pin.
GPIO12-15 Input/Output, ADC, PWM General-purpose pins with ADC and PWM capabilities.
GPIO34-39 Input Only Analog input pins, used for ADC functionality.
EN Enable Enables the chip when pulled high.
3V3 Power Supply 3.3V power input.
GND Ground Ground connection.

Note: The exact pinout may vary depending on the ESP32 module or development board (e.g., ESP32-WROOM-32, ESP32-WROVER).

Usage Instructions

The ESP32 can be used in a variety of circuits and applications. Below are the steps to get started:

1. Setting Up the ESP32 with Arduino IDE:

  1. Install the Arduino IDE from the official website.
  2. Add the ESP32 board to the Arduino IDE:
    • Go to File > Preferences.
    • In the "Additional Board Manager URLs" field, add:
      https://dl.espressif.com/dl/package_esp32_index.json
    • Open Tools > Board > Boards Manager, search for "ESP32," and install the package.
  3. Select the ESP32 board from Tools > Board.

2. Basic Circuit Connection:

  • Connect the ESP32 to your computer via a USB cable.
  • Ensure the following connections:
    • 3V3 to 3.3V power supply.
    • GND to ground.
    • Use GPIO pins for peripherals (e.g., sensors, LEDs).

3. Example Code: Blink an LED

The following code demonstrates how to blink an LED connected to GPIO2:

// Define the GPIO pin for the LED
const int ledPin = 2;

void setup() {
  // Set the LED pin as an output
  pinMode(ledPin, OUTPUT);
}

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

  // Turn the LED off
  digitalWrite(ledPin, LOW);
  delay(1000); // Wait for 1 second
}

4. Important Considerations:

  • Power Supply: Ensure a stable 3.3V power source. Avoid exceeding 3.6V.
  • Boot Mode: To upload code, ensure GPIO0 is pulled low during reset.
  • Wi-Fi and BLE: Avoid using both Wi-Fi and BLE simultaneously in high-load applications to prevent performance issues.

Troubleshooting and FAQs

Common Issues:

  1. ESP32 Not Detected by Arduino IDE:

    • Ensure the correct board and port are selected in Tools > Board and Tools > Port.
    • Install the necessary USB-to-serial driver for your ESP32 module.
  2. Upload Fails with "Timed Out" Error:

    • Press and hold the BOOT button on the ESP32 while uploading the code.
    • Check the USB cable for data transfer capability (some cables are power-only).
  3. Wi-Fi Connection Issues:

    • Verify the SSID and password in your code.
    • Ensure the router is within range and supports 2.4 GHz Wi-Fi (ESP32 does not support 5 GHz).
  4. Random Resets or Instability:

    • Check for power supply issues. Use a capacitor to stabilize the power line if needed.
    • Avoid using GPIO pins that are reserved for internal functions (e.g., GPIO6-11 for flash memory).

FAQs:

Q1: Can the ESP32 operate on battery power?
A1: Yes, the ESP32 can operate on battery power. Use a 3.7V LiPo battery with a voltage regulator to provide 3.3V.

Q2: How many devices can connect to the ESP32 via BLE?
A2: The ESP32 can connect to up to 4 BLE devices simultaneously, depending on the application.

Q3: Can I use the ESP32 with MicroPython?
A3: Yes, the ESP32 supports MicroPython. You can flash the MicroPython firmware to the ESP32 and program it using Python.

Q4: What is the maximum Wi-Fi range of the ESP32?
A4: The Wi-Fi range is approximately 50 meters indoors and 200 meters outdoors, depending on environmental factors.

By following this documentation, you can effectively utilize the ESP32 in your projects and troubleshoot common issues.