Labview based Pulse Analyzer
This is a data acquisition system which is capable of reading a pulse rate of a person. The pulse rate is read using a pulse sensor through an arduino uno and then the analysis is done by using LabView.
In this project a pulse sensor manufactured by the pulsesensor.org was used.
The pulse sensor which consists of three pins, two for the ground and 5V and the third for the signal reading was easily interfaced with the arduino. Then using the library which is available on https://pulsesensor.com/pages/getting-advanced
the data values that the sensor reads was transmitted using serial communication. In this step, using the serial monitor and serial plotter which is available on arduino IDE it was verified that the sensor is working fine.
The user has the ability to control the settings such as sampling rate, baud rate, parity, data bits etc. And also the user can save the data in a file in .csv format. The user has also the ability to save these user settings into a text file and load whenever he or she wants to reuse the same settings.
You can access the full VI here. https://github.com/aswinda29/LabView-based-pulse-rate-analyzer
Pulse sensor
The sensor functions by examining hemoglobin, which is the oxygen-carrying pigment of red blood cells that gives them their red color and serves to convey oxygen to the tissues. Hemoglobin is found in two forms. The first is oxidized (oxy-) hemoglobin, which is denoted as HbO2 (also called “oxygen-loaded”). The second is reduced-oxygen (deoxy-) hemoglobin, which is denoted as Hb (“oxygen-depleted”). Blood oxygen saturation (SpO2) is the ratio of oxy-hemoglobin to deoxy-hemoglobin. This can also be expressed as: SpO2=HbO2/(Hb + HbO2). An interesting thing about hemoglobin is how it reflects and absorbs light. For example, Hb absorbs more (and reflects less) visible red light. HbO2 absorbs more (and reflects less) infrared light. Since blood oxygen saturation can be determined by comparing the values of Hb and HbO2, one method for doing this is shining both a red LED and an infrared LED through a body part (such as a finger or wrist), and then comparing their relative intensities. There are two common methods of doing this.- measuring the light transmitted through tissue is called transmissive oximetry
- measuring the light reflected by tissue is called reflectance oximetry
Typical pulse oximeters monitor the SpO2 of a person’s blood based on the red light (using a 600-750 nm wavelength) and infrared light (using a 850-1000 nm wavelength) absorption characteristics of HbO2 and Hb. This type of pulse oximeter flashes the red and infrared lights alternately through a body part, such as a finger, to a photodiode sensor.The photodiode is normally utilized to receive the non-absorbed light from each LED. This signal is then inverted using an inverting operational amplifier, or op amp. The resulting signal represents the light that has been absorbed by the finger.
A look-up table is an important part of a pulse oximeter. Look-up tables are specific to a particular oximeter design and are usually based on calibration curves derived from, among other things, a high number of measurements from subjects with various SpO2 levels.In this project a pulse sensor manufactured by the pulsesensor.org was used.
Interfacing pulse sensor with Arduino Uno
The pulse sensor which consists of three pins, two for the ground and 5V and the third for the signal reading was easily interfaced with the arduino. Then using the library which is available on https://pulsesensor.com/pages/getting-advanced
the data values that the sensor reads was transmitted using serial communication. In this step, using the serial monitor and serial plotter which is available on arduino IDE it was verified that the sensor is working fine.
VISA
In this step the task was to acquire the data which is being transmitted using serial communication by arduino. To do this, the VISA pluggin on LabView was used. VISA was downloaded from the National Instrument website and then it was installed. Then a using an example program which was available in LabView it was successfully tested. It was possible to get the data which was sent by the arduino on a LabView VI.LabView Program
Once the data was acquired by the labview program the next step was the necessary analysis. Since the data was in String format it had to be converted to number. It was possible to plot the data on a graph. The signal was clearly visible with its peaks against a time axis. Then using a Peak Detector VI the peaks of the incoming signals were detected. This Peak detector VI has the ability to put the locations of the peaks on the time axis in an array. After this by using the distance on time axis between two successive peaks the BPM(Beats Per Minute) was calculated. And the program was set to give an alert using a Beep VI if the BPM value goes above 100 or below 60. (which is the standard BPM of a healthy person).The user has the ability to control the settings such as sampling rate, baud rate, parity, data bits etc. And also the user can save the data in a file in .csv format. The user has also the ability to save these user settings into a text file and load whenever he or she wants to reuse the same settings.
![]() |
| The VI |
You can access the full VI here. https://github.com/aswinda29/LabView-based-pulse-rate-analyzer




No comments:
Post a Comment