The ESP32 is a powerful microcontroller developed by Espressif Systems, featuring integrated Wi-Fi and Bluetooth capabilities. With its 30-pin configuration, the ESP32 is designed to support a wide range of input/output (I/O) functions, making it an ideal choice for Internet of Things (IoT) applications, embedded systems, and smart devices. Its high processing power, low energy consumption, and versatile connectivity options make it a popular choice among hobbyists and professionals alike.
The ESP32 (30 pin) microcontroller offers the following key technical specifications:
Parameter | Value |
---|---|
Manufacturer | Espressif Systems |
Part ID | ESP32 |
Operating Voltage | 3.3V |
Input Voltage Range | 3.0V - 3.6V |
Digital I/O Pins | 30 |
Analog Input Pins | 16 (12-bit ADC) |
Analog Output Pins | 2 (8-bit DAC) |
Wi-Fi Standard | 802.11 b/g/n |
Bluetooth Standard | Bluetooth 4.2 (Classic and BLE) |
Flash Memory | 4MB (varies by model) |
SRAM | 520KB |
Clock Speed | Up to 240 MHz (dual-core Xtensa® LX6 processor) |
Operating Temperature | -40°C to +85°C |
Communication Interfaces | UART, SPI, I2C, I2S, CAN, PWM |
Power Consumption | Ultra-low power consumption in deep sleep mode (~10 µA) |
The ESP32 (30 pin) microcontroller has the following pinout:
Pin Number | Pin Name | Description |
---|---|---|
1 | EN | Enable pin. Active high. Used to reset the chip. |
2 | IO1 | GPIO1. General-purpose I/O pin. |
3 | IO2 | GPIO2. General-purpose I/O pin. |
4 | IO3 | GPIO3. General-purpose I/O pin. |
5 | IO4 | GPIO4. General-purpose I/O pin. |
6 | IO5 | GPIO5. General-purpose I/O pin. |
7 | IO6 | GPIO6. General-purpose I/O pin. |
8 | IO7 | GPIO7. General-purpose I/O pin. |
9 | IO8 | GPIO8. General-purpose I/O pin. |
10 | IO9 | GPIO9. General-purpose I/O pin. |
11 | IO10 | GPIO10. General-purpose I/O pin. |
12 | IO11 | GPIO11. General-purpose I/O pin. |
13 | IO12 | GPIO12. General-purpose I/O pin. |
14 | IO13 | GPIO13. General-purpose I/O pin. |
15 | IO14 | GPIO14. General-purpose I/O pin. |
16 | IO15 | GPIO15. General-purpose I/O pin. |
17 | IO16 | GPIO16. General-purpose I/O pin. |
18 | IO17 | GPIO17. General-purpose I/O pin. |
19 | IO18 | GPIO18. General-purpose I/O pin. |
20 | IO19 | GPIO19. General-purpose I/O pin. |
21 | IO20 | GPIO20. General-purpose I/O pin. |
22 | IO21 | GPIO21. General-purpose I/O pin. |
23 | IO22 | GPIO22. General-purpose I/O pin. |
24 | IO23 | GPIO23. General-purpose I/O pin. |
25 | IO24 | GPIO24. General-purpose I/O pin. |
26 | IO25 | GPIO25. General-purpose I/O pin. |
27 | IO26 | GPIO26. General-purpose I/O pin. |
28 | IO27 | GPIO27. General-purpose I/O pin. |
29 | IO28 | GPIO28. General-purpose I/O pin. |
30 | IO29 | GPIO29. General-purpose I/O pin. |
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 at 115200 baud
delay(1000); // Wait for a second to stabilize
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
WiFi.status()
to debug connection issues.Brownout Detector Triggered
GPIO Pin Not Responding
Code Upload Fails
Q: Can the ESP32 handle 5V logic levels?
Q: How do I reset the ESP32?
Q: Can I use the ESP32 with the Arduino IDE?