The ESP32 is often treated like a tiny networking appliance. People turn it into a Wi-Fi extender, connection monitor, captive portal, or travel router, even though its radios are only part of what makes the board interesting. Underneath that familiar wireless feature set is a cheap, programmable controller that can read sensors, drive displays, transmit infrared commands, process Bluetooth signals, and do so much more.
So if you've only been using your ESP32 for network-related projects, you're missing out. Whether it's making a dumb piece of tech smart, or adding a little convenience to your life, the ESP32 can do a lot more than you probably give it credit for.
A thermostat that talks to dumb air conditioners
A DHT22, a few buttons, and Tapo plugs do the heavy lifting
I wanted a device that could control the ACs in my bedroom and office to maintain a specific temperature, as well as provide a quick physical button I could use to control lights without having to fiddle with my phone or Home Assistant on my PC. Additionally, I also wanted to monitor the print status on both my 3D printers.
The answer? An ESP32 hooked up to a DHT22 temperature and humidity sensor and a few push buttons connected to my Home Assistant instance. The ACs are controllable via Home Assistant courtesy of a few cheap Tapo P110 smart plugs, and Home Assistant automations take care of the rest.
An LED strip that makes failures impossible to miss
Blinks for printers, doorbells, and internet outages
If you've got a regular LED strip lying around, you can connect it to an ESP32 and make a smart lighting strip. Better yet, if you connect it to your Home Assistant instance, your smart LED strip can become an indicator for all sorts of different events around your house.
I've set up mine with help from various Home Assistant automations to blink in certain colors when my 3D printers are done with a job, when the doorbell rings, or when my internet times out. An internet outage alarm might sound like a networking project, but it doesn't fix, boost, or reconfigure the network. It simply makes a failure impossible to miss.
A voice assistant that never leaves your house
A $5 ESP32-S3 and a local LLM instead of a round trip to someone's server
I've had several run-ins with voice assistants in the past. Google Assistant, Cortana, Alexa, Bixby, Siri - I've used them all, and I've had the same complaint with every single one of them: why do they need to make a round trip to a third-party server to turn a light on in my own house?
As is the case with nearly every custom smart home device I've made, the voice assistant too centers around an ESP32, the ESP32-S3 N8R8 to be specific. I had one lying around from a previous project I decided to decommission, but you can find a new one for as low as $5. The ESP32 acts as a satellite that captures the wake word and sends the audio to a local LLM running via Ollama for processing. It's important to choose the right ESP32 here, as not all of them will support this task.
Connected to the ESP32 is an INMP441 I2S mic and a MAX98357A I2S amplifier board. For the speaker, I salvaged a small 4Ω speaker from a broken Bluetooth speaker, and since I wanted some visual feedback for my voice assistant, I added an 8x8 WS2812B LED matrix. The exact cost of the parts will vary based on where you are, but it shouldn't be more than $15.
Your Claude spending, on a screen you can glance at
Daily cost buckets from Anthropic's own API, shown on an OLED
AI costs are easy to ignore when they live behind a web dashboard. An ESP32 can turn Claude API consumption into something physical: a small OLED display showing today's spend, token usage, the most-used model, and progress toward a monthly budget. Anthropic provides organization-level usage and cost APIs, including a cost-report endpoint that returns daily cost buckets in US dollars.
Even if you're not using Claude's API, you can show your regular Claude Code usage. I decided to fix this by creating a small dedicated dashboard that showed my usage limits, so instead of clicking around or typing in commands, all it takes is a glance to see where I'm at. I also decided to add a temperature sensor so the dashboard can also show my office's ambient temperature and humidity, which I can pipe into my Home Assistant dashboard to set up automations for my air conditioner.
Room-level presence that follows people, not motion
One BLE scanner per room, tracked through MQTT
Basic presence automations know that someone is home, but they rarely know where that person is. ESPresense turns ESP32 boards into Bluetooth Low Energy scanners that estimate the location of a phone, watch, beacon, or tag and publish the result through MQTT for Home Assistant. With the simpler setup, one node per room lets Home Assistant associate the tracked device with the nearest room.
That opens the door to automations that follow people rather than motion. Music can move between rooms, office lighting can remain on while a tracked watch is nearby, and climate settings can respond to the rooms that are actually occupied. Bluetooth distance estimates are imperfect, so placement and calibration matter, especially in small adjoining spaces. Even so, room-level awareness feels much smarter than a motion sensor that forgets someone exists whenever they sit still.
The ESP32 was never really just a networking chip
Purpose-built appliances beat another Wi-Fi extender
These projects still use wireless communication, but none tries to make Wi-Fi faster. Instead, each turns the ESP32 into a purpose-built appliance, whether that's an outage beacon, thermostat, voice satellite, AI spending display, or room-presence node. That is where the board is at its best.
It provides enough processing power and peripherals to interact with the physical world, while Home Assistant supplies the history, interface, and automation logic. Start with the project that solves a small daily annoyance, put it in a proper enclosure, and it can quickly stop feeling like an electronics experiment and start feeling like a product that should have existed already.