The problem
Desk workers slouch for hours without noticing, and the reminder usually comes as neck pain at the end of the day — far too late to change the habit. Phone apps that use the camera cannot watch you all day, and commercial posture wearables are expensive black boxes. This project builds the wearable from first principles: an MPU6050 inertial sensor on a small ESP32 board, worn at the upper back or collar, measures pitch angle continuously against an upright baseline captured at calibration. Cross the slouch threshold for 30 seconds and a coin vibration motor buzzes — a private nudge nobody else hears. Every event is logged with duration and peak angle, and each evening the wearable syncs over Bluetooth Low Energy to a companion web dashboard: today's posture score, a timeline of slouch and forward-head episodes, time upright, and a 7-day trend chart against the 80-point target. The hardware corrects in the moment; the dashboard builds the habit.
How it works
- The wearer puts on the device and presses calibrate; the ESP32 captures 5 seconds of upright pitch as the zero baseline.
- The MPU6050 streams accel/gyro data; a complementary filter fuses them into a drift-free pitch angle at 10 Hz.
- Firmware compares live pitch against the 20° slouch and 35° forward-head thresholds with per-threshold persistence timers (30 s / 60 s).
- On a confirmed breach, the vibration motor buzzes and the event (start time, type, peak angle, duration) is written to flash.
- In the evening the dashboard's BLE sync pulls the day's events; the score engine computes 100 minus weighted slouch minutes.
- The dashboard renders the score cards, event table and 7-day trend; the wearable's flash ring buffer holds 14 days as backup.
Tech stack:
- ESP32 mini dev board · MPU6050 IMU (I2C)
- Coin vibration motor · 500 mAh LiPo
- Bluetooth Low Energy (GATT sync)
- Companion dashboard: HTML/CSS/JS + canvas charts
- Complementary filter sensor fusion
- Arduino IDE · C/C++ firmware
| Parameter | Value |
|---|---|
| Angle sensing | MPU6050, complementary filter, 10 Hz (design target) |
| Slouch threshold | 20° for 30 s · forward-head 35° for 60 s (configurable) |
| Feedback | Coin vibration motor, 3-pulse pattern |
| Sync | BLE GATT, evening batch transfer |
| Battery | 500 mAh LiPo, approx. 10–12 h wear (expected) |
| Event storage | 14-day ring buffer in flash |
| Dashboard | Single-file web app, offline-capable |
| Score | 100 − weighted slouch minutes (heuristic) |
Project features
- [Real-time pitch tracking] MPU6050 accelerometer + gyroscope fused with a complementary filter gives stable neck-pitch angle at 10 Hz, robust to walking motion.
- [Silent vibration nudge] Coin vibration motor buzzes in 3-pulse patterns when slouch passes 20° for 30 s, or forward-head passes 35° for 60 s — private, immediate feedback.
- [One-tap calibration] A button press captures the wearer's upright baseline, so the thresholds adapt to different bodies instead of assuming one posture.
- [BLE event sync] Slouch events (time, type, duration, peak angle) transfer to the dashboard over Bluetooth Low Energy each evening; no account or cloud needed.
- [Posture analytics dashboard] Daily score out of 100, slouch-event timeline with per-event detail, time-upright counter and a 7-day trend chart with target line.
- [Forward-head detection] Separate, stricter threshold for the head-jut pattern common in phone and laptop use, tracked as its own episode type.
- [All-day battery] ESP32 light-sleep between samples plus a 500 mAh LiPo gives approximately 10–12 hours of wear (expected) with USB charging.
What is included
- Working posture-monitor wearable prototype (ESP32, IMU, vibration motor, battery, strap/enclosure)
- Complete firmware source with sensor fusion, thresholds and BLE sync
- Companion analytics dashboard web app (score, timeline, 7-day trend)
- Wiring diagram, enclosure guidance and calibration procedure
- Project report PDF (background, IMU theory, filter design, BLE, testing)
- PPT presentation for final review
- Viva Q&A preparation document (accelerometer/gyro fusion, BLE, thresholds, power saving)
Limitations & prerequisites
- The posture score is a simple heuristic (100 minus weighted slouch minutes) for habit tracking — not a clinical assessment of spinal health, and stated as such.
- Angle accuracy depends on wearing position and calibration quality; the report documents the buyer-run validation procedure (protractor-checked angles) rather than claiming a measured accuracy.
- BLE sync needs the dashboard open nearby in the evening; there is no automatic cloud backup by design.
- Vigorous exercise confuses the pitch estimate — the device is designed for desk and standing work, not workouts.
- Not a medical device; persistent neck or back pain needs a clinician, not a wearable.
Frequently Asked Questions
How does it know I'm slouching?
The IMU measures the tilt of your upper back/neck. After you calibrate your upright position, any sustained pitch beyond 20° counts as slouch — the 30-second timer filters out momentary leaning.
Will it buzz all day and annoy me?
The buzz is a short 3-pulse pattern, and only after 30 sustained seconds of slouching. Most users report a handful of nudges per day, concentrated in the first week.
Does it need my phone?
No. The wearable works standalone all day; the dashboard runs in any browser and syncs over BLE in the evening — no app install, no account.
How is the posture score calculated?
100 minus slouch minutes weighted by severity (forward-head counts double). It is a habit-tracking heuristic, documented openly in the report.
Can two people share one device?
The calibration is per-wearer, so sharing means recalibrating each time — a 5-second button press, but the history would mix.
Is this project suitable for a final-year project?
Yes — for Electronics and IoT & Embedded programs. It combines IMU sensor fusion, haptic feedback, BLE communication and a real analytics dashboard in one wearable system. Suitable for B.E./B.Tech final-year projects in Electronics and IoT & Embedded.
Components & software requirements
- ESP32 mini dev board · MPU6050 IMU (I2C)
- Coin vibration motor · 500 mAh LiPo
- Bluetooth Low Energy (GATT sync)
- Companion dashboard: HTML/CSS/JS + canvas charts
- Complementary filter sensor fusion
- Arduino IDE · C/C++ firmware
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.