The problem
Desk workers and students spend hours leaning forward over laptops and phones, and the slouch becomes a habit because nothing flags it in the moment. This project builds a wearable that does exactly that flagging: an ESP32 development board paired with an MPU6050 6-axis IMU, mounted on an elastic strap worn over the upper back or shoulder. The firmware reads the accelerometer at a fixed sample rate, extracts the tilt angle from the gravity vector, and compares it against a user-set slouch threshold. If the forward tilt stays beyond the threshold for a sustained, configurable duration, a coin-type ERM vibration motor buzzes — a silent haptic nudge the wearer feels instantly. A push button calibrates the upright reference to the wearer's body, and the whole unit runs from a rechargeable LiPo with a TP4056 charging module, sleeping between samples to stretch battery life.
Calibrates the upright posture and wears the strap through the day.
Follow the working sequence
How it works
- The wearer puts on the elastic strap and presses the calibration button while sitting or standing upright; the ESP32 stores the current accelerometer tilt as the zero reference.
- In the main loop, the MPU6050 accelerometer is sampled at 10 Hz over I2C and a complementary-filtered tilt angle is computed from the gravity vector.
- The firmware compares the live tilt angle against the configured slouch threshold (default 25°, adjustable in firmware) minus the stored reference.
- When the angle exceeds the threshold, a sustain timer starts; the vibration motor stays silent until the slouch persists beyond the configured duration (default 10 s), filtering out brief movements like reaching for a pen.
- On a confirmed slouch event, a GPIO pin drives the coin ERM motor for a fixed buzz pattern; the timer resets once the wearer straightens back within the upright band.
- Between samples the ESP32 enters light sleep, waking on a timer interrupt; the TP4056 module handles LiPo charging independently over micro-USB.
Tech stack:
- ESP32 development board (dual-core, 240 MHz)
- MPU6050 6-axis IMU (accelerometer + gyroscope, I2C)
- Coin ERM vibration motor (3V)
- TP4056 LiPo charging module
- 3.7V 500mAh LiPo battery
- Tactile push button (calibration)
- Arduino IDE · C/C++ firmware
- Elastic wearable strap + wiring
| Parameter | Value |
|---|---|
| Microcontroller | ESP32 dual-core, 240 MHz (datasheet) |
| IMU | MPU6050 6-axis, I2C interface (datasheet) |
| Accelerometer range | ±2g selectable up to ±16g (datasheet) |
| Gyroscope range | ±250°/s selectable (datasheet) |
| Slouch angle threshold | 15–35°, default 25° (configurable, not a measured claim) |
| Sustain duration | 5–30 s, default 10 s (configurable) |
| Sample rate | 10 Hz (firmware default) |
| Feedback | 3V coin ERM vibration motor |
| Battery | 3.7V 500mAh LiPo (design target) |
| Runtime | Approximately 10–14 h typical use (design target) |
Project features
- [Forward-tilt slouch detection] The MPU6050 accelerometer (±2g range, datasheet) is sampled at 10 Hz and the tilt angle is computed from the gravity vector; sustained forward lean beyond the configured threshold registers as a slouch event.
- [Haptic vibration feedback] A 3V coin ERM vibration motor mounted on the strap buzzes when a slouch persists past the configured angle and duration — silent, screen-free correction in the moment.
- [One-press upright calibration] A push button stores the wearer's current upright posture as the angle reference, so the device adapts to different body shapes and wearing positions.
- [Adjustable sensitivity] The slouch angle threshold and the sustained-duration timer are configurable in firmware, so the device can be lenient for casual use or strict for focused posture training.
- [Low-power sleep operation] The ESP32 sleeps between sensor samples, keeping average current low so the wearable runs a full workday on one charge (runtime is a design target, stated honestly).
- [USB-rechargeable LiPo power] A 3.7V 500mAh LiPo cell with a TP4056 charging module recharges over micro-USB; no disposable batteries to replace.
- [Wearable strap mounting] All electronics are mounted on a black elastic strap worn over the shoulder/upper back, with the sensor fixed so it moves with the torso and not with loose clothing.
- [Customization options — not in base build] A BLE phone app with posture history graph, daily slouch statistics, and multiple vibration patterns can be added as paid customizations; they are not part of the base build.
What is included
- Assembled wearable prototype: ESP32 board, MPU6050 IMU, vibration motor, TP4056 module, LiPo battery, calibration button, mounted on elastic strap
- Complete ESP32 firmware source (Arduino IDE, commented, with calibration and sensitivity configuration)
- Circuit diagram and wiring connections document
- Calibration and wearing-position guide
- Project report PDF (background, IMU theory, methodology, system working, results)
- PPT presentation for final review
- Viva preparation document (IMU principles, tilt-angle math, I2C, power design, firmware logic)
Limitations & prerequisites
- A posture-awareness prototype, not a medical device: it makes no therapeutic or health-outcome claims and does not diagnose or treat any condition.
- Detects forward tilt only; it does not measure lateral lean, head-forward posture, or spinal curvature.
- Accuracy depends on the strap sitting firmly on the upper back — loose mounting or heavy outerwear degrades the angle reading.
- Battery runtime is a design target; actual runtime depends on vibration frequency and sleep configuration, and is measured during the build.
- Threshold and duration are configurable rather than clinically validated values; the defaults are sensible starting points, not prescriptions.
Frequently Asked Questions
How does it detect slouching?
The MPU6050 accelerometer constantly measures the direction of gravity. From that vector the firmware computes how far the upper back has tilted forward from the calibrated upright reference. If the tilt stays past the configured threshold for the configured duration, it counts as a slouch and the vibration motor buzzes.
Why does it wait before vibrating?
To avoid false alarms. A sustain timer means brief, normal movements — reaching for a pen, glancing down — do not trigger feedback. Only a slouch held longer than the configured duration (default 10 seconds) produces the buzz, which makes the feedback trustworthy in daily use.
Can the sensitivity be changed?
Yes. Both the slouch angle threshold (15–35°, default 25°) and the sustain duration (5–30 seconds, default 10 seconds) are configurable in the firmware, and the calibration button re-teaches the upright reference to any wearer or wearing position.
Does it connect to a phone app?
Not in the base build. A BLE phone app with a posture history graph and daily slouch statistics is available as a paid customization, along with multiple vibration patterns. The base project works fully standalone with no phone needed.
How long does the battery last?
The design target is approximately 10–14 hours of typical use on the 3.7V 500mAh LiPo, thanks to the ESP32 sleeping between 10 Hz samples. Actual runtime is measured during the build and documented honestly in the report; frequent buzzing shortens it.
Is this project suitable for a final-year project?
Yes — for Electronics, Electrical, Instrumentation and IoT programs. It covers IMU interfacing over I2C, tilt-angle computation from accelerometer data, haptic feedback design, wearable power budgeting with LiPo and TP4056 charging, and low-power firmware on the ESP32. Suitable for B.E./B.Tech final-year projects in Electronics, Electrical, Instrumentation and IoT. problem: Students and desk workers develop habitual forward slouching over laptops and phones, and there is no in-the-moment cue to correct it — posture apps need a phone in hand and posture braces only pull passively without any feedback loop. Existing wearable posture devices are expensive, closed-source, or phone-dependent, leaving students without an affordable, understandable, self-built option. A low-cost wearable that senses tilt with an IMU and nudges the wearer with vibration at the moment of slouching fills that gap, and doubles as a strong embedded-systems final-year project. concept: An ESP32 reads the MPU6050 6-axis IMU over I2C at 10 Hz and computes the forward-tilt angle from the accelerometer's gravity vector. A push-button calibration step stores the wearer's upright reference. When tilt exceeds a configurable angle threshold for a configurable sustained duration, a GPIO drives a coin ERM vibration motor as haptic feedback; straightening resets the timer. The ESP32 sleeps between samples for battery life, and a TP4056 module charges the 3.7V LiPo over micro-USB. All electronics ride on an elastic wearable strap so the sensor moves with the torso. features:
- Forward-tilt slouch detection from MPU6050 accelerometer (±2g, datasheet), sampled at 10 Hz with tilt computed from the gravity vector (implemented)
- Haptic vibration feedback via 3V coin ERM motor on sustained slouch events (implemented)
- One-press upright calibration button storing the wearer's reference angle (implemented)
- Adjustable sensitivity: slouch angle threshold 15–35° and sustain duration 5–30 s configurable in firmware (implemented)
- Low-power operation with ESP32 sleeping between samples (implemented)
- USB-rechargeable power: 3.7V 500mAh LiPo with TP4056 charging module (implemented)
- Wearable strap mounting with sensor fixed to move with the torso (implemented)
- Optional customizations (NOT base): BLE phone app with posture history graph, daily slouch statistics, multiple vibration patterns (customization) requirements:
- ESP32 development board (dual-core 240 MHz)
- MPU6050 6-axis IMU module (I2C)
- Coin ERM vibration motor, 3V
- TP4056 LiPo charging module (micro-USB)
- 3.7V 500mAh LiPo battery with protection
- Tactile push button for calibration
- Elastic wearable strap, jumper wires, mounting hardware
- Software: Arduino IDE, ESP32 board support, MPU6050/Adafruit libraries deliverables:
- Assembled wearable posture corrector prototype (ESP32 + MPU6050 + vibration motor + TP4056 + LiPo on elastic strap)
- Complete ESP32 firmware source with calibration and sensitivity configuration (commented)
- Circuit diagram and wiring connections document
- Calibration and wearing-position guide
- Project report PDF (background, IMU theory, methodology, working, results)
- PPT presentation for final review
- Viva preparation document limitations:
- Posture-awareness prototype, not a medical device; no therapeutic or health-outcome claims
- Detects forward tilt only — not lateral lean, head-forward posture, or spinal curvature
- Accuracy depends on firm strap mounting; loose clothing degrades readings
- Battery runtime is a design target, measured during the build, not a guaranteed figure
- Threshold/duration defaults are sensible starting points, not clinically validated values timeline:
- Component procurement and testing: 3–4 days
- Circuit assembly and strap mounting: 2–3 days
- Firmware development and calibration tuning: 4–5 days
- Testing, runtime measurement and documentation: 3–4 days
- Total build time: approximately 2–3 weeks from order confirmation support:
- Build explanation over call/WhatsApp: how the tilt-angle computation, calibration and firmware logic work
- Viva preparation: IMU principles, I2C interfacing, power design and likely examiner questions
- 30 days of post-delivery support for firmware or wiring issues
- Optional paid customizations: BLE phone app with posture history graph, daily slouch statistics, multiple vibration patterns
Components & software requirements
- ESP32 development board (dual-core, 240 MHz)
- MPU6050 6-axis IMU (accelerometer + gyroscope, I2C)
- Coin ERM vibration motor (3V)
- TP4056 LiPo charging module
- 3.7V 500mAh LiPo battery
- Tactile push button (calibration)
- Arduino IDE · C/C++ firmware
- Elastic wearable strap + wiring
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.
Download free synopsis (PDF)
Enter your name and email — the synopsis PDF downloads immediately. We may send occasional project updates; no spam, unsubscribe anytime.