TEAM 6: Healthnet
Spring 2008
Trac
Source (tarball)
MEMBERS
John Bauman | Kyunghwan Choi | Eugene Marinelli | Adam Goldhammer |
PROJECT CONCEPT
- Give consumers access to their personal physiological data.
- Wireless network of sensors on the body to process and record EKG, temperature, and location data.
MOTIVATION
- Current consumer fitness products only report heart rate and blood pressure data.
- Devices in the medical industry capable of more detailed reporting are not very portable and often expensive.
- Our product will allow consumers to record detailed physiological information at their convenience.
COMPETITIVE ANALYSIS
-
Power Glove Basic Strapless Heart Rate Monitor
- Requires no chest strap
- Simple 2 button Operation
- Cheap ($80)
- But this is a very basic unit which displays the heart rate only
-
Garmin ForeRunner 301 speed & distance watch with heart rate
- Manufactured from the biggest GPS company
- Provides precise latitude, longitude, and altitude data
- Amount of calories burned
- Performance data can be archived
- The user can create, analyze and store workout data on PC
- Heart rate monitor
- Costly ($200)
-
TIMEX BodyLink Trail Runner
- A famous watch company with the unit
- Provides Latitude, Longitude, Altitude and elevation data with ascent and descent rates
- Ability to add 10 waypoints
- Realtime, average and max speed
- Continuous odometer
- Current pace, average and best pace
- Expensive ($300)
TECHNICAL SPECIFICATIONS
-
Sensor modules
- Physical sensor - Telos tmote (with EKG pad, pulse oximeter).
- Send data wirelessly to sensor server.
-
Sensor server
- Wearable Gumstix ARM board wired to one sensor, and equipped with Bluetooth transmitter.
- GPS connected to grab location data
- Screen for displaying current data to user
- Embedded software manages data from the sensors and interfaces with a personal computer.
-
User interface
- Desktop application for uploading data from the sensor server via Bluetooth.
- Web interface for viewing and sharing data.
REQUIREMENTS
- Wireless sensor network of EKG pads, pulse oximeters, and other types of sensors.
- Wirelessly transmit data to a personal computer for analysis and visualization.
- Display heart rate and energy expenditure data.
- Make hardware system convenient and portable.
ARCHITECTURE
USE CASES (INTERACTION DIAGRAMS)
Use cases (PDF)
RISKS & MITIGATION STRATEGIES
Risks |
Mitigation Strategies |
Problems with sensors and nodes |
Alternative node hardware: mica2dots |
Inability to support data rates between devices |
Compression and less frequent trasmission |
Bluetooth |
USB |
Data integrity |
Error detection. Variety of sensors |
IMPLEMENTATION DETAILS
-
Sensor modules
-
Hardware
- 2 Telos tmote sky units
- Node 1 - Pulse oximeter and accelerometer used for pedometry.
- Node 2 - EKG.
-
Software
- TinyOS 2.0 + nesC
- Simple software - read data, multiplex it, send wirelessly
- Have to keep time synchronization with server and other nodes, so synchronize time at startup and occasionally afterwards
-
Sensor server
-
Software
- The aggregator daemon polls for sensor values and stores them to a sqlite database.
- gpsd is the daemon which communicates with the GPS device and serves the user's current
location. The aggregator requests the location from gpsd using a TCP socket.
- noded handles communication with the sensor nodes.
-
Hardware
-
PC
- The uploader script requests data entries from the Sensor Server and stores each entry in
a local sqlite database.
- The user interface is implemented in PHP and uses jpgraph to generate charts and maps.
-
Common
- The database schema
- Bodystats contains the data from the body sensors
- Time
- Exercise ID
- GPS Location Data
- Heart Rate
- Pulse Ox
- Temperature
- Users
contains the user data
so the data can be personalized
- User Name
- Password
- Height
- Weight
- Exercise Route contains the usual exercise route data
- Exercise ID
- User Name
- GPS Location
TEST CASES
-
Sensor Nodes
- Startup - This will actually happen often, and we can just turn on the power fault-free.
- Transmitting data - occurs, makes sensor - this is the cornerstone of the project, just transmit data fault-free.
- Concurrent Nodes - it will be necessary for us to have more than one node, we can just run multiple nodes transmitting data, fault-free
- Time Synchronization - do times match up afterwords - we need to make sure that times match up so that we can correlate data - we can test this by injecting events to two or more nodes, and making sure that the times match
-
Sensor Server
- Startup - obviously necessary, just turn on the power.
- Pairing with computer - without this, no data works - just attempt to pair from a computer and make sure it works.
- GPS data - this is a nice device function - move to places, find latitude and longitude from GPS, and compare with real location - fault-free.
- Connection with sensor nodes - otherwise data will never be collected - run normal system fault-free.
- Connection with upload program - otherwise data will never be collected - run the uploader script fault free.
- Stress test communiations - bandwidth, reliability - want to make sure it always works at uploading - test sending and receiving fault-injected stuff (interference from other motes)
- Test aggregating data - we want all data to be transmitted well - collect two or more types of data and upload all of them fault-free.
- Test communication between modules
- Simultaneous access to database
- Shutdown
- Unexpected shutdown
- Memory fills up
- GPS sending rate
- Test GPS inside, outside
-
Computer
- Stress test uploader program - there will be lots of radio noise, problems - add lots of bluetooth and wifi devices and make sure the program still works.
- Pairing over bluetooth
- Receiving illegal values - Our code will be buggy, so we don't want to crash the computer - send illegal values, and make sure the computer will handle them (fault-injected).
- Charts are accurate, correspond to data - user confused if charts all wrong, defeats device purpose - put known data in database, compare against chaarts (fault-free)
- Correct set of data is saved - user angry if device deletes data - send known data, and make sure it is all saved on computer (fault-free).
EXPERIMENTAL EVALUATION
- Transmission rate (Sensor server - Computer)
- Time transmission of datasets of known sizes. Divide time by data set size.
- Data must upload in a timely manner.
- Units: s
- Amount of data that can be stored on sensor server
- Run sensor server until memory is full, record data set size.
- Document maximum time sensor server can run between uploading to a computer.
- Units: MB or hr
- Battery life (nodes and sensor server)
- Run unit till power failure.
- Average battery life must be documented for users.
- Units: hr
FUN STUFF
Sensor server and sensor node prototypes
Hardware at final demo
REFERENCES
- Project Proposal and Requirements, Team Project Presentation, February 1, 2008
- Design & Architecture, Team Project Presentation, February 15, 2008
- Mid-semester Project Status, Team Project Presentation
- Test Plan & Experimental Validation Team Project Presentation, March 28, 2008
- Final Project Presentation, Team Project Presentation
- Project Poster, May 2, 2008
Back to the top of this page
18-549 course home page