Bilgi Paylaştıkça Değerlidir

Blog
Destek olmak için lütfen sitemi paylaşın.
Teknolojiye dair projeler, yapay zeka gelişmeleri, ESP32 ve Deneyap kartlarla uygulamalar… Hepsi blog.efealibozkurt.com.tr’de seni bekliyor. İlham verici içeriklerle geleceği birlikte şekillendirelim.

Yazıyı Nasıl Buldunuz ?

Puan vermek için yıldıza tıklayın.

Ortalama Puan 0 / 5. Oy sayımı: 0

Henüz oy yok bu yazıyı ilk siz değerlendirin.

Bu gönderinin sizin için yararlı olmamasından dolayı üzgünüm.

Bu gönderiyi geliştirelim.

Bu gönderiyi nasıl geliştirebileceğimi bana bildirin.

Şimdi yükleniyor
×

Deneyap Kart ile Nabzınızı Ölçün

Merhaba teknoloji ve proje meraklıları! Bugün sizlerle hem heyecan verici hem de oldukça faydalı bir proje yapacağız: Deneyap Kart ve MAX30100 sensörünü kullanarak kendi nabız ölçerimizi tasarlayacağız. Bu proje sayesinde biyometrik verilerin nasıl toplandığını öğrenecek ve kendi sağlık takip cihazınızın temelini atmış olacaksınız.

Hazırsanız, başlayalım!

MAX30100 Sensörü Nedir ve Nasıl Çalışır?

MAX30100, aslında bir nabız oksimetresi ve kalp atış hızı monitörü sensörüdür. Yani sadece nabzınızı (BPM Dakikadaki Atım Sayısı) değil, aynı zamanda kanınızdaki oksijen doygunluğunu da (SpO2) ölçebilir.

Peki bunu nasıl yapar? Sensör, üzerinde bulunan iki adet LED (biri kırmızı, diğeri kızılötesi) ve bir fotodetektör (ışık algılayıcı) sayesinde çalışır. Parmağınızı sensörün üzerine koyduğunuzda, LED'ler parmağınızın içinden geçen ışık yayar. Kalbiniz her attığında damarlarınızdaki kan miktarı anlık olarak değişir. Bu değişim, fotodetektöre geri yansıyan ışık miktarını etkiler. Sensör, bu minik ışık değişimlerini analiz ederek kalp atış hızınızı ve kandaki oksijenlenmiş hemoglobin miktarını hesaplar. Bu tekniğe fotopletismografi (PPG) denir.

Gerekli Malzemeler

Bu proje için ihtiyacınız olan malzemeler oldukça basit ve kolay temin edilebilir:

  • Deneyap Kart: Projemizin beyni.
  • MAX30100 Nabız ve Oksimetre Sensörü: Kalp atışlarımızı algılayacak olan sensör.
  • 4 adet Dişi-Erkek Jumper Kablo: Bağlantıları yapmak için.
  • Breadboard (İsteğe Bağlı): Bağlantıları daha düzenli yapmak isterseniz kullanabilirsiniz.

Devre Şeması ve Bağlantılar

MAX30100 sensörü, Deneyap Kart ile I2C haberleşme protokolü üzerinden iletişim kurar. Bu, sadece iki adet veri kablosuyla bağlantı kurabileceğimiz anlamına gelir. Bağlantılar oldukça basittir:

MAX30100 PiniDeneyap Kart PiniAçıklama
VIN3V3Sensörün güç beslemesi
GNDGNDToprak hattı
SCLSCL (D11)I2C Saat (Clock) Hattı
SDASDA (D10)I2C Veri (Data) Hattı

Önemli Not: MAX30100 sensörü 3.3V ile çalışır. Bu yüzden kesinlikle Deneyap Kart'ın 3V3 pinine bağladığınızdan emin olun. 5V pinine bağlamak sensörünüze kalıcı hasar verebilir!

Yazılım ve Kodlama

