Blood Oxygen Heart Rate Meter
This instructables show how to use MAX30102, XIAO and a tiny display to build a blood oxygen and heart rate meter.
Sensor & Algorithm
This project use Maxim Integrated MAX30102 Biosensor to detect pulse oximeter and heart rate. However, the official sample is not so accurate, so will use the MolecularD algorithm instead.
Ref.:
Hardware Preparation
MCU
The pulse oximeter calculation algorithm requires some memory. Arduino classic family does not have enough memory for data buffer. And also I want all components can fit in a 400 hole breadboard, so I need a smaller one. I have a Seeeduino XIAO in hand.
Display
Any Arduino_GFX supported display should be ok, I have a 1.14" 135x240 color display in hand.
Sensor
Maxim Integrated MAX30102 Biosensor.
Breadboard Connection
Here are connection summary:
XIAO -> Display -> MAX30102 VCC -> VCC, BLK -> VCC GND -> GND, CS -> GND GPIO 0 -> INT GPIO 2 -> RST GPIO 3 -> DC GPIO 4 -> SDA GPIO 5 -> SCL GPIO 8 -> SCL GPIO 10 -> SDA
Program
- Follow Seeeduino XIAO software install guide if not yet: https://wiki.seeedstudio.com/Seeeduino-XIAO/#softw...
- Download source code: https://github.com/moononournation/BloodOxygenHea...
- Open BloodOxygenHeartRateMeter.ino in Arduino IDE
- Press upload
How to Use?
- Plug USB power
- Wait "Put on finger" message show
- Put your finger on the MAX30102 sensor, "Measuring..." message show
- Hold and wait few seconds, blood oxygen and heart rate figures show
Cross Check Figures
I have cross check the readings with Apple Watch Series 6, MolecularD algorithm can give very precise figures that comparable with Apple Watch.