Sensor Pulse Oximeter
Bagaimana Cara kerjanya?
Oksigen
masuk ke paru-paru dan kemudian diteruskan ke dalam darah. Darah membawa
oksigen ke berbagai organ di tubuh kita. Cara utama oksigen dibawa dalam darah
kita adalah melalui hemoglobin. Selama pembacaan oksimetri nadi, perangkat
kecil seperti penjepit ditempatkan di jari tangan, daun telinga, atau kaki.
Berkas
cahaya kecil melewati darah di jari, mengukur jumlah oksigen. Ini dilakukan
dengan mengukur perubahan dalam penyerapan cahaya dalam darah beroksigen atau
terdeoksigenasi.
Sensor ini merupakan oksimetri nadi terintegrasi dan solusi sensor monitor detak jantung. Ini menggabungkan dua LED, detektor foto, optik yang dioptimalkan, dan pemrosesan sinyal analog dengan noise rendah untuk mendeteksi sinyal denyut nadi dan detak jantung. Ini beroperasi dari catu daya 1,8V dan 3,3V dan dapat dimatikan melalui perangkat lunak dengan arus stanby yang dapat diabaikan, memungkinkan catu daya untuk tetap terhubung setiap saat.
Block Diagram Sistem
Sensor Pulse Oximeter (SPO2) Arduino
Library Oled
#include
#include "MAX30100_PulseOximeter.h"
#define REPORTING_PERIOD_MS 1000
PulseOximeter pox;
uint32_t tsLastReport = 0;
#include "Wire.h"
#include "Adafruit_GFX.h"
#include "OakOLED.h"
/////// GLOBALS //////
OakOLED oled;
///////////////////////
void onBeatDetected()
{
Serial.println("B:1");
}
void setup()
{
Serial.begin(115200);
// Initialize the PulseOximeter instance and register a beat-detected callback
// The parameter passed to the begin() method changes the samples flow that
// the library spews to the serial.
// Options:
// * PULSEOXIMETER_DEBUGGINGMODE_PULSEDETECT : filtered samples and beat detection threshold
// * PULSEOXIMETER_DEBUGGINGMODE_RAW_VALUES : sampled values coming from the sensor, with no processing
// * PULSEOXIMETER_DEBUGGINGMODE_AC_VALUES : sampled values after the DC removal filter
// Initialize the PulseOximeter instance
// Failures are generally due to an improper I2C wiring, missing power supply
// or wrong target chip
if (!pox.begin(PULSEOXIMETER_DEBUGGINGMODE_PULSEDETECT)) {
Serial.println("ERROR: Failed to initialize pulse oximeter");
for(;;);
}
pox.setOnBeatDetectedCallback(onBeatDetected);
oled.begin();
oled.setTextSize(1);
oled.setTextColor(1);
oled.setCursor(0, 0);
oled.println("Pulse Oximeter");
oled.display();
}
void loop()
{
// Make sure to call update as fast as possible
pox.update();
// Asynchronously dump heart rate and oxidation levels to the serial
// For both, a value of 0 means "invalid"
if (millis() - tsLastReport > REPORTING_PERIOD_MS) {
Serial.print("H:");
Serial.println(pox.getHeartRate());
oled.setTextSize(1);
oled.setTextColor(1);
oled.setCursor(5, 4);
oled.println(pox.getHeartRate());
oled.display();
Serial.print("O:");
Serial.println(pox.getSpO2());
oled.setTextSize(1);
oled.setTextColor(1);
oled.setCursor(10, 4);
oled.println(pox.getSpO2());
oled.display();
tsLastReport = millis();
}
}
0 Comments