Make Your Own ESP32-Based Person Sensor, No Special Hardware Needed

Home automation with high usefulness and low annoyance tends to rely on reliable person sensing, and [francescopace]’s ESPectre shows one way to do that cheaply and easily by leveraging hardware that’s already present on a common dev board.

ESPectre is an ESP32-based open source motion detector that detects movement without any cameras or microphones. It works similarly to millimeter-wave (mmWave) radar motion detectors in the sense that when a person moves, wireless signals are altered slightly as a result. ESPectre can detect this disturbance by watching and analyzing the Wi-Fi channel state information (CSI) and doing some very smart math and filtering. It’s cheap, easy to deploy and use, and even integrates with Home Assistant.

Combining a sensor like this with something else like a passive infrared (PIR) motion sensor is one way to get really robust results. But keep in mind that PIR only senses what it can see, whereas ESPectre works on WiFi, which can penetrate walls.

Since ESPectre supports low-cost ESP32 variants and is so simple to get up and running, it might be worth your time to give it a trial run. There’s even a browser-based ghost-dodging game [francescopace] put online that uses an ESPectre board plugged in over USB, which seems like a fun way to get a feel for what it can do.

10 thoughts on “Make Your Own ESP32-Based Person Sensor, No Special Hardware Needed

    1. I’m struggling to understand why these types of comments still exist on HAD.
      The point, [Chris], is because they can. Because it is something interesting to explore. Because they don’t have or want to spend the additional fiver. Just… because.

  1. So it actually also requires a router to broadcast, and that router must be within a specific distance range to work — it’s not a standalone sensor. THAT would be a nice hack.

    I didn’t look into the code, but what distinguishes this from a simple received signal strength measurement, RSSI? Just a bit of signal classification?

  2. I appreciate that this has a “play with it yourself” aspect to it but from my perspective, it’s a repeat, and i can’t tell if it really added anything new. If it does add anything new, i’m sorry i didn’t click through to find out.

    It seems to me like in the past these kind of things have had a very specific experimenal design: they make a measurement with the signal present (a person or motion or heartbeat within range) and then they make a measurement with the signal absent, and then they try to discern the difference between these two measurements.

    That’s the same technique used for a lot of the spookier quantum mechanics demonstrations, and the thing is, it sucks. Once you know that there is a difference, and what that difference is, the fact that you can measure something you already knew isn’t subjectively impressive and it isn’t objectively meaningful. That’s why the spookier parts of quantum mechanics remain unproven, because no one has been able to invent an experiment that can measure the difference without deciding it before measuring it.

    The physical world we know and love is constantly showing up as noise in electronic signals. I think it’s really neat that it’s vaguely possible to treat that noise as a signal and discern the physical world from it. But so far as i can tell, outside of very narrow and controlled situations, no one has been able to demonstrate that regular wifi chipsets can really help you with that goal.

Leave a Reply to PaulCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.