Şimdi projemizin en heyecanlı kısmına, yani kodlamaya geçelim.

Adım 1: Arduino IDE Hazırlığı

Deneyap Kart'ı programlamak için Arduino IDE kullanacağız. Eğer daha önce kurmadıysanız, Deneyap'ın resmi dokümantasyon sayfasından Arduino IDE'ye Deneyap Kart desteğini nasıl ekleyeceğinizi öğrenebilirsiniz.

Adım 2: Gerekli Kütüphanenin Kurulumu

MAX30100 sensörünü kolayca kullanabilmek için bir kütüphaneye ihtiyacımız var. "MAX30100lib" adlı kütüphane bu iş için oldukça popüler ve stabildir.

  1. Arduino IDE'yi açın.
  2. Menüden Taslak > Library Ekle > Kütüphaneleri Yönet... yolunu izleyin.
  3. Açılan pencerede arama kutusuna MAX30100lib yazın.
  4. MAX30100lib kütüphanesini tıklayıp benim düzenlediğim deneyaplarda çalışan kütüphaneyi indirin.

Adım 3: Proje Kodu

Aşağıdaki kodu Arduino IDE'ye yapıştırın ve Deneyap Kart'ınıza yükleyin. Kod içerisindeki yorum satırları, her adımda ne yapıldığını detaylı bir şekilde açıklamaktadır.

Bu kodu aşağıdaki kod bloğundan kopyalayıp doğrudan kullanabilirsiniz.

// Gerekli kütüphaneleri projemize dahil ediyoruz.
#include <Wire.h>
#include "MAX30100.h"

// MAX30100 kütüphanesinden bir nesne (obje) oluşturuyoruz.
// Bu nesne üzerinden sensörle iletişim kuracağız.
MAX30100 pox;

// Nabız (BPM) değerini en son ne zaman raporladığımızı takip etmek için
// bir zaman damgası değişkeni oluşturuyoruz.
uint32_t tsLastReport = 0;

// Bu fonksiyon, sensörden gelen nabız verilerini işlemek için kullanılır.
// Kütüphane, yeni bir nabız algıladığında bu fonksiyonu otomatik olarak çağırır.
void onBeatDetected() {
    // Seri porta "Nabız Algılandı!" mesajını yazdırıyoruz.
    // Bu, sistemin çalıştığını anlamak için güzel bir geri bildirimdir.
    Serial.println("Nabiz Algilandi!");
}

void setup() {
    // Seri haberleşmeyi 115200 baud hızında başlatıyoruz.
    // Bu hız, verileri bilgisayara göndermek için kullanılır.
    Serial.begin(115200);

    // Başlangıç mesajını seri porta yazdırıyoruz.
    Serial.println("MAX30100 Nabiz Olcer Projesi Baslatiliyor...");

    // Sensör ile iletişimi başlatıyoruz.
    // begin() fonksiyonu, sensörün doğru şekilde bağlanıp bağlanmadığını kontrol eder.
    if (!pox.begin()) {
        // Eğer sensör bulunamazsa, seri porta bir hata mesajı yazdırıyoruz
        // ve programı burada durduruyoruz.
        Serial.println("HATA: MAX30100 sensoru bulunamadi. Baglantilarinizi kontrol edin.");
        // while(1) döngüsü, programın ilerlemesini engeller.
        while (1);
    } else {
        // Sensör başarıyla başlatıldıysa bilgi mesajı yazdırıyoruz.
        Serial.println("SUCCESS: MAX30100 sensoru basariyla baslatildi.");
    }

    // Kütüphaneye, yeni bir nabız algılandığında hangi fonksiyonu
    // çağıracağını söylüyoruz. Bu işleme "callback" denir.
    pox.setOnBeatDetectedCallback(onBeatDetected);
}

