r/diyelectronics • u/Apina2001 • 2h ago
Project Made a creepy doll that uses wifi CSI to detect people. ESP32-S3 + servo.
Built this for a Halloween challenge on element14.
The idea was that the doll moves its head when nobody is in the room, and freezes when someone comes back. I used an M5Stack AtomS3R and an SG90 servo. The CSI part runs on the ESP32 and uses changes in wifi signals to detect movement.
No PIR sensor or camera for the detection. It sends pings to the router and reads CSI from the replies.
Had to do some tuning. Walking is easy to detect, someone sitting still is a different story. It also detects movement in the hallway behind a closed door, depending on placement.
I made a Python version of the detector too, so I can replay recorded data and see what happens with the subcarriers and thresholds. There is a scope for that in the repo.
Project write-up, video and build details:
https://community.element14.com/challenges-projects/halloween/a/projects/PR186/nobody-home-the-cursed-doll-that-only-moves-when-you-leave-the-room
Code:
https://github.com/apn201/nobody_home
Video:
https://www.youtube.com/watch?v=jTFQheh9W2k
Has anyone else tried CSI for presence detection? Curious how well it works for people sitting still.
