Arduino-based Pulse Oximeter setup

发布人是

If you need to understand your blood oxygen levels, taking readings is easy and non-invasive thanks to the pulse oximeter. These devices were difficult to find a few months ago, which brought new attention to how pulse oximeters work (and if there is a DIY option). As it turns out, you can make your own pulse oximeter display using an Arduino board and the appropriate sensor setup.

Experiment: DIY Pulse Oximeter with Arduino

For a quick demonstration, we’ll be using this Pulse Oximeter and Heart Rate sensor board to interface with an Arduino Uno. It features a MAX30101 pulse oximeter and heart rate monitor module, as well as a MAX32664 biometric sensor hub that can supply raw or calculated data to another device via I2C. The Uno receives this data and passes values along to a computer via serial.

Hardware-wise, hookup is simply a matter of connecting the I2C pins appropriately (SCL > A5, SDA > A4), along with 3.3V power and ground, and two “extra” pins (RST > D4, MFIO > D5). Open up the Arduino IDE, and search for and install SparkFun Bio Sensor Hub Library under Tools > Manage Libraries… Send this demo code found here to your Arduino, and open up a serial monitor at 115200 baud.


Pulse Oximeter Setup Image 2
Pulse Oximeter Setup Image 3

Resting heart rate (left), held breath (right)

How to Read a Pulse Oximeter

If all is connected correctly, you’ll see a scrolling display listing oxygen, heart rate, and a number indicating its confidence in the reading as a percentage. Note that oxygen levels are in units of percent peripheral oxygen saturation (or %SpO2), used to indicate how well your blood is delivering this vital gas to your body. Heart rate is measured in beats per minute. In some very limited testing against a pulse oximeter of unknown origin, stats seemed to be in the same ballpark.

Interestingly, I was able to affect the %SpO2 reading somewhat by holding my breath, though as oxygen levels decreased to around 95%, the confidence in it dipped into the 40s. My heart was reading at 44 BPM at this point, however, and normal resting heart rates are supposed to be between 60 and 100 BPM. Perhaps something was amiss, though this number is consistent for me based on both devices. Such low readings can indicate very good cardiovascular health, but, paradoxically, it can also indicate a problem. While I’m not too worried, I’m not planning to forgo my next checkup either.

Pulse Oximeter Uses and a Big Caveat

On the subject of checkups, the big caveat with this device is that it’s not intended to diagnose or treat medical conditions, so you should take what it says with a grain of salt. On the other hand, many pulse oximeters sold online will come with similar “not approved” warnings. At least with the DIY device, you know what actual sensor is driving its results.

With this data, you could theoretically hook up a device that could perform a certain action, such as blink a light if readings were out of a specified range. Or it could encourage you to get some exercise if you’ve been sitting at your desk for too long. It would even be possible to upload such readings to the cloud with an ESP8266 module in order to explore your not-quite-medical curiosity.

For other pulse oximeter options, Arrow also lists the MikroElectronika MIKROE-2510 and MICROE-2036 boards, along with the Seeed MAXREFDES117.


最新消息

Sorry, your filter selection returned no results.

请仔细阅读我们近期更改的隐私政策。当按下确认键时,您已了解并同意艾睿电子的隐私政策和用户协议。

本网站需使用cookies以改善用户您的体验并进一步改进我们的网站。此处阅读了解关于网站cookies的使用以及如何禁用cookies。网页cookies和追踪功能或許用于市场分析。当您按下同意按钮,您已经了解并同意在您的设备上接受cookies,并给予网站追踪权限。更多关于如何取消网站cookies及追踪的信息,请点击下方“阅读更多”。尽管同意启用cookies追踪与否取决用户意愿,取消网页cookies及追踪可能导致网站运作或显示异常,亦或导致相关推荐广告减少。

我们尊重您的隐私。请在此阅读我们的隐私政策。