

The ESP-WROOM-32 is a powerful Wi-Fi and Bluetooth module designed for IoT (Internet of Things) applications. It integrates a dual-core processor, offering high performance and versatility for a wide range of projects. This module is known for its low power consumption, extensive GPIO pin availability, and support for multiple communication protocols, making it a popular choice for developers and hobbyists alike.








The ESP-WROOM-32 module has 38 pins, but not all are available for general use. Below is a table of key pins and their functions:
| Pin Number | Pin Name | Function |
|---|---|---|
| 1 | EN | Enable pin. Active high. Used to reset the module. |
| 2 | IO0 | GPIO0. Can be used for general I/O or boot mode selection. |
| 3 | IO2 | GPIO2. General-purpose I/O. |
| 4 | IO4 | GPIO4. General-purpose I/O. |
| 5 | IO5 | GPIO5. General-purpose I/O. |
| 6 | IO12 | GPIO12. Can be used as ADC2 or general-purpose I/O. |
| 7 | IO13 | GPIO13. Can be used as ADC2 or general-purpose I/O. |
| 8 | IO14 | GPIO14. Can be used as ADC2 or general-purpose I/O. |
| 9 | IO15 | GPIO15. Can be used as ADC2 or general-purpose I/O. |
| 10 | IO16 | GPIO16. General-purpose I/O. |
| 11 | IO17 | GPIO17. General-purpose I/O. |
| 12 | IO18 | GPIO18. SPI clock or general-purpose I/O. |
| 13 | IO19 | GPIO19. SPI MISO or general-purpose I/O. |
| 14 | IO21 | GPIO21. I2C SDA or general-purpose I/O. |
| 15 | IO22 | GPIO22. I2C SCL or general-purpose I/O. |
| 16 | IO23 | GPIO23. SPI MOSI or general-purpose I/O. |
| 17 | GND | Ground. Connect to the ground of the power supply. |
| 18 | 3V3 | 3.3V power input. |
Note: Some GPIO pins have specific restrictions or are used during boot. Refer to the ESP32 datasheet for detailed pin behavior.
3V3 pin. Ensure the ground (GND) is connected to the circuit's ground.The ESP-WROOM-32 can be used with an Arduino UNO for Wi-Fi or Bluetooth functionality. Below is an example of connecting the ESP-WROOM-32 to an Arduino UNO and uploading a basic Wi-Fi scan sketch.
| Arduino UNO Pin | ESP-WROOM-32 Pin |
|---|---|
| 3.3V | 3V3 |
| GND | GND |
| TX | RX |
| RX | TX |
#include <WiFi.h> // Include the Wi-Fi library for ESP32
void setup() {
Serial.begin(115200); // Initialize serial communication
WiFi.mode(WIFI_STA); // Set Wi-Fi mode to station
WiFi.disconnect(); // Disconnect from any previous connections
delay(100);
Serial.println("Starting Wi-Fi scan...");
int n = WiFi.scanNetworks(); // Scan for available networks
Serial.println("Scan complete.");
if (n == 0) {
Serial.println("No networks found.");
} else {
Serial.println("Networks found:");
for (int i = 0; i < n; ++i) {
// Print SSID and signal strength of each network
Serial.print(i + 1);
Serial.print(": ");
Serial.print(WiFi.SSID(i));
Serial.print(" (");
Serial.print(WiFi.RSSI(i));
Serial.println(" dBm)");
}
}
}
void loop() {
// Nothing to do here
}
Note: Ensure the ESP-WROOM-32 is in programming mode when uploading the sketch.
3V3 and GND pins.Serial.print() function to output messages to the serial monitor.By following this documentation, you can effectively integrate the ESP-WROOM-32 into your projects and troubleshoot common issues.