Everything you built on an Arduino Uno lived on one desk. It could sense and act, but it could not tell anyone. The ESP32 changes that: it has WiFi and Bluetooth built into the chip, so a sensor reading can become a web page, a phone notification, or a row in a database somewhere else in the world.
It is also considerably more powerful than an Uno — and it has one difference that will destroy your components if you skip past it. That difference is in this chapter, and it is the most important thing on this page.
What You’ll Learn in This Chapter
Microcontroller
ESP32 development board — WiFi and Bluetooth on a breadboard-friendly module
Miscellaneous Components
A USB data cable (micro-USB or USB-C, depending on your board)
The ESP32 is a microcontroller made by Espressif. Like the ATmega328P on the Uno, it runs one program forever. Unlike it, the ESP32 has a radio — and a great deal more of everything else.
[IMAGE NEEDED — IMG-E32-01 · ESP32 dev board photographed top-down with the antenna, USB port and boot buttons visible]
| Arduino Uno | ESP32 | |
|---|---|---|
| Processor speed | 16 MHz | 240 MHz, dual core |
| RAM | 2 KB | 520 KB |
| Program storage | 32 KB | 4 MB typical |
| Logic voltage | 5V | 3.3V |
| Analog inputs | 6, 10-bit (0–1023) | ~15, 12-bit (0–4095) |
| WiFi | None | Built in |
| Bluetooth | None | Built in |
The ESP32 has roughly 250 times the memory and 15 times the speed — which is what allows it to run a network stack and a web server while still reading your sensors.
This is the one thing to take away from this chapter.
The ESP32 runs at 3.3V. Its pins are not 5V tolerant.
On an Uno, HIGH means 5V. On an ESP32, HIGH means 3.3V. Connect a 5V signal to an ESP32 input pin and you are pushing a voltage into it that it is not built to survive. It may work for a while. It may fail immediately. Either way the pin, or the whole board, can be damaged permanently — and this is the single most common way beginners kill an ESP32.
What this means in practice:
Get into the habit now: before wiring any component to an ESP32, ask what voltage its output produces.
“Internet of Things” sounds grand. In practice it means a device that does three things:
You can already do the first two. This course is about the third — and about what becomes possible once a project is no longer confined to the desk it sits on.
| Term | Simple Meaning |
|---|---|
| ESP32 | A microcontroller with WiFi and Bluetooth built in |
| GPIO | General Purpose Input/Output — what ESP32 pins are called |
| 3.3V logic | HIGH is 3.3V, and pins cannot tolerate 5V |
| Level shifter | A part that safely converts 5V signals to 3.3V |
| IoT | A device that senses, decides and communicates |
| Dev board | The chip plus USB, power regulation and pin headers |
“ESP32” describes a family, not one product, and boards differ in ways that matter when you start wiring.
Look at the silk-screen printing on the module and the board:
Find a pinout diagram matching your exact board and keep it beside you. Unlike the Uno, where pin 9 is pin 9 on every board ever made, ESP32 boards vary.
[IMAGE NEEDED — IMG-E32-02 · ESP32 DEVKIT V1 pinout diagram with GPIO numbers labelled]
⚠️ Common Mistakes
Before you wire anything:
Look back at the components you used in the Arduino course — the LED, the push button, the LDR, the HC-SR04 ultrasonic sensor, the servo, the 16×2 LCD.
For each one, answer: does it output a signal to the microcontroller, and if so, at what voltage? Which of them could you connect straight to an ESP32, and which would need a level shifter or a voltage divider first?
Post your list on the forum, with your reasoning for the ultrasonic sensor in particular.