ESP32 Calcs

ESP32 Projects for Beginners — 10 Builds in the Right Order

The fastest way to learn an ESP32 isn't a tutorial marathon — it's ten projects that each teach one thing, built in an order where every new project reuses the last one. This guide is that ladder: from the first blink to a battery-aware Wi-Fi sensor, with the wiring trap each step exists to teach you.

Quick answer: Build in this order: 1) blink an LED (GPIO current limits), 2) read a button (input + pull-ups), 3) touch buttons (touch pins), 4) PWM dimming (analog output on the classic chip), 5) a DHT22 sensor (digital vs analog pins), 6) an ADC battery monitor (ADC1 vs ADC2), 7) a web server (Wi-Fi basics), 8) MQTT to a broker (the IoT backbone), 9) deep sleep (the battery multiplier), 10) a mini dashboard on your phone. Each step takes an evening, and steps 5–9 are the core of most real products.

What you need (about $15 worth)

One dev board from the pinout tool's set (the classic DevKitC V4 is the friendliest), a breadboard, jumper wires, 5–10 LEDs, a 220 Ω and 10 kΩ resistor assortment, two buttons, a DHT22 or DS18B20 sensor, a 100 kΩ / 100 kΩ pair for the battery divider, and a micro-USB data cable. Skip starter kits with 40 modules — half of them you'll never touch.

The ten projects, and the trap each one teaches

  • Blink an LED (GPIO2): GPIO current limits — 10–12 mA per pin, always a resistor.
  • Button input (GPIO0): strapping pins — GPIO0 is a boot pin; use internal pull-up carefully and avoid holding it low at reset.
  • Touch buttons (GPIO4/GPIO13): touch channels are hardware — no extra parts.
  • PWM dimming (GPIO25/GPIO26): the classic chip's DAC is only on two pins; everything else dims by PWM.
  • DHT22 (GPIO14): digital protocol on any pin — but keep sensor wires away from the antenna's area.
  • Battery monitor via ADC (GPIO34): ADC1 only while Wi-Fi is on — read 0–3.3 V through a divider, never direct.
  • Web server (GPIO2): Wi-Fi needs 3.3 V regulation and a stable power source — USB is fine for learning.
  • MQTT (GPIO21/GPIO22 free after flash): the publish/subscribe pattern that most IoT dashboards use.
  • Deep sleep (GPIO16 RTC wake): the 0.01–0.15 mA sleep current and why dev boards leak more.
  • Phone dashboard: serve a tiny HTML page with fetch() — a real mini product.

The wiring traps, summarized once

Always a resistor on LEDs (GPIO outputs are not 5 V-tolerant and not current-limited by magic). Pull-up or pull-down every input, or the pin floats and the button behaves randomly. Never feed 5 V into a GPIO. Never wire a sensor to ADC2 pins if Wi-Fi will be on. And before you order parts for project 6, read the pinout tool's ADC notes — the battery divider values it recommends keep you inside 3.3 V at full charge.

After project 10, what next

Replace the DHT22 with something the web has more people asking about — a BME280 (pressure + humidity + temp), an indoor PM2.5 sensor, or a presence sensor. Or jump to the AI hardware guide: voice assistants and AI toys reuse exactly these skills — GPIO, Wi-Fi, deep sleep — with a cloud API on top.

Frequently Asked Questions

Which ESP32 board should a beginner buy?
The classic ESP32-DevKitC V4 (or any WROOM-32E board): best documentation, most tutorials, and every pin reference includes it. The S3 is the better long-term choice (more pins, native USB) but the classic has the largest beginner ecosystem.
Do I need Arduino experience first?
No — the Arduino IDE works on ESP32 out of the box, and the first three projects here are the same as an Arduino's. The differences start when you touch the GPIO traps and the Wi-Fi stack.
How long does each project take?
An evening each for the first five; Wi-Fi and MQTT projects can eat a weekend if the environment fights you. The biggest time sink is driver/Wi-Fi setup, not the wiring.
What's the first thing that breaks?
The USB cable: many 'cheap' micro-USB cables are charge-only and can't flash. The second thing is a floating input — always set pinMode INPUT_PULLUP/INPUT_PULLDOWN or wire a resistor.
Can I power projects from a battery yet?
Project 9 is exactly that. Read the deep-sleep guide — the answer for 'how long will it run' is always a calculation, and that's the battery-life calculator's job.

More tools used in this guide

ESP32 Pinout

Interactive pinout for the ESP32 family: click any pin on a DevKitC V4, S3-DevKitC-1, C3-DevKitM-1 or C6-DevKitC-1 to see its GPIO number, every official function, and the boot-time traps — transcribed from Espressif's official header tables.

Battery Life Calculator

Battery runtime for microcontroller projects: enter capacity, active current, duty cycle and sleep current to get real-world battery life in hours and days — the way it actually behaves on an ESP32-class board.

Voltage Divider Calculator

Two-resistor voltage divider: output voltage, divider current and dissipation — plus the R2 value that hits a target voltage, and the ESP32 ADC limits that decide whether your reading will actually be stable.

More guides

ESP32 Deep Sleep & Battery Power Guide

How to actually get weeks-to-months battery life: deep sleep modes, wake sources, the dev-board overhead leak, and a measurement recipe to find your real sleep current.

ESP32 AI Hardware Projects

The AI hardware builds everyone is making: voice assistants, desktop AI boxes, smart displays and AI toys — with the parts list, the wiring, and what each one actually teaches.