0

Đo nồng độ Oxy trong máu với MAX30100

Do-nong-do-oxy-trong-mau-SPO2-MAX30100-Arduino
5 sao

Trong bài viết này chúng ta sẽ thực hiện giao tiếp giữa Arduino và MAX30100 để đọc các chỉ số Nồng độ oxy trong máuNhịp tim. Giá trị nồng độ oxy trong máu (độ bão hòa oxy trong máu) được đo bằng phần trăm và nhịp tim được đo bằng BPM.

MAX30100 là một mạch gồm cảm biến đo oxy trong máu và cảm biến theo dõi nhịp tim. Kết hợp hai đèn LED, một bộ thu quang học và bộ xử lý tín hiệu để tính toán các giá trị oxy trong máu và nhịp tim. Bạn có thể sử dụng cảm biến này với bất kỳ vi điều khiển nào như Arduino, ESP8266, hoặc ESP32 để dễ dàng đo các thông số sức khỏe của bệnh nhân.

Các bài viết về Arduino:

Chuẩn bị

Nguyên lý hoạt động của cảm biến đo nồng độ Oxy trong máu

Oxy đi vào phổi và sau đó được truyền vào máu. Máu mang oxy đến các cơ quan khác nhau trong cơ thể chúng ta. Cách chính oxy được vận chuyển trong máu của chúng ta là nhờ Hemoglobin. Để đo nồng độ oxy trong mạch máu sẽ cần một thiết bị giống cái kẹp nhỏ được đặt trên ngón tay, dái tai hoặc ngón chân.

Nguyen-ly-do-oxy-trong-mau

Chùm ánh sáng nhỏ đi qua máu ở ngón tay để đo lượng oxy. Bằng cách đo những thay đổi về sự hấp thụ ánh sáng trong máu đã được oxy hóa hoặc khử.

Nguyen-ly-do-oxy-trong-mau-2

MAX30100 đo nồng độ oxy trong máu

MAX30100

Cảm biến được tích hợp để đo được cả oxy trong máu và nhịp tim. Kết hợp hai đèn LED, một bộ thu quang học và bộ xử lý tín hiệu để tính toán các giá trị oxy trong máu và nhịp tim. Nó hoạt động từ nguồn điện 1,8V đến 3,3V và có thể được tắt nguồn thông qua phần mềm với dòng điện standby rất thấp.

Đặc điểm

1. Nguồn cấp 1.8V đến 3.3V.
2. Dòng điện tiêu thụ ở chế độ chờ thấp (0.7µA).
3. Đáp ứng ngõ ra nhanh.
4. Chuẩn giao tiếp I2C.

Hoạt động của MAX30100 

Thiết bị có hai đèn LED, một phát ra ánh sáng đỏ và một phát ra ánh sáng hồng ngoại. Ánh sáng hồng ngoại dùng để đo nhịp tim. Trong khi cả ánh sáng đỏ và ánh sáng hồng ngoại đều được sử dụng để đo nồng độ oxy trong máu.

Khi tim bơm máu, lượng oxy trong máu tăng lên do có nhiều máu hơn. Khi tim thư giãn, lượng oxy trong máu cũng giảm. Bằng cách biết thời gian giữa sự tăng và giảm của oxy trong máu, nhịp tim được xác định.

Thực tế, máu được oxy hóa sẽ hấp thụ nhiều ánh sáng hồng ngoại hơn và phản xạ nhiều ánh sáng đỏ hơn, ngược lại, máu đã khử oxy hấp thụ ánh sáng đỏ và phản xạ nhiều ánh sáng hồng ngoại hơn. Đây là chức năng chính của MAX30100, nó đọc mức độ hấp thụ cho cả hai nguồn sáng và lưu trữ chúng trong một bộ đệm có thể đọc được thông qua giao thức I2C.

Giao tiếp MAX30100 với Arduino đo nồng độ oxy trong máu.

Chúng ta sẽ kết nối Arduino với MAX30100 đọc các giá trị và hiển thị ra màn hình Serial Mornitor.

Mach-do-oxy-trong-mau-Arduino-2

Kết nối 2 chân nguồn của MAX30100 với chân nguồn 5V hoặc 3.3V của Arduino. Kết nối 2 chân giao tiếp I2C (SDA, SCL) với chân A4A5 của Arduino.

Source Code

Trước tiên chúng ta cần tải thư viện cho MAX30100: download


#include <Wire.h>
#include "MAX30100_PulseOximeter.h"
 
#define REPORTING_PERIOD_MS     1000
 
PulseOximeter pox;
uint32_t tsLastReport = 0;
 
void onBeatDetected()
{
    Serial.println("Beat!");
}
 
void setup()
{
    Serial.begin(115200);
    Serial.print("Initializing pulse oximeter..");
 
    // Initialize the PulseOximeter instance
    // Failures are generally due to an improper I2C wiring, missing power supply
    // or wrong target chip
    if (!pox.begin()) {
        Serial.println("FAILED");
        for(;;);
    } else {
        Serial.println("SUCCESS");
    }
     pox.setIRLedCurrent(MAX30100_LED_CURR_7_6MA);
 
    // Register a callback for the beat detection
    pox.setOnBeatDetectedCallback(onBeatDetected);
}
 
void loop()
{
    // Make sure to call update as fast as possible
    pox.update();
    if (millis() - tsLastReport > REPORTING_PERIOD_MS) {
        Serial.print("Heart rate:");
        Serial.print(pox.getHeartRate());
        Serial.print("bpm / SpO2:");
        Serial.print(pox.getSpO2());
        Serial.println("%");
 
        tsLastReport = millis();
    }
}

Upload code vào Arduino và xem kết quả.

Mach-do-oxy-trong-mau-Arduino

Bài viết đã hướng đẫn bạn tự thiết kế một mạch điện đơn giản với chức năng đo nồng độ oxy trong máu và nhịp tim để theo tại nhà. Đặc biệt trong thời điểm dịch Covid như hiện nay, các thiết bị theo dõi chỉ số SPO2 (nồng độ oxy trong máu) đang được khuyến cáo sử dụng cho các bệnh nhân điều trị Covid tại nhà, để xử lý kịp thời biến chứng bênh xảy ra nặng hơn.

Bạn có thể tham khảo các thiết bị đo SPO2 trên thị trường:

Chúc các bạn thành công!

thanhbinh89

Trả lời

Email của bạn sẽ không được hiển thị công khai.