This project is associated with DPM lab at UMich, particularly the research on Wearable Biosensors-based Measurement of Workers’ Physical and Mental Status. The research focuses on using wearable devices to help assess physical status of constructions workers. This repo builds the iOS app that communicates with a E4 wristband to retrieve heart rate data, and connects with a backend server for managing user data.
This app has the following features.
-
Login/logout
- Note that the user data are stored on disk after the app is inactive, which means user data can be retrieved after the app is killed.
- After the user enters first and last names, the other data will be filled out automatically if the user is in the database.
- Group ID specifies the group which the user wants to retrieve co-worker information. Other data are intended for fatigue level calculation.
-
Connects to/disconnects from E4 wristband, and retrieves inter-beat interval (IBI) and battery level.
-
Calculates heart rate using IBI, and finally get the current fatigue level based on the algorithm in the following publication.
Lee, G., Lee, S., Brogmus, G. (2023). Feasibility of Wearable Heart Rate Sensing-Based Whole-Body Physical Fatigue Monitoring for Construction Workers. In: , et al. Proceedings of the Canadian Society of Civil Engineering Annual Conference 2021. CSCE 2021. Lecture Notes in Civil Engineering, vol 251. Springer, Singapore. https://doi.org/10.1007/978-981-19-1029-6_23
-
Connects with server to periodically update fatigue levels of co-workers, presented in a history graph.
-
Sends periodic notifications to users to remind them of checking out co-workers' fatigue levels.
-
Studies with strong movement (more than 30% of the time): for these, you will probably not be able to get enough reliable IBI to compute heart rate variability continuously. However, you can still compute the average heart rate like consumer devices have done for over a decade. For example, you can use the motion information that our sensor gives, and when it is large, discard the IBI's with huge motion. Then take the average of the remaining IBI and check that they are in a reasonable range that has not changed too abruptly from the last estimate.
-
(eq 1.) GREEN, RED -->[ Algorithm 1] --> PPG --> [Algorithm 2] --> IBI
-
Interfacing with UIKit — SwiftUI Tutorials - Apple Developer
-
Working with UI Controls — SwiftUI Tutorials - Apple Developer