top of page

Basit Nabız (Kalp Atış Hızı) Monitörü (Heart Rate Monitor)

Bu proje, bir optik nabız sensörü (yaygın olarak kullanılan Pulse Sensor Amped veya benzeri bir fotopletismografi sensörü) kullanarak kullanıcının nabzını ölçer ve bu veriyi Wi-Fi üzerinden bir mobil cihaza veya buluta aktarır.


💡 Projenin Amacı


Nabız sensöründen alınan analog veriyi işleyerek anlık kalp atış hızını (BPM) hesaplamak ve bu veriyi kablosuz olarak yayınlamaktır.


🛠️ Gerekli Malzemeler


  1. Mikrodenetleyici: ESP32 Geliştirme Kartı (Dahili Wi-Fi ve BLE için idealdir).

  2. Sensör: Pulse Sensor Amped (veya MAX30100/MAX30102 gibi I2C tabanlı bir sensör de kullanılabilir, ancak Pulse Sensor daha basittir).

  3. Bağlantı Elemanları: Jumper Kabloları (erkek-dişi).

  4. Güç Kaynağı: USB kablosu.


🔌 Donanım Bağlantı Şeması (Pulse Sensor Amped Kullanarak)


Pulse Sensor Amped genellikle üç bağlantıya sahiptir: VCC, GND ve Sinyal.

ESP32 Pini

Pulse Sensor Amped

Açıklama

3.3V / VCC

VCC (+)

Sensörün Güç Girişi

GND

GND (-)

Toprak Bağlantısı

GPIO 34 (VP) veya 35 (VN)

Sinyal (S)

Analog Veri Girişi (ESP32'nin yalnızca belirli pinleri analog okuma yapabilir, 34-39 arası önerilir.)

Not: Pulse Sensor, analog veri ürettiği için ESP32'nin ADC (Analog-Dijital Dönüştürücü) pinlerinden birine bağlanmalıdır.


👨‍💻 Yazılım ve Kodlama (Arduino IDE)


Bu proje için, nabız sensöründen gelen gürültülü analog sinyali işlemek adına harici bir kütüphane kullanmak en basit yoldur.


Adım 1: Kütüphane Kurulumu


Arduino IDE'de Taslak > Kütüphaneyi Dahil Et > Kütüphaneleri Yönet yolunu izleyin ve arama kutusuna:

  • PulseSensor Playground yazıp kurun.


Adım 2: Temel Nabız Okuma Kodu


Aşağıdaki basit kod yapısı, nabız verisini okur ve seri portta (veya Wi-Fi üzerinden) yayınlamaya hazırlar.



#define USE_ARDUINO_INTERRUPTS true

#include <PulseSensorPlayground.h>


// ESP32 için analog pin tanımı (Yukarıdaki bağlantıya göre 34 veya 35)

const int PulseWire = 34;

const int Threshold = 550; // Nabız eşik değeri (deneme yanılma ile ayarlanabilir)


PulseSensorPlayground pulseSensor;


void setup() {

Serial.begin(115200);


// Nabız sensörünü başlat

pulseSensor.begin(PulseWire, Threshold, TYPE_ANALOG);


// Hata kontrolü

if (pulseSensor.error == true) {

Serial.println("Sensör başlatılamadı!");

}

}


void loop() {

// Nabız algılanıp algılanmadığını kontrol et

if (pulseSensor.sawNewSample()) {

// Yeni bir örnek okunduysa burası çalışır

}


// Nabız bulunduysa

if (pulseSensor.is"""Beat()""") {

// Kalp atışı algılandı

Serial.println("NABIZ VURDU!");

// Anlık BPM değerini al

int myBPM = pulseSensor.get"""BPM()""";

if (myBPM > 0) {

Serial.print("Kalp Atış Hızı: ");

Serial.print(myBPM);

Serial.println(" BPM");

// *** BURAYA WI-FI İLE GÖNDERME KODU EKLENECEK ***

// Örneğin: sendDataToCloud(myBPM);

}

}


delay(10); // Döngü beklemesi

}




📶 Ek Adım: Kablosuz Veri Gönderme


Bu basit projeyi kablosuz hale getirmek için, loop() fonksiyonundaki *** BURAYA WI-FI İLE GÖNDERME KODU EKLENECEK *** kısmına MQTT veya HTTP POST ile veri gönderme kodunu ekleyebilirsiniz.

  • En Basit Yol (Blynk/Thingspeak): Bu bulut hizmetlerinin ESP32 kütüphanelerini kullanarak, sadece birkaç satır kodla myBPM değerini anlık olarak bir web paneline aktarabilir ve mobil uygulamadan izleyebilirsiniz.

Bu proje, hem analog sensör okumayı hem de ESP32'nin kablosuz yeteneklerini birleştirerek sağlık alanında basit bir IoT çözümü oluşturmanız için mükemmel bir başlangıç noktasıdır.



Yorumlar


bottom of page