Featured image: Photo by Tim Witzdam on Pexels
How a $15 Setup Beats $80 Presence Sensors with Radar and ESP32
Traditional presence sensors struggle to distinguish between a stationary person and an empty room. PIR motion detectors and Wi-Fi-based systems rely on movement, failing when someone is seated or asleep. Commercial solutions like the Aqara FP2 cost $80 per room, but a DIY project using an ESP32-C6 microcontroller and an mmWave radar module achieves similar results for about $15. This approach detects breathing through subtle chest movements, offering a more reliable alternative to conventional sensors.
The ESP32-C6 board, priced at $5, connects via UART to the LD2410C mmWave radar module, available for under $10. The radar’s 24GHz signal can detect motion up to 6 meters, sufficient for most rooms. However, signal penetration through walls limits its range, requiring a separate unit per room. Integration with Home Assistant via ESPHome creates a “Presence” entity, which can trigger lights based on movement or stillness.
Bluetooth proxies enhance the system’s capabilities. An ESP32 can act as a Bluetooth proxy, identifying devices in a room through BLE advertisements. Combined with radar data, this setup answers both “who is present” and “whether the room is occupied.” Adam Conway’s earlier Zigbee-based project and Bermuda integration in Home Assistant demonstrate how Bluetooth can complement radar for more accurate tracking.
Tuning the mmWave sensor is critical. False positives from ceiling fans, moving curtains, or thin walls require adjusting sensitivity thresholds. ESPHome’s LD2410 component includes a 5-second default timeout for presence detection, which users may need to extend for rooms with prolonged stillness. Setup involves wiring the module to the ESP32 and configuring parameters over days to eliminate errors.
The hard truth
While the $15 per-room solution saves money, it demands time for calibration and access to power outlets in every room. Commercial sensors like the Aqara FP2 offer plug-and-play convenience at a higher cost. This DIY approach suits technically inclined users willing to invest effort, but those prioritizing ease of use may prefer pre-built alternatives.
FAQ
Why can’t PIR sensors detect someone sitting still?
PIR sensors react to heat movement across their field of view, losing detection when a person is stationary. They cannot identify breathing or prolonged stillness, making them unreliable for presence sensing.
How does mmWave radar detect breathing?
The mmWave radar emits signals that reflect off objects. Subtle chest movements from breathing cause minute shifts in these reflections, which the sensor interprets as motion. This works even when a person is asleep or motionless.
Can the ESP32 handle both radar and Bluetooth?
Yes. The ESP32-C6 can run the mmWave radar module and act as a Bluetooth proxy simultaneously, eliminating the need for separate hardware. This dual functionality enhances identification accuracy in smart home systems.
Source attribution
Source: XDA

