What Is an ESP32?

An introduction to the ESP32 microcontroller and why it's great for IoT projects

If you have ever wanted to build a device that connects to the internet -- a weather station that posts data to your phone, a smart light you control with your voice, or a sensor that sends you an alert -- the ESP32 is one of the best places to start.

This article explains what the ESP32 is, why it has become the go-to chip for hobbyists and professionals alike, and which board you should buy first.

🔗What is a microcontroller?

A microcontroller is a tiny computer on a single chip. It has a processor, a small amount of memory, and pins that connect to the outside world. Unlike a desktop PC, a microcontroller runs one program in a loop and is designed to interact directly with hardware -- reading sensors, blinking LEDs, driving motors, and communicating over networks.

🔗Meet the ESP32

The ESP32 is a microcontroller designed by Espressif Systems, a company based in Shanghai. It first appeared in 2016 and quickly became one of the most popular chips for Internet of Things (IoT) projects. The reason is simple: it packs WiFi, Bluetooth, a powerful dual-core processor, and dozens of I/O pins into a chip that costs only a few dollars.

🔗Key specifications

FeatureDetails
CPUXtensa LX6, dual-core, up to 240 MHz
RAM520 KB SRAM
Flash4 MB (typical; varies by module)
WiFi802.11 b/g/n, 2.4 GHz
Bluetoothv4.2 BR/EDR and BLE
GPIO pinsUp to 34 programmable GPIOs
ADCTwo 12-bit SAR ADCs (up to 18 channels)
DACTwo 8-bit DAC channels
CommunicationSPI, I2C, I2S, UART, CAN, PWM
Operating voltage3.3 V logic
Power consumptionAs low as 5 $\mu\text{A}$ in deep sleep

That is a lot of capability for a chip that typically costs 2-3 USD on its own, or 4-8 USD on a ready-to-use development board.

  • Built-in WiFi and Bluetooth. No extra modules needed. You can connect to your home network, talk to a cloud service, or pair with your phone -- all out of the box.
  • Cheap. Complete development boards start around 4-8 USD. Even with a handful of sensors, a full project can cost under 20 USD.
  • Powerful. A dual-core 240 MHz processor with 520 KB of RAM is far more capable than most 8-bit microcontrollers. It can handle real-time sensor reading, network communication, and display updates simultaneously.
  • Huge community. Thousands of tutorials, libraries, and forum threads exist. If you run into a problem, someone has almost certainly solved it before.
  • Arduino-compatible. You can program it with the Arduino IDE using familiar functions like digitalWrite() and Serial.println(). The learning curve from Arduino to ESP32 is gentle.
  • Multiple power modes. Deep sleep draws as little as 5 $\mu\text{A}$, making battery-powered projects practical.

🔗Which board should you buy?

This is where things get a little confusing for newcomers. The ESP32 is a chip (technically a module), but you will almost always buy it on a development board -- a small PCB that adds a USB port, voltage regulator, buttons, and pin headers so you can easily connect it to a computer and a breadboard.

For your first board, we recommend the ESP32-WROOM-32 DevKit. It is sold under various names:

  • ESP32 DevKitC V4 (the official Espressif design)
  • DOIT ESP32 DevKit V1
  • NodeMCU-32S
  • Generic "30-pin" or "38-pin" ESP32 dev boards

These all use the same ESP32-WROOM-32 module and work essentially the same way. They cost around 4-8 USD and are available from many vendors. We will add links to recommended sellers later.

🔗Why so many boards?

The ESP32 ecosystem is large. Espressif has released multiple chip variants over the years, and dozens of third-party manufacturers produce their own development boards. Here are some variants you might encounter:

Chip variantKey difference
ESP32-WROOM-32The classic. Dual-core, WiFi + Bluetooth. This is what we recommend.
ESP32-S2Single-core, WiFi only (no Bluetooth), native USB.
ESP32-S3Dual-core, WiFi + BLE, native USB, AI acceleration.
ESP32-C3Single-core RISC-V, WiFi + BLE, very low cost.
ESP32-C6RISC-V, adds WiFi 6 and Thread/Zigbee support.

Each variant has different pin counts, GPIO capabilities, and features. Even within the same chip family, different board manufacturers may expose different pins or use different labels.

Important: Always check the pinout diagram and datasheet for your specific board. Pin labels, available GPIOs, and ADC channels vary between boards -- even between boards that use the same ESP32 chip. A GPIO number in one tutorial may not correspond to the same physical pin on your board. When in doubt, search for your exact board model plus "pinout" to find a diagram.

For everything in this tutorial series, we will use the ESP32-WROOM-32 DevKit as our reference board. If you use a different board, most code will work the same, but you may need to adjust pin numbers.

🔗ESP32 vs Arduino

If you have heard of Arduino, you may wonder how the ESP32 compares. Here is a side-by-side look at the ESP32 DevKit versus the popular Arduino Uno:

FeatureESP32 DevKitArduino Uno
Processor240 MHz dual-core16 MHz single-core
RAM520 KB2 KB
Flash4 MB32 KB
WiFiYes (built-in)No (requires shield)
BluetoothYes (built-in)No (requires module)
Operating voltage3.3 V5 V
Analog inputsUp to 18 (12-bit)6 (10-bit)
Price~5 USD~12 USD (official)
Arduino IDE supportYesYes

The ESP32 is more powerful in almost every way and costs less. The Arduino Uno still has its place -- it is simpler, runs at 5 V (which makes some sensors easier to use), and has decades of beginner documentation. But for IoT projects where you need network connectivity, the ESP32 is the clear choice.

The good news is that if you already know Arduino, you already know most of what you need. The same setup() and loop() structure, the same digitalWrite() and analogRead() functions, and many of the same libraries work on both platforms.

🔗What can you build with an ESP32?

The combination of processing power, wireless connectivity, and low cost opens up a huge range of projects:

  • Weather stations -- Read temperature, humidity, and pressure sensors, then push data to a dashboard or cloud service.
  • Home automation -- Control lights, fans, and appliances from your phone or with voice assistants.
  • Plant monitoring -- Measure soil moisture and light levels, send alerts when your plant needs water.
  • Security sensors -- Detect motion or door openings and send notifications.
  • Data loggers -- Record sensor readings over time and store them on an SD card or upload them.
  • Displays and dashboards -- Drive OLED or LCD screens showing real-time data.
  • Bluetooth devices -- Build custom Bluetooth peripherals or beacons.
  • Robot controllers -- Drive motors, servos, and sensors with a single board.

Throughout this site, we will walk through projects like these step by step, starting from the basics and building up to complete, useful devices.

🔗Next steps

Now that you know what the ESP32 is and why it is worth learning, the next article covers the fundamental electronics concepts you will need before wiring up your first circuit.