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 Pini | Deneyap Kart Pini | Açıklama |
|---|---|---|
| VIN | 3V3 | Sensörün güç beslemesi |
| GND | GND | Toprak hattı |
| SCL | SCL (D11) | I2C Saat (Clock) Hattı |
| SDA | SDA (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.
- Arduino IDE'yi açın.
- Menüden Taslak > Library Ekle > Kütüphaneleri Yönet... yolunu izleyin.
- Açılan pencerede arama kutusuna
MAX30100libyazın. MAX30100libkü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
- 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). - Açılan pencerenin sağ alt köşesindeki baud hızının 115200 olarak ayarlandığından emin olun.
- İşaret parmağınızı çok fazla bastırmadan, nazikçe MAX30100 sensörünün üzerine yerleştirin.
- 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!




Yorum gönder