The IoT heart rate monitor was undertaken as a final project for a web development course. The objective of this project was to create a low cost IoT enabled web application for heart rate monitoring and blood oxygen saturation level measurement. The application utilized the MAX30102 module, as well as the Argon Wi-Fi development board, which periodically prompted users to take measurements. The collected data from the sensor was transmitted to a database, allowing users or physicians to monitor their heart rate and blood oxygen saturation levels on the web application.
By enabling users to configure the time of day and frequency of measurements, the project aimed to provide a customizable monitoring solution. The responsive design of the web application ensured seamless accessibility across desktop, tablet, and mobile devices. This project highlighted the potential of integrating IoT technology and web applications to facilitate remote health monitoring. These applications include personal health management, medical research, and healthcare assistance.
The IoT heart rate project was developed through the collaborative efforts of a team comprising three electrical and computer engineers. Their collective efforts encompassed hardware integration, software development, and user interface design. By leveraging their diverse backgrounds and working collaboratively, the team was able to overcome challenges and deliver a robust and user-friendly heart rate monitoring solution.
The IoT heart rate project consists of three key components: the frontend, backend, and embedded systems, all seamlessly integrated to form a comprehensive web application. This innovative solution enables both patients and physicians to track and monitor heart rate and blood oxygen saturation levels in real-time. The frontend component provides an intuitive user interface, allowing users to interact with the system, view their data, and make informed decisions. The backend system ensures secure data storage, authentication, and facilitates communication between the frontend and the embedded component. The embedded system incorporates sensor technology and intelligent programming to capture accurate heart rate and blood oxygen readings, syncing the data with the web application.
Home Page: The home page serves as the gateway to the IoT heart rate monitoring system. Upon accessing the website, users are greeted with an interface that features two dropdown menus: Login and Sign-up. These dropdowns provide options for both users and physicians to log in or sign up. To ensure password security, a regular expression is implemented, enforcing strong password criteria such as a minimum length of 10 characters, at least one uppercase letter, one lowercase letter, and one digit. Upon successful account creation, the entered password is securely hashed using the bcrypt algorithm, while the username is tokenized using JWT (JSON Web Tokens). This tokenization process adds an extra layer of security by validating requests that interact with the database.
Patient Page: Upon successful login, users have access to the profile, dashboard, select physician, and log out options. The profile section allows users to view and edit their profile information, including the registration of a device ID for their IoT device. The dashboard provides users with visualizations of their heart rate and spo2 measurements, offering both daily and weekly views. Users can navigate between previous days, and set measurement start/stop time intervals. The select physician section allows for users to view registered physicians so that they can make a selection. When a physician is selected, this will provide them with access to recorded patient data.
Physician Page: Similar to the patient page, the physician page includes options for profile, patients, and log out. Physicians can access patient data, and set measurement parameters to monitor patient health.
Home Page: In the backend, the home page handles patient and physician sign-ups, securely storing hashed passwords and tokenized usernames.
Patient Page: The backend validates the patient's token on page load and redirects to the front page if invalid. GET requests retrieve user profile data and display it on the profile page. Patients can edit and save their profile information, register device IDs, and set measurement parameters, triggering appropriate POST requests to update the server and IoT device.
Physician Page: Similar to the patient page, the backend validates the physician's token, retrieves and displays profile data, and allows access to patient information.
Implementation: The embedded programming utilizes an open-source library for the MAX30102 sensor to obtain heart rate and spo2 readings. A webhook is set up in the particle console to communicate with the server. The Argon Wi-Fi Development Board allows patients or physicians to define start time, end time, and interval for measurements. It prompts users to take readings within specified hours and sends valid measurements to the server. In cases where the device is offline, data is stored in its built-in memory and later synced with the server.
The link below can be used to view the code on Github.
View Code