Embedded Development

Health Tracking Wearable

A teal background with views of the touch screen controls. It shows the main screen leads to the choice of three different screens: Track Exercise, Log Medication, Log Symptom. The track exercise screen also progresses to a detail screen showing the current count of exercise reps.

About the Project

Basics

Description

A wearable designed to help the user track their health data, including workout tracking counting sets and reps.

It is designed to be used in conjunction with the iOS Health Tracking Application.

Receives data from the health tracking iOS application, the user interacting with the touch screen and sensors.

Technology Used

  • Rust
  • ESP32-s3
  • 1.28" LCD Touch Screen
  • QMI 8658 with 3 Axis Accelerometer and 3 Axis Gyroscope
  • MySQL

Interesting Features

Counts Exercise Reps

The diagram showing the basic concept of the repetition counting. Every time the device is moved up and back down it increments by one.
Figure 1: A diagram showing the count increasing each time the gyroscope and accelerometer data shows the devices has moved up and down for a single rep.

MySQL Database Storage

An image showing the basic MySQL database structure for the exercises and their corresponding logs. The two database tables include multiple datapoints and are connected using a foreign key.
Figure 2: An image showing the basic MySQL database structure for the exercises and their corresponding logs.

Touch Screen Controls

A teal background with views of the touch screen controls. It shows the main screen leads to the choice of three different screens: Track Exercise, Log Medication, Log Symptom. The track exercise screen also progresses to a detail screen showing the current count of exercise reps.
Figure 3: A diagram showing the screens the user can travel through using the buttons via the touch led screen.

User Interface Design

Application Flow

Main Screen

  • The application is designed around three sections: "Track Exercise", "Log Medication" and "Log Symptom".
  • The main screen includes buttons to allow the user to choose which section they wish to use.
  • Upon pressing one of the buttons, the user shall be directed to the main screen for that section.
A photograph of the LED touch screen showing the home screen layout built using Rust and LVGL. It has three buttons: 'Track Exercise', 'Log Medecine' and 'Log Symptom'.
Figure 4: A photograph of the LED touch screen showing the home screen layout built using Rust and LVGL.

Track Exercise Screen

The exercise screen photographes with the round back device. It has a header which reads 'Track Exercise' and then lists 'Crunches', 'Bicep Curl', and 'Jump Rope'. Each is next to a button which reads 'Track'.
Figure 5: A photograph of the LED touch screen showing the track exercise screen layout built using Rust and LVGL.
  • The Track Exercise Screen lists the different exercises the user is currently tracking.
  • The user can tap on one of the "Track" buttons to begin to track the exercise listed next to it
  • There is a back button to allow the user to return to the main screen

Exercise Count Screen

The exercise count screen photographed with the round back device. It has a header which reads 'Track Exercise' and then lists 'Crunches', 'Bicep Curl', and 'Jump Rope'. Each is next to a button which reads 'Track'.
Figure 6: A photograph of the LED touch screen showing the exercise count screen layout built using Rust and LVGL.
  • The Exercise Count Screen displays how many sets and repetitions the user has completed for the selected exercise
  • This count is calculated using the information from the accelerometer and gyroscope
  • There is a back button to allow the user to return to the main screen

Log Medicine Screen

The medication screen photographed with the round back device. It has a header which reads 'Log Medicine' and then lists 'Motrin', 'Qulipta', and 'Vitamins'. Each is next to a button which reads 'Log'.
Figure 7: A photograph of the LED touch screen showing the log medicine screen layout built using Rust and LVGL.
  • The Log Medicine Screen lists the different medications the user is currently tracking.
  • The user can tap on one of the "Log" buttons to log that they have just taken that medication
  • There is a back button to allow the user to return to the main screen

Log Symptom Screen

The symptoms screen photographed with the round back device. It has a header which reads 'Log Symptom' and then lists 'Headache', 'Exhaustion', and 'Dizziness'. Each is next to a a value label and + / - buttons to allow the user to change the severity
Figure 8: A photograph of the LED touch screen showing the log symptom screen layout built using Rust and LVGL.
  • The Log Symptom Screen lists the different symptoms the user is currently tracking.
  • The user can tap on the '+' and '-' buttons in order to input their current severity for that symptom.
  • There is a back button to allow the user to return to the main screen