// the find
neha1505/Accidental_Fall_Detection
An ESP32-based IoT wearable band that monitors real-time physical activities and detects accidental falls using an embedded Random Forest machine learning model, alerting caregivers via Twilio SMS with live GPS location tracking.
A student capstone project (MITS) that puts a Random Forest fall classifier on an ESP32: an MPU6050 feeds a physics-trigger + 24-feature window into a transpiled sklearn model, and a positive triggers a Twilio SMS with GPS coordinates. Useful as a worked example of getting a real trained model onto microcontroller hardware, not as a device you'd actually strap on someone.
The ML pipeline is complete and legitimate — it trains on the actual SisFall public dataset, extracts a sane 24-dim feature vector (mean/std/max/min over 6 axes), and has a working script that transpiles sklearn's decision trees into nested C if-else code rather than hand-rolling the logic. The free-fall-then-impact threshold gate before running the classifier is a reasonable design choice — it avoids running RF inference every 10ms loop and only fires it when there's already a plausible event. It also runs HTTPS to the Twilio API rather than plaintext, and exposes a live status dashboard over the ESP32's own web server.
WiFi and Twilio credentials are hardcoded directly into the .ino file with no secrets separation, and the HTTPS client calls setInsecure(), which skips certificate validation entirely — so the 'secure communication' claim in the README doesn't hold up. There's no reported accuracy, false-positive rate, or held-out-subject validation for the RF model anywhere in the repo, just the training script; for a device meant to alert caregivers, that's the one number that actually matters and it's missing. No handling for GPS failing to get a fix, WiFi dropping, or the Twilio request failing — a safety device with a single point of failure and no offline/cellular fallback is a real gap. The repo also ships the entire raw SisFall dataset as thousands of individual .txt files instead of a fetch script or .gitignore entry, which is just repo bloat with no functional benefit.