void loop() {
    // Bu fonksiyon, sensörden gelen verileri sürekli olarak günceller.
    // En doğru ölçüm için bu fonksiyonun döngü içinde sürekli çağrılması gerekir.
    pox.update();

    // millis() fonksiyonu, programın başlangıcından bu yana geçen milisaniye sayısını verir.
    // Her 1 saniyede bir (1000 milisaniye) ekrana raporlama yapmak için kontrol sağlıyoruz.
    if (millis() - tsLastReport > 1000) {
        // Nabız (BPM) ve Oksijen (SpO2) değerlerini seri porta yazdırıyoruz.
        // pox.getHeartRate() fonksiyonu nabız değerini,
        // pox.getSpO2() fonksiyonu ise kan oksijen doygunluğunu döndürür.
        Serial.print("Nabiz: ");
        Serial.print(pox.getHeartRate());
        Serial.print(" bpm / SpO2: ");
        Serial.print(pox.getSpO2());
        Serial.println(" %");

        // Son raporlama zamanını güncelliyoruz.
        tsLastReport = millis();
    }
}

Projeyi Çalıştırma ve Sonuçları Görme

  1. Kodu Deneyap Kart'ınıza yükledikten sonra, Arduino IDE'nin sağ üst köşesindeki Seri Port Ekranı simgesine tıklayın (veya Araçlar > Seri Port Ekranı menüsünü kullanın).
  2. Açılan pencerenin sağ alt köşesindeki baud hızının 115200 olarak ayarlandığından emin olun.
  3. İşaret parmağınızı çok fazla bastırmadan, nazikçe MAX30100 sensörünün üzerine yerleştirin.
  4. Birkaç saniye içinde Seri Port Ekranı'nda nabız (BPM) ve kan oksijen (SpO2) değerlerinizin akmaya başladığını göreceksiniz!

Tebrikler! Kendi nabız ölçüm cihazınızı başarıyla yaptınız.

Sonuç ve İleri Adımlar

Bu proje ile Deneyap Kart kullanarak I2C haberleşmesini ve biyometrik sensörlerin çalışma mantığını öğrendik. Artık bu projeyi bir adım öteye taşıyabilirsiniz:

  • OLED Ekran Ekleyin: Ölçülen verileri bilgisayara ihtiyaç duymadan görmek için projeye bir I2C OLED ekran ekleyebilirsiniz.
  • Veri Kaydı: Nabız verilerinizi bir SD kart modülü ile kaydederek uzun süreli analizler yapabilirsiniz.
  • IoT Projesine Dönüştürün: Deneyap Kart'ın Wi-Fi özelliğini kullanarak nabız verilerinizi bir web sunucusuna gönderebilir ve internet üzerinden takip edebilirsiniz.

Umarım bu proje hoşunuza gitmiştir. Yaratıcılığınızı kullanarak bu projeyi çok daha ileri seviyelere taşıyabilirsiniz. Başka projelerde görüşmek üzere!

1 Star2 Stars3 Stars4 Stars5 Stars (Henüz oy yok 🙁 )
Loading...

Yazıyı Nasıl Buldunuz ?

Puan vermek için yıldıza tıklayın.

Ortalama Puan 0 / 5. Oy sayımı: 0

Henüz oy yok bu yazıyı ilk siz değerlendirin.

Bu gönderinin sizin için yararlı olmamasından dolayı üzgünüm.

Bu gönderiyi geliştirelim.

Bu gönderiyi nasıl geliştirebileceğimi bana bildirin.

Merhaba, ben Efe Ali Bozkurt. 4 yıldır elektronik, web, mobil ve tasarım alanlarında çalışmalar yapmaktayım. Milli Teknoloji Hamlesi ve yerli üretim kapsamında proje geliştiriyorum. Arduino, ESP ve diğer mikrodenetleyiciler, yapay zeka, grafik tasarım, web ve mobil uygulama geliştirme gibi birçok alanda çalışarak, ülkemize ve topluma yararlı ürünler kazandırmayı hedefliyorum. Teknolojiyi insan yaşamını kolaylaştıran çözümler haline getirmek için tutkuyla çalışıyorum.

Yorum gönder