The problem
Long hours at a desk turn into chronic neck and back pain, and most people have no idea how often they slouch because nobody watches them do it. Phone apps that claim to fix posture rely on the camera staring at the user, which nobody tolerates all day. This project takes the wearable route: a matchbox-sized device clipped to the collar or upper back that measures torso tilt with an MPU6050 inertial sensor and buzzes — via a small vibration motor — when the wearer holds a slouched angle too long. The trick that makes it credible is calibration: a button press captures the wearer's own upright posture as the zero reference, so alerts are relative to the person, not to a factory assumption. Logged posture events sync to a WiFi dashboard where the wearer can review slouch patterns across the day. The report is explicit about the sensing limits — tilt from accelerometer data drifts and degrades with movement — which is exactly the honesty examiners reward.
How it works
- The wearer clips the device to the collar or upper back and sits upright, then long-presses the button to store the zero-tilt reference.
- The ESP32-C3 samples the MPU6050 at a fixed rate (design target ~50 Hz) and fuses accelerometer and gyroscope data with a complementary filter into a pitch angle.
- The firmware compares the pitch against the configured lean threshold (default design target ~20 degrees beyond upright).
- If the angle stays beyond threshold for the configured hold time (default design target ~10 s), the vibration motor pulses and the event is timestamped into the log.
- Returning upright for the recovery window resets the state; the alert does not nag continuously.
- Connecting to the ESP32's WiFi dashboard shows live tilt, the threshold, and the day's slouch-event timeline.
- Thresholds and hold time can be edited on the dashboard and take effect immediately for live demonstration.
Tech stack:
- ESP32-C3 (WiFi + BLE microcontroller)
- MPU6050 6-axis IMU (accelerometer + gyroscope)
- Coin vibration motor
- 3.7 V LiPo battery + charging module
- Arduino IDE · ESP32 core
- Complementary filter for tilt estimation
- HTML dashboard hosted on the ESP32
- Elastic strap + clip mount
| Parameter | Value |
|---|---|
| Controller | ESP32-C3 (datasheet: RISC-V, WiFi 4, BLE 5) |
| IMU | MPU6050, ±2 g / ±250 dps ranges (datasheet) |
| Sampling | Approximately 50 Hz (design target) |
| Lean threshold | Configurable, default approximately 20° (design target) |
| Hold time | Configurable, default approximately 10 s (design target) |
| Alert | Coin vibration motor (datasheet) |
| Battery | 3.7 V LiPo, USB rechargeable (design target: full work session) |
| Dashboard | Local WiFi page, live tilt + event log |
| Mount | Elastic strap, collar/upper-back clip |
Project features
- [MPU6050 tilt sensing] A 3-axis accelerometer/gyroscope measures torso pitch; a complementary filter blends both for a stable tilt estimate.
- [One-button calibration] Captures the wearer's upright posture as the zero reference, so the device adapts to different bodies and wearing positions.
- [Vibration alert] A coin vibration motor gives a discreet buzz when the lean angle exceeds the threshold for the configured hold time.
- [Configurable thresholds] Lean angle and hold time are set over the dashboard or serial console — demonstrated live by changing values and re-testing.
- [Posture event logging] Slouch events with timestamps are stored in flash and served on the WiFi dashboard as a session timeline.
- [BLE/WiFi data sync] Live tilt readings stream to the on-device dashboard; no cloud account is needed.
- [Battery powered] A 3.7 V LiPo pack with USB charging powers the wearable untethered during a full work session (design target).
- [Elastic strap mount] A clip-on strap keeps the sensor on the upper back or collar in a repeatable position.
What is included
- Wearable prototype: ESP32-C3 + MPU6050 perfboard assembly, vibration motor, LiPo pack, strap and clip
- ESP32 firmware source code with filter, calibration and dashboard
- Calibration and wearing-position guide
- Wiring diagram and connection table
- Project report PDF (background, IMU theory, filter design, methodology, results, limitations)
- PPT presentation for final review
- Viva Q&A preparation document (accelerometer vs gyroscope, complementary filter, drift, calibration)
Limitations & prerequisites
- Tilt-only estimate: the device senses torso angle, not true spinal posture — it cannot distinguish slouching from leaning to pick something up, and the report says so plainly.
- Gyroscope drift and accelerometer noise mean the estimate degrades during walking or vigorous movement; it is designed for seated desk use.
- Consistent placement matters: moving the device between collar and mid-back changes the reference, so recalibration is required after repositioning.
- It is a wellness demonstrator, not a medical device — no claim is made about diagnosing or treating musculoskeletal conditions.
- Battery life is a design target for a work session; actual runtime depends on alert frequency and WiFi usage.
Frequently Asked Questions
How does it know I'm slouching?
The MPU6050 measures torso pitch relative to the upright reference you calibrate with a button press. Lean past the configured angle and hold it past the configured time, and the vibration motor buzzes. It estimates tilt from acceleration and rotation — the report explains the complementary filter behind it.
Why calibrate? Can't it just know what upright is?
Bodies and wearing positions differ, so a factory zero would misfire for half the users. One-button calibration stores your upright posture as the reference, which also makes a great live demo: calibrate, slouch, feel the buzz.
Is it accurate enough to trust?
For a desk-session wellness nudge, yes — tilt within a few degrees under seated conditions. The listing is explicit that it is not medical-grade: it cannot see the spine, and walking degrades the estimate.
Does it need a phone app or cloud account?
No. Live tilt and the event log are served by a WiFi dashboard hosted on the ESP32-C3 itself. No app install, no cloud, no account.
How long does the battery last?
The design target is a full work session on one charge via USB, but the honest figure depends on how often WiFi and the motor run — the report documents the measurement procedure rather than printing a fixed number.
Is this project suitable for a final-year project?
Yes — for Electronics and IoT programs. It covers inertial sensing, sensor fusion with a complementary filter, calibration methodology, haptic feedback and embedded web serving in one wearable build. Suitable for B.E./B.Tech final-year projects in Electronics and IoT.
Components & software requirements
- ESP32-C3 (WiFi + BLE microcontroller)
- MPU6050 6-axis IMU (accelerometer + gyroscope)
- Coin vibration motor
- 3.7 V LiPo battery + charging module
- Arduino IDE · ESP32 core
- Complementary filter for tilt estimation
- HTML dashboard hosted on the ESP32
- Elastic strap + clip mount
Delivery information
Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.
Support terms
Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.