User:BlackforAesthetics/ENES100/Project3

Copy this form to your user page.

Delete the italics (delete the two quote marks) when filling out this form.

Problem Statement
''In one or two sentences, describe the project that your group will be working on. Identify what CDIO phase (Conceive, Design, Implement, or Operate) your group will complete in this project cycle.''

Project Plan
Briefly describe your group's plan for the next 4 weeks, including major tasks that will be completed each week.

Week 2 Narrative
For this week, we needed to decide on what vital sign we wanted to focus on to begin with. We decided that it would be best to start with heart rate because it is probably the most essential vital sign for the user. Out of all the possible ways to measure this, such as a wrist monitor, chest strap, multi-sensor EKG, we decided that we wanted to use a chest strap monitor. With a chest strap monitor, it would be possible to attach the strap around the abdomen.

There are so many different monitors to choose from, so it was important that we do some market research to see which would be the best to suit our task. In order to decide on a monitor, a decision matrix (pictured below) was created to provide a clear way of ranking the different products. The criteria for the matrix are Price, Looks, Water Resistance, Usability, and Size. It was important to keep the price in mind because not only would it mean cheaper production of the BioVest, but also cheaper for the use to buy/maintain. It was also important that the device is waterproof to a certain degree, because it is almost inevitable that it will come in contact with sweat from the user's body. In order for the BioVest to be used by the vast majority, it's components need to be universal. It wouldn't be ideal for it to only be compatible with a special watch that needs to be bought separately.

Ultimately, it was decided that we use the Trekmate HR-001.


 * Dimensions: 28.35" x 1.97" x 0.51"
 * Weight: 3.07oz
 * Price: $27.96

Week 3 Narrative
For this week, we decided to find a way to measure a vital sign other than heart rate. We did this due to the fact that the materials needed to measure heart rate would need to be ordered and in the interest of time, we wanted to work on a vital sign that can be implemented using the tools that are readily available. Because we can make the device our selves, we began working on a way to measure temperature. Although we do not have a "temperature sensor," it is possible to use Arduino to indirectly measure a temperature. By connecting a thermistor to the bread board, we can measure the difference in voltage between another resistor and convert the output into a temperature. During testing, we found out that after being heated or cooled, the thermistor will reset to it's standard temperature very quickly. This is something that we need to adjust in the code in order to get longer, consistent readings. The next thing for us to do is to consolidate this circuit into a smaller device and attach it onto a shirt. We also need to decide on how we are going to display the data, because it wold be inconvenient to have the Arduino connected to a computer by USB.

Arduino Code

''int firstSensor = 10;   // first analog sensor

void setup { // start serial port at 9600 bps: Serial.begin(9600); }

void loop {   // read the analog input float a5 = analogRead(10); Serial.print("analogread = "); Serial.print(a5); Serial.print("\n");

// calculate voltage float voltage = a5 / 1024 * 5.0; Serial.print("voltage = "); Serial.print(voltage); Serial.print("\n");

// calculate resistance float resistance = (10000 * voltage) / (5.0 - voltage); Serial.print("resistance = "); Serial.print(resistance); Serial.print("\n");

// calcuate temperature. Use these values for A, B, and C till you // get everything working, and then do some measurements to calibrate // your thermistor in circuit. float logcubed = log(resistance); logcubed = logcubed * logcubed * logcubed; float kelvin = 1.0 / (-7.22e-4 + 6.1e-4 * log(resistance) - 1.69e-6 * (logcubed));

// Convert to Fahrenheit float f = (kelvin - 273.15) * 9.0/5.0 + 32.0; Serial.print("temp = "); Serial.print(f); Serial.print("\n");

// delay 1s to let the ADC recover: delay(1000); }''

Week 4 Narrative
For this week, we needed to ensure that we were getting the correct readings from the thermistor circuit we made last week. Although we were getting consistent numbers, it was not the same temperature displayed on room thermostat. First, we changed the resistor in the circuit. We changed it from a 100 Ohm resistor to a 10k because our thermistor has 10k Ohms of resistance. This allows for better voltage output because the ratio of the resistors is now 1:1. Also, when we held the thermistor, the output was nowhere close to a normal body temp. of 98 degrees Fahrenheit. In order to calibrate the thermistor, we needed to get reliable temperature readings and then edit the Arduino code so that it would output the correct number. To do this, we used a thermocuple along with a Vernier LabQuest Interface. Not only was this useful for finding the room temperature, but it was also very sensitive to body temperatures. After adjusting the A, B, and C values in the Steinhart equation inside the code, we were able to output temperatures identical to those from the thermocuple.