Pulse Track

A wearable device monitoring biometric indicators, including body temperature, heart rate, step counts, and blood oxygen in real-time.

GitHub Repository →

Tech Stack: C++, ESP32, Flask, Gevent, Next.js, Python, React, TypeScript, WebSocket.

Implemented with: Kaiqi Hu, Suzen Bao, Brain Liu.

Overall pipeline

The system consists of an ESP32-based microcontroller that collects data from multiple sensors and transmits it to a web application for visualization. The data is stored in an SQLite database via a Flask server with WebSocket support, allowing real-time updates to the front-end.

Hardware Description

  • ESP32-WROOM - Main microcontroller with WiFi and BLE capabilities.
  • MAX30100 / MAX30102 - Heart rate and (blood oxygen) sensor (PPG-based).
  • MPU6050 - Accelerometer and gyroscope for step counting and motion analysis.
  • 3.7V Li-ion Battery (800mAh) - Power source for the ESP32.
  • AMS1117-3.3V - Voltage regulator to step down from 3.7V to 3.3V.
  • Adjustable Velcro Strap - To secure the wearable system on the wrist.
  • OLED Display (SSD1306, 0.96") - Optional local data visualization.

Assembling

The system is assembled to the human body using cinch cable ties. The central ESP32 and battery are soldered onto a PCB board and connected with other sensors using jump wires, ensuring each component is optimally positioned for monitoring.

Pulse Track experimental setup

The wearable device is secured to the wrist and waist using cinch cable ties.

Backend

After the ESP32 collects data from the sensors, it transmits the data to a Flask server by sending the http post requests. After receiving the data, the server traverses the clients and sends this data in real-time to the front-end page.

Frontend: Monitor Page

The front-end page is built using React and Next.js. Since the back end is sending data through WebSockets, it can directly retrieve real-time data. Finally, the monitor page displays all of the data. The page is designed to be responsive and can be accessed from any device with a web browser.

Pulse Track experimental setupPulse Track experimental setup

The webpage displays real-time data from the wearable device.

Frontend: Exercise Mode

The webpage also provides an exercise mode. Users can enter exercise mode by clicking the button on the monitor page. Once activated, the webpage will individually monitor the data during that period. Users will decide the start and end times of the exercise mode, and the webpage will also provide an AI report after the exercise mode is deactivated.

Pulse Track experimental setup

Exercise Mode

Frontend: AI Page

Finally, the webpage will provide an AI page. It uses the data collected from the wearable device during exercise mode to prompt a Gemini AI model to generate a personalized health report and offer exercise advice.

Pulse Track experimental setup

The AI page generates a personalized health report based on the data collected. Tricky zero here!

What's Next

We plan to enhance Pulse Track with:

This hackathon has been an incredible journey, and we’re excited to continue pushing the boundaries of health tech!