DIY Pulse Oximeter

by shubhamsuresh in Circuits > Arduino

39112 Views, 198 Favorites, 0 Comments

DIY Pulse Oximeter

How to Make a Simple Pulse Oximeter at Home #Covid19

Hello all, I Hope you all are safe. I'm here with another project which you can build with very few components. In this writeup, I'm going to tell you, how you can make a Pulse Oximeter by using Arduino and some very basic electronic components, in this pandemic situation of Covid19 most of us probably familiar with oximeter which we use to measure oxygen saturation in blood and the pulse rate. So let's see..

Basic Principle

blood-oxygen-meters_featured.jpg
Screenshot 2017-08-07 21.20.23.png

How An Oximeter works?

Basically Oximeter calculates the percentage oxygen saturation in the blood on basis of amount of different light absorb in it. Oximeter has One photodiode and two LEDs one is Red LED & another one is InfraRed LED, both LEDs are switched one by one on a certain frequency. To take measurements fingertip is placed in between of photodiode and LEDs as shown in the picture. Oxygenated blood absorbs more Infrared Light and passthrough the more red light and Deoxygenated blood absorb more red light and passthrough the more InfraRed Light. Processor calculates the ratio of red light received at photodiode and Infrared light at the different time interval. for more details on Pulse Oximetry Basic Principles and Interpretation visit this or see this pdf on Pulse Oximeter Fundamentals and Design from NXP

Let's Make Our Own Oximeter

DSC064562.jpg
D4SC06470.jpg
DSC0e6462.jpg
DSC06e457.jpg
DSeC06460.jpg
DSC06h461.jpg
DSC06t469.jpg

Components Used:

Arduino Pro Mini X1 ______________________________ INDIA / Amazon.com

OLED Display X1 ______________________________ INDIA / Amazon.com

Transistor BC547 X2 ______________________________ INDIA / Amazon.com

Photo Diode X1 ______________________________ INDIA / Amazon.com

IR LED X1 ______________________________ INDIA / Amazon.com

Red LED X1 ______________________________ INDIA / Amazon.com

Resistors

10K x1 , 4.7K x2

9V Battery X1 ______________________________ INDIA / Amazon.com

Battery Cap X1 ______________________________ INDIA / Amazon.com

LM7805 X1 ________________________________ INDIA / Amazon.com

Clutcher X1

Just collect all the above Components.

let's see the Circuit Diagram.

Circuit Diagram

blood-oxygen-meddters_featu444red.jpg
DSC06447.JPG
assembly.png

The oximeters can also build By using Max30100 Sensor which is specially design for measuring pulse and oxygen saturation in blood. It's not that critical to make an pulse oximeter using it, since It combines two LEDs, a photodetector, optimized optics, low-noise analog signal processing to detect pulse oximetry and heart-rate signals. and I2C interface. But I thought to make one oximeter with it's basic components used in Max30100 sensor i.e. 2 LEDs and Photodetector. I took a general purpose Photo Diode and grind it using grinder to make it flat and thin so that it can receives max light from the source, originally it is in round shape and dark color, these two factors block the more visible light and this is not good for our project, since we are using red visible light as well as the invisible infra red light. Similarly I grinded a red LED and a Infrared LED from one side, and combined them using super glue. Took a hair clutcher and put Photo Diode at one side of it and combined LEDs at another side of it as shown in the picture. After this I connected all the components as shown in the circuit diagram. I didn't used PCB here since there are very few components, so I solder them just around the Arduino board and fix them using hot glue. to power this oximeter I using the 9Volt battery.

After Assembly My Oximeter Is Looking Like This.

IMG_20210708_143430.jpg
IMG_20210708_143437.jpg
IMG_20210708_143450.jpg
IMG_20210708_143518.jpg

Programming

blood-oxygen-meproddters_feagvtu444red.jpg

Arduino pro mini dose not comes with any type of USB connector for programming, that's why its hard for beginner to program it. But don't worry here I describing an easy way for uploading the program to Arduino pro mini. Take an arduino uno and remove its main IC i.e. AtMEGA328P. and then wire up it with arduino pro mini as shown in the above picture.

Arduino UNO Arduino Pro Mini

Vcc -------------------------------- Vcc

GND ------------------------------ GND

Rx --------------------------------- Rx

Tx ---------------------------------- Tx

Rst --------------------------------- Rst

After wiring connect Arduino Uno with computer using USB cable. Download the following Arduino code and Open it with Arduino ide. Now goto tool menu and select board Arduino Pro mini, Again goto tool menu and select COM port. And Now click on upload Button. after uploading the program all done and its ready to play.

Downloads

Output

DSC06479.JPG
DSC06482.JPG
DSC06490.JPG
DSC06496.JPG
DSC06499.JPG

I compare my oximeter with professional one and its showing almost 99% accuracy. to achieve this accuracy I did some calibration settings in code, check this following line in code and make changes in it as per your readings. and upload the program again with new calibrated formula.

        //
        // SATURTION IS A FUNCTION OF R (calibration)
        // Y = k*x + m  // change the value of m  increase or decrease it  as per your reading 
        // k and m are calculated with another oximeter
               SpO2 = -19 * R + 99; // <br>

Also check the working video of it on my instagram click here.

Watch Full video on this topic here on my YouTube channel ShubhamSuresh , stay tuned with it, and pleas

Subscribe, if you not did it yet.

Also the PCB Gerber file will be update soon here.

Also Thank You NextPCB:

This project is successfully completed because of the help and support from NextPCB. Guys if you have a PCB project, please visit their website and get exciting discounts and coupons.

Here are mid-summer sales at NextPCB :
1. Up to 30% off for the PCB orders

2. Up to 20% off for the PCBA orders

Only 0$ for 5-10pcs PCB Prototypes:https://www.nextpcb.com/?code=Shubhandd

Register and get $100 from NextPCB: https://www.nextpcb.com/?code=Shubhandd

more info about PCB Assembly Capabilities: https://www.nextpcb.com/?code=Shubhandd

Thank you!
SUBSCRIBE My YOUTUBE Channel

Follow Me on Facebook || Instagram