---
title: "Wi-Fi reflections can reveal breathing without a camera"
locale: "en"
url: "https://irz.fr/en/articles/wifisense-pi-presence-en"
markdown_url: "https://irz.fr/en/articles/wifisense-pi-presence-en.md"
category: "tech"
tags: ["Wi-Fi", "ESP32", "Raspberry Pi", "sensors", "open source"]
published_at: "2026-08-16T05:50:00.000Z"
author: "Camille Morel"
translation: "https://irz.fr/fr/articles/wifisense-pi-presence-fr.md"
---

# Wi-Fi reflections can reveal breathing without a camera

An ESP32-S3 and Raspberry Pi read changes in the Wi-Fi channel to distinguish motion, presence and breathing, while documenting what the system cannot infer.

WifiSense-Pi starts from an ordinary detail: a Wi-Fi signal does not travel straight to the receiver. It bounces off walls, furniture and bodies. **When something moves, that mixture of paths changes.** The Masked Bear’s open-source project uses those variations as a presence sensor.[1](https://github.com/The-Masked-Bear/wifisense-pi)

An ESP32-S3 samples channel state information, or CSI, at 100 Hz. A Raspberry Pi 4 then filters the signal, separating a motion band from a slower band used to estimate breathing.[1](https://github.com/The-Masked-Bear/wifisense-pi) The system therefore needs neither a camera nor a worn device.

The repository is most useful where it refuses to overclaim. With one radio path, WifiSense-Pi cannot locate a person, reliably count several occupants, identify anyone or infer sleep stages. A motionless person who also holds their breath eventually removes the phenomenon the system is looking for.[1](https://github.com/The-Masked-Bear/wifisense-pi)

Hackaday captures the tradeoff neatly: the device can work through some walls because it observes an existing radio channel, but that does not turn it into a radar that draws a skeleton behind plasterboard.[2](https://hackaday.com/2026/08/15/scanning-for-lifesigns-with-esp32-and-raspberry-pi-now-open-source/)

The transferable trick is elsewhere. The project deliberately generates regular UDP traffic so CSI samples arrive at a stable rate. **The sensor is therefore not just the hardware. It also includes the traffic the system creates to make the phenomenon measurable.**[1](https://github.com/The-Masked-Bear/wifisense-pi)

## References

1. [The Masked Bear, WifiSense-Pi GitHub repository](https://github.com/The-Masked-Bear/wifisense-pi)
2. [Hackaday, Scanning for Lifesigns with ESP32 and Raspberry Pi](https://hackaday.com/2026/08/15/scanning-for-lifesigns-with-esp32-and-raspberry-pi-now-open-source/)
