In a world that is integrating technology into daily life at an accelerating rate, performing numerous tasks has never been easier. While technology has provided humans with enhanced convenience and efficiency, there are some physical side effects that can impair the well being of individuals. Humans have not evolved to sit in front of computer screens or bend over a phone, and at this juncture, generally suffering from poor posture due to their technological habits. Our team proposes to address this issue by creating a shirt that monitors a user’s posture, and vibrates when a user’s posture is poor. This shirt will be integrated with flex sensors that output variable voltages which are dependent on the curvature of a user’s back. An Arduino device will be able to analyze this voltage feed to determine if the user is maintaining posture, and can remind the user by flashing a light if he or she is exhibiting bad posture. In addition, the shirt will have a temperature sensor that will let a user know when they have been inside for too long and will remind them to move around every hour.


Technology has consumed our world. There are two billion cell phone users on the planet. And each person adds an extra 1400 lbs of stress to their neck each year from staring at a device. As a result, people are unknowingly damaging their health every second. The world needed a way to address this enormous problem with a simple solution: A shirt that reminds you when your posture is bad.

What it does

Posture helper is a shirt that you would wear like any other undershirt, however, this shirt has sensors embedded within it that can detect proper versus poor posture. The flex sensors are located in the back of the shirt and will alert the user via an LED light to let them know when they are slouching. There is also a temperature sensor to monitor a user's daily activity and will remind users to get active if they have been inside for too long.

How we built it

We used a tight fitting shirt to attach the flex sensors onto and used a compression shirt to make sure the sensors are aligned with the user's back. The flex sensors are sandwiched between two tape strips. Through experimentation, we analyzed data to determine the range of appropriate values that determine the state of someone’s posture. The flex sensors are connected to an Arduino which also has an LED and uses a power pack to power the circuit and also graphs your progress using ThingSpeak. In addition to the flex sensors, there is also a temperature sensor on the shirt to help you realize when you have been indoors for too long. This is the code that our product runs:

#include <\Wire.h\> //remove \\
#include <\UnoWiFiDevEd.h\> //remove \\
#define CONNECTOR     "rest"
#define SERVER_ADDR   ""
#define APIKEY_THINGSPEAK "CDGGLZZX6WGPXJ39" // Insert your Write API Key

const int TEMP_PIN = A0;
const int FLEX_PIN1 = A1;
const int FLEX_PIN2 = A2;
const int VIB = 13;
int temp = 0;
float angle = 0; 

const float VCC = 4.98; //measured voltage of arduino 5v line
const float R_DIV = 3300;//measured resistance of 3.3k resistor 

const float BEND_RESISTANCE = 30000.0;// RESISTANCE AT 90 DEGREE

void setup() {
   Ciao.begin(); // Initialize Ciao
   pinMode(VIB, OUTPUT);

void loop() {
int temp = analogRead(TEMP_PIN);
float voltage = temp * 5.0;
voltage /= 1024.0; 
float temperatureC = (voltage - 0.5) * 100 ;
  //Read ADC - calculate V & R from ADC values
  int flexADC1 = analogRead(FLEX_PIN1);
  float flexV1 = flexADC1 * (VCC / 1023.0); 
  float flexR1 = R_DIV * (VCC / flexV1 - 1.0);

  int flexADC2 = analogRead(FLEX_PIN2);
  float flexV2 = flexADC2 * (VCC / 1023.0); 
  float flexR2 = R_DIV * (VCC / flexV2 - 1.0);
  //Use R values to estimate sensor bend angle
  float angle1 = map(flexR1, STRAIGHT_RESISTANCE, BEND_RESISTANCE, 0, 90.0);
  float angle2 = map(flexR2, STRAIGHT_RESISTANCE, BEND_RESISTANCE, 0, 90.0);
String uri = "/update?api_key=";
    uri += "&field1=";
    uri += String(angle1);
    uri += "&field2=";
    uri += String(angle2);
    uri += "&field3=";
    uri += String(temperatureC);
    Ciao.println("Send data on ThingSpeak Channel");
    CiaoData data = Ciao.write(CONNECTOR, SERVER_ADDR, uri);
      if (!data.isEmpty()){
        Ciao.println( "State: " + String (data.get(1)) );
        Ciao.println( "Response: " + String (data.get(2)) );
      else { 
        Ciao.println("Write Error");
      //If this angle is reached, send LED alert
  if (angle1 <= -1.0 || angle2 > 10.0) {
    digitalWrite(VIB, HIGH);
  } else {
    digitalWrite(VIB, LOW);

Challenges we ran into

While building the backbone of the underlying technology was relatively simple, our team encountered tremendous difficulty integrating the underlying technology into a shirt. The flex sensors consistently shifted from their original configuration as the user went about activities, ultimately leading to a drift in the initial calibrated values. We originally intended to attach the sensors on the outside of the shirt, however, we found it almost impossible to ensure that the flex sensors stayed in place as we lacked the appropriate adhesive material to attach the sensors to cotton. To solve this issue we taped the sensors to an undershirt and used a compression shirt on top of the sensors to keep the technology in place.

Accomplishments that we're proud of

We are proud that we were able to create a functional wearable technology device that addresses a significant real-world problem that affects an overwhelming majority of the population. Technology has, on the whole, ruined good posture. The team is proud that we can develop technology that counteracts the repercussions of other technology on our posture.

What we learned

This project was a tremendous learning experience in the realm of planning for the unexpected road bumps in the design process. We initially believed that building the technology was going to be the most difficult part, yet we never considered that integrating the technology into the T-shirt would be the greatest undertaking. Reflecting on our process, we know in future projects that we should be more detailed oriented when strategically planning, such as tech integration with fabric, so that we can be more prepared for the hurdles when encountered.

What's next for Posture Helper

Posture helper is here to stay. The next appropriate step to get Posture Helper to market is to delve into the details of scaling our current Arduino technology so that it can fit within a small unnoticeable part of the shirt. With current advances in battery and sensor technology, we believe that it is possible to have Posture Helpers that feel as seamless as an undershirt, with enough processing power to get to the moon.

Built With

Share this project: