Common Projects & Use Cases
With GPIO, Wi-Fi, Bluetooth/BLE, and ADC all covered in earlier lessons, this lesson pulls those pieces together into realistic project categories that match what the ESP32 actually does well.
Wi-Fi-Connected Sensor Node
Combine an ADC1 reading (see ADC & Reading Sensors) with the Wi-Fi connection code from the Connecting to Wi-Fi lesson: read a sensor periodically, then send the value over the network to a server or an MQTT broker (a common lightweight messaging system used across IoT projects). This is one of the single most common ESP32 project shapes - a small always-on device quietly reporting a reading every few seconds or minutes.
BLE Beacon / Battery-Powered BLE Sensor
Using the BLE server pattern from the Bluetooth & BLE lesson, a battery-powered device can advertise a small piece of data - a temperature, a button press, a presence signal - without needing to join a full Wi-Fi network at all. Because BLE is built for low power draw, this shape suits devices that need to run for a long time on a small battery.
Home Automation Relay / Switch Controller
Using the GPIO output basics from the GPIO Basics lesson (the
same pinMode/digitalWrite pattern used to blink an LED, applied to a relay
module instead), combined with Wi-Fi so it can be controlled remotely, an ESP32 makes an inexpensive
controller for a light, fan, or other switched appliance.
Small Robot or Motor Controller
With plenty of GPIO pins available and enough CPU headroom to run control logic and read sensors on the same chip, the ESP32 is a common choice for small robotics projects - driving motors, reading encoder or distance-sensor input, and optionally reporting status back over Wi-Fi or BLE at the same time.
What the ESP32 Is Not Well Suited For
To stay honest and consistent with the Introduction lesson: the ESP32 is not a good fit for display-heavy graphical user interface work the way a Raspberry Pi running a full desktop OS could handle, and it is not built for filesystem-heavy or multi-process workloads. By default it runs one program, not a multi-app operating system juggling several independent processes at once. If a project's core requirement is a rich graphical UI or genuinely parallel independent applications, a small computer is the better tool than a microcontroller.