

The ESP32, manufactured by Espressif, is a powerful microcontroller designed for IoT (Internet of Things) applications. It features built-in Wi-Fi and Bluetooth capabilities, making it an excellent choice for wireless communication projects. With its 30-pin configuration, the ESP32 offers versatile connectivity options, allowing seamless interfacing with sensors, actuators, and other peripherals. Its compact size and robust performance make it suitable for a wide range of applications, from home automation to industrial control systems.








The ESP32 (30-pin variant) is packed with features that make it a versatile and powerful microcontroller. Below are its key technical specifications:
The ESP32 (30-pin variant) has a standard pinout. Below is a table describing the pin configuration:
| Pin Number | Pin Name | Function |
|---|---|---|
| 1 | EN | Enable pin (active high) |
| 2 | IO1 | GPIO1 / UART TX |
| 3 | IO3 | GPIO3 / UART RX |
| 4 | IO4 | GPIO4 / ADC / PWM |
| 5 | IO5 | GPIO5 / ADC / PWM |
| 6 | GND | Ground |
| 7 | VIN | Input voltage (3.3V or 5V) |
| 8 | IO12 | GPIO12 / ADC / PWM |
| 9 | IO13 | GPIO13 / ADC / PWM |
| 10 | IO14 | GPIO14 / ADC / PWM |
| 11 | IO15 | GPIO15 / ADC / PWM |
| 12 | IO16 | GPIO16 / ADC / PWM |
| 13 | IO17 | GPIO17 / ADC / PWM |
| 14 | IO18 | GPIO18 / SPI SCK |
| 15 | IO19 | GPIO19 / SPI MISO |
| 16 | IO21 | GPIO21 / I2C SDA |
| 17 | IO22 | GPIO22 / I2C SCL |
| 18 | IO23 | GPIO23 / SPI MOSI |
| 19 | IO25 | GPIO25 / DAC1 |
| 20 | IO26 | GPIO26 / DAC2 |
| 21 | IO27 | GPIO27 / ADC / PWM |
| 22 | IO32 | GPIO32 / ADC / PWM |
| 23 | IO33 | GPIO33 / ADC / PWM |
| 24 | IO34 | GPIO34 / ADC (input only) |
| 25 | IO35 | GPIO35 / ADC (input only) |
| 26 | IO36 | GPIO36 / ADC (input only) |
| 27 | IO39 | GPIO39 / ADC (input only) |
| 28 | 3V3 | 3.3V power output |
| 29 | GND | Ground |
| 30 | IO0 | GPIO0 / Boot mode selection |
Below is an example code to connect the ESP32 to a Wi-Fi network and print the IP address:
#include <WiFi.h> // Include the Wi-Fi library
const char* ssid = "Your_SSID"; // Replace with your Wi-Fi SSID
const char* password = "Your_Password"; // Replace with your Wi-Fi password
void setup() {
Serial.begin(115200); // Initialize serial communication
delay(1000); // Wait for serial monitor to open
Serial.println("Connecting to Wi-Fi...");
WiFi.begin(ssid, password); // Start Wi-Fi connection
while (WiFi.status() != WL_CONNECTED) {
delay(500); // Wait for connection
Serial.print(".");
}
Serial.println("\nWi-Fi connected!");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP()); // Print the device's IP address
}
void loop() {
// Add your main code here
}
ESP32 Not Connecting to Wi-Fi:
Upload Fails in Arduino IDE:
GPIO Pin Not Working:
ESP32 Overheating:
Q: Can the ESP32 operate on battery power?
A: Yes, the ESP32 can be powered by a battery. Use a 3.7V LiPo battery with a voltage regulator to supply 3.3V.
Q: How do I reset the ESP32?
A: Press the EN (Enable) button to reset the ESP32.
Q: Can I use the ESP32 with 5V logic devices?
A: No, the ESP32 operates at 3.3V logic levels. Use level shifters for 5V devices.
Q: What is the maximum range of the ESP32's Wi-Fi?
A: The range depends on the environment but typically extends up to 50 meters indoors and 200 meters outdoors.