22 Ekim 2026 Perşembe


Programlama Kodları

#include <dht.h>
#define dataPin 8
dht DHT;

void setup() 
{
  Serial.begin(9600);
}
void loop() 
{
  int readData = DHT.read22(dataPin);
  float sicaklik = DHT.temperature;
  float nem = DHT.humidity;

  Serial.print("Sıcaklık = ");
  Serial.print(sicaklik);
  Serial.println(" °C");
  Serial.print("Nem = ");
  Serial.print(nem);
  Serial.println(" % ");

  Serial.println(" ");

  delay(2000);
}



Devre Şeması




DHT11/DHT22 Sıcaklık ve Nem Sensörü


DHT11 ve DHT22, DHTxx ailesinin en popüler iki sensörüdür. Ortam sıcaklığını ve nemini ölçmek için yaygın olarak kullanılan bu sensörler, hobilerden profesyonel uygulamalara kadar geniş bir yelpazede kullanılmaktadır. DHT11 ve DHT22 sıcaklık ve nem sensörleri, dijital çıkışlı ve kalibrasyonludur. Tek bir pakette bir nem sensörü ve bir NTC sıcaklık sensörünü bir araya getirirler ve Arduino ile kullanımı kolay bir dijital ara yüz sunarlar. DHT22’nin kablolu olan versiyonu AM2302 olarak isimlendirilir.

Bu 2 sensör birbirlerine çok benzeseler ve aynı pin dizilimini paylaşsalar da teknik özellikler açısından bazı önemli farklılıklar vardır: 

Sıcaklık ölçümünde; DHT22, -40°C ile +125°C arasındaki sıcaklıkları ölçebilir ve yarım derece (±0,5°C) hassasiyetle ölçüm yapar. DHT11 ise, yalnızca 0°C ile 50°C arasındaki sıcaklıkları ölçebilir ve 2 derece (±2°C) hassasiyetle ölçüm yapar. 

Nem ölçümünde ise; DHT22 %0 ile %100 arasındaki nemi %2-5 doğrulukla tespit edebilirken, DHT11 yalnızca %20 ile %80 arasındaki nemi ölçer ve %5 doğrulukla tespit edebilir.

DHT22 daha doğru ve daha zorlu koşullarda çalışsa da daha pahalıdır. DHT11 ise daha ucuz, daha küçük boyutlu ve daha sık ölçüm yapabilir. DHT11 her 1 saniyede bir örnekleme yaparak ölçüm sonucu verirken, DHT22 her 2 saniyede bir örnekleme yapar. Bu farklılıklara rağmen, her iki sensör de aynı voltajla (3 ila 5 volt) çalışır ve ölçüm yaparken en fazla 2,5 mA elektrik tüketir. 



DHT11 ve DHT22 Teknik Özellikleri








DHT11

DHT22

Çalışma Voltajı

3,3 – 5,5V

3,3v – 5V

Maksimum Akım Tüketimi

2,5mA

2,5mA

Sıcaklık Aralığı

0 – 50°C

-40 ila 80°C

Sıcaklık Doğruluğu

± 2°C

± 0,5°C

Nem Aralığı

%20 – %80

%0 – 100%

Nem Doğruluğu

± %5

± %2-5

Örnekleme Süresi

1Hz (her 1 saniyede bir okuma)

0,5 Hz (her 2 saniyede bir okuma)

Çözünürlük

8 bit

16 bit

Boyutu

15,5 mm x 12 mm x 5,5 mm

15,1 mm x 25 mm x 7,7 mm

Fiyat

Çok Düşük

Daha pahalı

Avantajları

Düşük maliyet yüksek örnekleme

İyi ölçüm aralıkları yüksek doğruluk



DHT11 ve DHT22‘in Yapısı ve Çalışma Prensibi

DHT11 veya DHT22 sensörünün içini açtığınızda, kartın ön tarafında NTC termistörü ve kapasitif nem algılama bileşeni bulunur. Kartın arka tarafında ise; verileri toplayan, işleyen ve dijital olarak iletimini gerçekleştiren küçük bir entegre bulunur. 





Nem Ölçümü

Nem ölçümü için, iki elektrot arasında, genellikle polimer veya seramikten oluşan özel bir nem emici malzeme(Moisture Holding Substrage) bulunur. Hava nemlendikçe, bu nem emici malzeme havadan su buharı emer. Suyu emerken, iyon adı verilen küçük yüklü parçacıklar salar. Bu iyonlar, malzemenin dielektrik sabitini değiştirir ve bu da elektrotlar arasındaki kapasitansı değiştirir. Ortam ne kadar nemliyse, kapasitans o kadar fazla değişir. Sensörün dahili entegresi, neme duyarlı kapasitörü şarj edip boşaltır ve şarj/deşarj süresini ölçerek kapasitansını belirler. Bu kapasitans değişimi dijital nem değerine dönüştürülür. Böylece havadaki bağıl nem hesaplanabilir. 

Nem Sensörü, çevredeki ortamın bağıl nemini (%RH) ölçer ve çıktı olarak verir. Bağıl Nem, belirli bir sıcaklıkta, havadaki su buharı miktarının, havanın tutabileceği maksimum su buharı miktarına oranıdır. Hava doygunluk noktasına ulaştığında, yani tutabileceği kadar su buharı içerdiğinde, yoğuşma meydana gelmeye başlar ve bu da yüzeylerde çiğ (nem) oluşumuna neden olur. Ek olarak sıcak hava, soğuk havaya göre daha fazla nem tutar.


Sıcaklık Ölçümü

Sıcaklık ölçümü için sensör bir NTC termistörü kullanır. NTC (Negative Temperature Coefficient); Negatif Sıcaklık Katsayısı demektir. Bu, sıcaklık arttıkça direncin azaldığı anlamına gelir. Termistör, temelde sıcaklık değiştiğinde direncini önemli ölçüde değiştiren özel bir direnç türüdür. Sıradan dirençler de sıcaklıkla birlikte dirençlerini biraz değiştirse de, bu değişimler kullanışlı olamayacak kadar küçüktür. Termistörler ise, özellikle sıcaklıkla birlikte büyük direnç değişimleri gösterecek şekilde tasarlanmıştır. 





DHT11 veya DHT22 sensörünün içerisinde entegre olduğunu söylemiştik. Bu entegre hem nem hem de sıcaklık bileşenlerinden gelen sinyalleri ölçer, kalibrasyon ayarlarını uygular. Kalibrasyon ayarları okumaların doğru olmasına yardımcı olur. Bu entegre analog elektrik sinyallerini dijital verilere dönüştürür ve son olarak mikrodenetleyicinizin anlayabileceği bir dijital sinyal üretir.


DHT11 ve DHT22’nin Veri İletim Protokolü




DHT11/DHT22 sensörü, mikrodenetleyicilerle iletişim kurmak, sıcaklık ve nem verilerini göndermek için tek hatlı, iki yönlü özel bir seri iletişim protokolü kullanır. Bu protokol standart bir protokol olmasa da, Dallas 1-Wire protokolüne benzer ve doğru çalışması için son derece hassas zamanlamaya ihtiyacı vardır. İletişim iki yönlüdür. Çünkü DHT11/DHT22 mikrodenetleyiciden komutlar alır ve ardından bu komutlara yanıt verir. DHT11/DHT22 sensörünün gönderdiği veriler 40 bittir ve önce en anlamlı bitten(MSB) başlayarak gönderir. 40 bitlik veri 5 bayta bölünür. DHT11 sensörü için 2. ve 4. baytlar her zaman Sıfır'dır. Veriler, sıcaklık ve bağıl nemin hem İntegral hem de ondalık değerlerini içerir; sağlama toplamı ile de sonlandırılır. Sensör bağıl nem ve sıcaklık bilgilerini yansıtan 40 bitlik bir yanıt sinyalini şu şekilde gönderir: 

1. Bayt: Bağıl Nem İntegral Verileri % (Tam Sayı Kısmı).

2. Bayt: Bağıl Nem Ondalık Verileri % (Kesirli Kısım) – DHT11 için Sıfır.

3. Bayt: Sıcaklık İntegrali Verileri ⁰С(Tam Sayı Kısmı).

4. Bayt: Sıcaklık Ondalık Verileri %(Kesirli Kısım) – DHT11 için Sıfır.

5. Bayt: Kontrol/Sağlama Toplamı.






Mikrodenetleyici ile DHT11/DHT22 arasındaki iletişim için kullanılan DATA kablosu, 4.7kΩ veya 10kΩ çekme direnci kullanılarak HIGH’a çekilir. Bu, iletişim olmadığında veri yolunu BOŞTA durumuna getirmek içindir. Hat üzerinde sürekli bir HIGH değeri BOŞTA durumunu belirtir. Mikrodenetleyici, veri yolu ana bilgisayarı olarak görev yapar ve bu nedenle iletişimi başlatmaktan sorumludur. DHT11/DHT22 Nem ve Sıcaklık sensörü her zaman bağımlıdır ve mikrodenetleyici istediğinde veriyle yanıt verir. İletişim için kullanılan protokol aşağıdaki gibidir: 





İletişim Süreci:

  • Normal şartlarda DHT11/DHT22’nin veri pini 4.7kΩ veya 10kΩ çekme direnci ile Vdd’ye bağlandığı için pin HIGH seviyesindedir. Buna hat BOŞTA durumu denir. Bu durumdayken sensör düşük güç tüketimi modundadır.

  • Mikrodenetleyici DHT11/DHT22’den veri alabilmek için hat BOŞTA iken, hattı ~18ms boyunca LOW yapar.

  • DHT11/DHT22, LOW sinyalini algıladığında durumunu düşük güç tüketimi modundan çalışma moduna değiştirir ve hattın HIGH olmasını bekler.

  • Bundan sonra mikrodenetleyici hattı serbest bırakmak için yaklaşık ~20 µs ile ~40µs kadar hattı tekrar HIGH yapar.

  • DHT11/DHT22,  bunu mikrodenetleyiciden bir BAŞLAT olarak algılayacak ve ~80µs boyunca hattı LOW yaparak yanıt verecektir.

  • Daha sonra DHT11/DHT22 hattı serbest bırakmak için ~80 µs boyunca hattı HIGH yapacaktır. Bu da veri göndermeye hazır olduğunu gösterir.

  • Ardından DHT11/DHT22 40 bit veri gönderecektir. Her bit, ~50 µs LOW ile başlayıp, "0" için ~26-28 µs HIGH ve "1" için ~70 µs HIGH ile devam edecektir.

  • İletişim sona erdiğinde hat HIGH konuma getirilerek BOŞTA olması sağlanır. Bundan sonra DHT11/DHT22 mikrodenetleyiciden gelecek bir sonraki komutu bekler. 



DHT11 ve DHT22’nin Pin Çıkışları

Piyasada 3 pinli ve 4 pinli DHT11 ve DHT22 sıcaklık-nem sensörleri bulunmaktadır. 4 pinli olanlarda 3. pin kullanılmaz.




VCC: Sensörün güç girişidir. Bu pine 3.3V ile 5.5V arasında herhangi bir giriş voltajı uygulanabilse de 5V kullanmak en iyisidir. 5V'luk bir güç kaynağıyla, sensörü mikrodenetleyiciden 20 metreye uzağa yerleştirebilirsiniz. Eğer 3.3V’luk güç kaynağı kullanırsanız, sensörü mikrodenetleyiciden 1 metre uzağa yerleştirebilirsiniz. Uzun kablolar voltaj düşüşlerine neden olabilir ve bu da sıcaklık ve nem ölçümlerinde hatalara sebep olabilmektedir.

GND: Toprak pinidir.

Data: Sıcaklık ve nem bilgilerinin dijital olarak gönderildiği pindir. İletişimin düzgün çalıştığından emin olmak için, bu pin ile VCC pini arasına 4.7 kΩ’luk veya 10kΩ'luk bir çekme direnci eklemeniz gerekir. Bu direnç, sinyal seviyelerinin doğru olmasını sağlar. Eğer sensör PCB karta montajlı geldiyse çekme direnci kullanmanıza gerek yoktur. Çünkü bu direnç zaten kart üzerinde montajlıdır. 

NC: Not Connected anlamına gelir. Bu pin hiçbir şeye bağlanmaz.



DHT11/DHT22 Sıcaklık ve Nem Sensörünün Arduino İle Kullanımı


DHT22 Bağlantı Şeması





DHT11 Bağlantı Şeması




Kütüphane ve Komutlar

DHT11 ve DHT22 sensörlerini kullanmak için farklı kütüphaneler yer almaktadır. Biz uygulamalarımızda “Rob Tillaart” tarafından geliştirilen “DHTlib” kütüphanesini kullanacağız. Bu kütüphaneyi #include <dht.h> yaparak programa eklemeliyiz.

Kütüphane Adresi: https://github.com/RobTillaart/DHTlib


1. dht DHT;

Sensörü temsil eden bir DHT nesnesi oluşturur.


2. int readData = DHT.read22(dataPin);

DHT22 sensörünün Arduino’ya bağlı olduğu data pininden veri okur ve “readData” değişkenine kaydeder. 


3. int readData = DHT.read11(dataPin);

DHT11 sensörünün Arduino’ya bağlı olduğu data pininden veri okur ve “readData” değişkenine kaydeder. 


4. float sicaklik = DHT.temperature;

Sensörden okunan sıcaklık değeri(⁰С) float olarak tanımlanan “sicaklik” değişkenine atanır.


5. float nem = DHT.humidity;

Sensörden okunan nem değeri(%) float olarak tanımlanan “nem” değişkenine atanır.


NOT: DHT22 sensörünün örnekleme hızı 0,5 Hz yani 2 sn, DHT11 sensörünün örnekleme hızı 1 Hz yani 1 sn’dir. Bu, DHT22’nin nem ve sıcaklık değerlerini her 2 saniyede bir güncellediği,  DHT11’in ise nem ve sıcaklık değerlerini her 1 saniyede bir güncellediği anlamına gelir. Bu nedenle bu süreler altında sensörlerden veri istemenin bir anlamı yoktur. Çünkü aynı veriyi verir. Örneğin; DHT22 her 2 sn’de bir kendini günceller, veri üretir. DHT22’den her 1 saniyede bir veri istemek anlamsızdır. Loop döngüsünde programın sonuna bu sürelere göre delay() eklemek doğru olur.






Programlama Kodları

#include <PulseSensorPlayground.h>

const int PulseWire = A0;
const int LED = LED_BUILTIN;
int Threshold = 520;  //sensörün nabız atışının gerçekleştiğini anlayabileceği eşik değer belirlendi.

PulseSensorPlayground pulseSensor;  //"pulseSensor" isminde bir nesne oluşturuldu.

void setup()
{
  Serial.begin(115200);
  pulseSensor.analogInput(PulseWire);   //sensörün bağlı olduğu analog pin belirledi
  pulseSensor.blinkOnPulse(LED);        //kalp atışında yanıp-sönecek olan led Arduino üzerindeki 13 nolu pine bağlı led olarak belirlendi.
  pulseSensor.setThreshold(Threshold);  //eşik değer belirlendi

  if (pulseSensor.begin())  //sensörü başlatır. Eğer başlatma başarılıysa ekrana "We created a pulseSensor Object !" yazdırır.
  {
    Serial.println("We created a pulseSensor Object !");
  }
}



void loop()
{
  if (pulseSensor.sawStartOfBeat()) //Nabız olup olmadığını test eder. Nabız varsa 1 yoksa 0 değerini döndürür.
  {
    int myBPM = pulseSensor.getBeatsPerMinute();  //Dakikadaki nabız sayısını hesaplar ve sonucu int türünde döndürür.
    Serial.println("♥  A HeartBeat Happened ! ");
    Serial.print("BPM: ");
    Serial.println(myBPM);
  }
  delay(20);
}



Devre Şeması




Ölçüm Sonucu Seri Port Ekranı




 

Programlama Kodları

int PulseSensorPurplePin = A0;
int LED = LED_BUILTIN;
int Signal;
int Threshold = 520;  //eşik değer

void setup()
{
  pinMode(LED, OUTPUT);
  Serial.begin(115200);
}

void loop()
{
  Signal = analogRead(PulseSensorPurplePin);
  Serial.println("Signal " + String(Signal));
  if (Signal > Threshold)
  {
    digitalWrite(LED, HIGH);
  }
  else
  {
    digitalWrite(LED, LOW);
  }
  delay(20);
}



Devre Şeması




Normal Öçümde Arduino Seri Çizi Ekranı






Nefes Tutulduğunda Arduino Seri Çizici Ekranı






Nabız-Kalp Atışı Ölçme Sensörü (Pulse Sensör)


Pulse Sensörü, Arduino kullanıcıları için özel olarak tasarlanmış küçük, hafif ve düşük güç tüketimli bir kalp atış hızı sensörüdür. Bu sensörle canlı kalp atış hızı çizimini ve dakikadaki atış sayısını (BPM) hesaplamak mümkündür. Tak-çalıştır özelliği sayesinde karmaşık kurulumlara ihtiyaç duymadan hızlı bir şekilde çalışmaya başlayabilirsiniz. Dikilebilir deliklere sahip, düğme boyutundaki kompakt tasarımı sayesinde giyilebilir teknoloji ve akıllı tekstil ürünlerine bile entegre edebilirsiniz. 

Sensör parmak ucuna veya kulak memesine takılır. Ayrıca nabzınızı gerçek zamanlı olarak grafiklendiren açık kaynak kodlu bir izleme uygulaması da bulunmaktadır. Sensörün kalp logosu olan tarafı cilt ile temas eden tarafıdır. Farklı ışık koşullarında sağlıklı çalışabilmesi için ortam ışığı sensörü içermektedir. Aynı zamanda üzerinde bulunan gürültü engelleme özellikli devre sayesinde temiz ve stabil bir ölçüm alabilirsiniz. Sevkiyat durumuna göre kablo rengi değiştiğinden bağlantı için kart üzerinde bulunan bilgilerden faydalanabilirsiniz.





Pulse Sensörün Çalışma Mantığı Nedir?

Hiç parmaklarınızın arasından bir el feneri geçirip kalp atışlarınızı görebildiğinizi fark ettiniz mi? Nabız sensörlerinin çalışma mantığı da aynıdır.





Nabız Sensörü, parmak ucunuz veya kulak memesi gibi vücudunuzun ince bir noktasına 550 nm dalga boyunda yeşil ışık gönderir. Bu bölgeler ışığın kolayca geçebileceği kadar incedir. Işık cildinizden geçerken, bir kısmı kanınız tarafından emilir ve ışığın kalanı geri döner. Nabız Sensörü, ışığın ne kadar geri döndüğünü ölçen fotodedektör adı verilen özel bir parçaya sahiptir. Bu işlemin adı: Fotopletismografi (PPG)’dir. Bu, kan hacmindeki değişiklikleri ışık kullanarak ölçmek anlamına gelir.

Kanınız, vücudunuzda oksijen taşıyan hemoglobin adı verilen bir protein içerir. Oksijenli hemoglobin veya HbO2 olarak da adlandırılır. Hemoglobindeki oksijenin yeşil ışığı emme özelliği vardır. Kalbiniz her attığında, parmağınıza taze ve oksijen açısından zengin kan pompalar. Bu kanda bol miktarda oksijenli hemoglobin bulunduğundan kan daha kırmızı olur. Bu da ışık emilim oranını artırır ve daha fazla yeşil ışık emer. Bundan dolayı fotodedektöre yeşil ışık daha az geri yansır. Kalp atışları arasında parmağınızdaki oksijenli kan biraz daha az olur. Bu nedenle daha az yeşil ışık emilir ve dedektöre daha fazla yeşil ışık geri yansır. Yansıyan ışık miktarındaki bu değişiklikler nabız sensöründe salınımlı bir dalga formu oluşturur. Bu dalgayı ölçerek kalp atış hızını ölçebiliriz.

Fotodedektörden gelen sinyal genellikle küçük ve gürültülüdür. Daha iyi bir hale getirmek için, sinyal, alçak geçiren R/C filtresinden geçer. Ardından sinyal, çok daha büyük ve algılanmasının daha kolay hale gelmesi için bir operasyonel amplifikatör (Op-Amp) tarafından yükseltilir. 




Neden Yeşil Işık Kullanılır?

Yeşil ışık, hemoglobin tarafından iyi emildiği ve bu sayede her kalp atışında kan akışındaki değişiklikleri iyi gösterdiği için harika bir seçimdir. Ayrıca yeşil ışık, kırmızı veya kızılötesi ışığa kıyasla ortam ışığından daha az etkilenir. Bu da sinyalde daha az parazit olmasını sağlar.


Pulse Sensörün Yapısı ve Çalışması





Sensörün ön tarafı, kalp logosunun bulunduğu taraftır ve cilde temas etmesi gereken kısımdır. Nabzınızı ölçmek için parmağınızı buraya yerleştirmeniz gerekir. Burada, içinden yeşil bir LED'in (Kingbright yapımı ters montaj ledi) ışık yaydığı küçük yuvarlak bir delik vardır. LED'in hemen altında Avago tarafından üretilen APDS-9008 adlı özel bir ışık sensörü bulunur. Bu, akıllı telefonlarda, tabletlerde ve dizüstü bilgisayarlarda kullanılanlara benzer bir ortam ışığı sensörüdür ve farklı ışık koşullarında ekran parlaklığını ayarlamak için kullanılır. LED, parmak ucuna, kulak memesine veya diğer kılcal dokulara ışık yayar ve bu ışık sensörü geri yansıyan ışık miktarını ölçer. 

Sensörün diğer tarafında ise istenmeyen gürültüyü veya paraziti gidererek sinyali temizlemeye yardımcı olan birkaç direnç ve kapasitörden oluşan R/C filtresi bulunur. Yine burada microchip'in MCP6001 op-amp’ı; ışık sensöründen gelen küçük elektrik sinyallerini yükselterek mikrodenetleyici tarafından kolayca okunabilmelerini sağlar. Güç kablolarının ters bağlanması durumunda devreyi ters voltajdan korumak için, bir ters voltaj koruma diyodu da yine bu tarafta bulunmaktadır. Nabız Sensörü 3,3V – 5V DC güç kaynağı ile çalışır ve 4 mA'den az akım tüketir. 


Pulse Sensör Devre Şeması





Bu devrenin ilk önemli parçası 10 µF filtre kapasitörüdür. Ardından yeşil LED ve 470Ω dirençtir. 470Ω direnci, sensör modülü için akım sınırlayıcı dirençtir. Devrede ayrıca, devrenin bir diyot üzerinden beslendiğini görebilirsiniz. Diyot iki amaca hizmet eder: ilk olarak ters polarite koruması görevi görür ve ikinci olarak devreyi geçici akımlardan korur. APDS-9008 fotodiyotun çıkış genliği çok düşük ve gürültülüdür. Bu nedenle, bir dizi RC alçak geçiren filtreden geçirmek, ardından temizlenen sinyali mikrodenetleyici ile işleyebilmek için MCP6001 op-amp tarafından yükseltmek gerekir.


Pulse Sensörün Teknik Özellikleri



  • Vcc : 3V – 5.5V

  • Maksimum Çekilen Akım : < 4mA

  • Vout (Çıkış Voltaj Aralığı) : 0,3V'dan Vcc'ye

  • LED Çıkışı : 565nm

  • Sensör Girişi : 525nm

  • Çalışma Sıcaklığı : -40⁰С < T < 80⁰С

  • Çap : ~16mm



Pulse Sensörün Pin Çıkışları



S(Sinyal): Sensörün analog sinyal çıkış pinidir.  0,3V'dan Vcc'ye kadar analog voltaj verir. Arduino’nun A0 gibi bir analog giriş pinine bağlanmalıdır.

VCC: Sensörün güç girişidir. Bu pine 3.3V ile 5V arasında herhangi bir giriş voltajı uygulanabilir.  

GND: Toprak pinidir.

NOT: Çeşitli nabız sensörlerinde kablo renkleri farklı olabilir. Bu nedenle hangi kablonun hangisi olduğunu bilmek için sensörünüzün arkasındaki etiketleri kontrol edin.



Pulse Sensörünün Kullanımında Bilinmesi Gerekenler

Sensörü kullanmaya başlamadan önce parmakların yağlı, kirli veya terli olmadığına emin olun. Nabız sensörü açıkta bir devre kartıdır. Elektronik komponentlere ve lehim noktalarına dokunursanız, kartta kısa devre yapabilir veya istenmeyen sinyal gürültüsüne neden olabilirsiniz. Pulse sensörü, orijinal satıcısı ve tasarlayıcısı olan pulsesensor.com sitesinden kit halinde satın aldığımızda, ön ve arka tarafındaki elektronik bileşenler için koruma ve yalıtım ekipmanları(şeffaf vinil pvc) gönderilmektedir. Aynı zamanda kit içerisinde sensörün vücuda takılmasını sağlayan kulak klipsi ve parmak kayışı da yer almaktadır. Biz uygulamalarımızda yalın halde kullanacağımız için açıkta kalan devre elemanlarının zarar görmemesine ve kısa devre olmamasına özen göstermeliyiz. 

Parmağınızı sensöre çok fazla bastırırsanız, parmak ucunuzdaki tüm kanı sıkarsınız ve sinyal alamazsınız. Çok hafif bastırırsanız da hareket ve ortam ışığından kaynaklanan gürültüye neden olursunuz. Sensöre tatlı bir basınç uygulamanız yeterlidir. Böylece sensör, güzel ve temiz bir sinyal verecektir. Parmağınızı değdirirken titremesi, kayması ya da sıkma-gevşetme gibi durumlar sensörün yanlış sonuç vermesine sebep olur. Sabit bir ölçüm elde etmek için, ölçüm yaparken basıncın sabit kalması için sensörü bant gibi herhangi bir şeyle parmağınıza sabitlemeye çalışın. Sensörün kararlı bir çıktı üretmesi biraz zaman alıyor. Bu yüzden kararlı bir sonuç elde etmek için sabırlı olmanız ve bir süre beklemeniz gerekiyor. 

Sensörün kararlı çalışma voltajı 3,3 V ile 5,5 V arasındadır. Sensörü başka voltaj değerleriyle çalıştırmak, sensörün kararsız hale gelmesine neden olur.

Sensör parmak ucunuzda hala iyi çalışmıyorsa, kan akışının kolayca tespit edilebildiği kulak memesi veya alt dudağınız gibi vücudunuzun diğer bölgelerinde test etmeyi deneyin. Bu bölgelerde ayrıca yüzeye yakın kan damarları bulunur ve genellikle daha iyi sonuçlar verir.

Sağlıklı ve yetişkin bireylerde ideal nabız değeri genellikle dakikada 50 ila 100 atış arasındadır. Gençlerde kalp atış hızı yüksek olma ihtimali bulunur. Bu değer dinlenme durumunda ölçümler için normal bir değerdir. Uyurken ya da hareket halindeyken bu değer aralığı değişiklik gösterebilir. Dinlenirken kalp atış hızı dakikada 100 atışın üzerindeyse, hızlı yani nabız yüksek olarak değerlendirilir.



Pulse Sensörün Arduino İle Kullanımı






Pulse sensör, Arduino Uno, Mega 2560, Leonardo, Due, Nano, Micro, Yún, Pro Mini, Zero gibi birçok Arduino kart ile uyumludur. Sensörü PulseSensorPlayground.h kütüphanesi ile kullanmak mümkündür. Bu kütüphane Arduino’da dâhili olarak gelmediği için haricen eklemek gerekmektedir. Kütüphaneyi eklemek için; Arduino kütüphane yöneticinde arama kutucuğuna “pulsesensor” yazılır. Daha sonra Joel Murphy ve Yury Gitman'ın PulseSensor Playground'unu yüklemeniz yeterlidir.

Kütüphaneyi yükledikten sonra kütüphane içerisinde yer alan “GettingStartedProject” örnek uygulamasıyla sensörün testini yapabiliriz. Arduino nabız atışının gerçekleşip gerçekleşmediğini sensörden gelen analog değerin büyüklüğüne göre karar veriyor. Bu nedenle bizim önceden bir threshold, yani eşik değeri belirlememiz gerekiyor. Bu sayede Arduino belirlediğimiz eşik değerinin üzerinde bir sinyal geldiğinde nabız atışının gerçekleştiğini anlayabilecektir. Nabız sensörü herhangi bir parmak, kulak memesi veya diğer organlarla temas etmediğinde, analog sinyal, Vcc besleme voltajının orta noktası ya da Vcc/2 civarındadır. Nabız sensörü herhangi bir organla temas ettiğinde, yansıyan ışıktaki değişiklik, sinyalin Vcc/2 etrafında dalgalanmasına neden olur. Aşağıdaki resimde yatay yeşil çizgi Vcc/2’dir.





Arduino, Nabız Sensöründen gelen analog sinyali izler ve sinyal orta noktanın üzerine çıktığında bir nabız bulunduğuna karar verir. İşte bu an, kılcal damarlarınızın taze kanla dolup taştığı andır. Sinyal orta noktanın altına düştüğünde ise Arduino bunu fark eder ve bir sonraki nabzı bulmaya hazırlanır.


1. Kalp Atış Hızını Ölçme

PulseSensorPlayground.h kütüphanesinin “GettingStartedProject” örnek uygulamasını Arduino’ya yükledikten sonra sensöre parmağınızı değdirdiğinizde, Arduino kartı üzerinde 13 nolu pine bağlı ledin kalp atışınızla aynı anda yanıp söndüğünü görebilirsiniz. “GettingStartedProject” uygulaması ile Arduino seri monitöründe nabız sensöründen gelen ham verileri aşağıdaki resimdekine benzer şekilde görebilirsiniz: 




Nabız sensöründen gelen ham sayıları yukarıda gördünüz. Kalp atış hızınızı Arduino Seri Plotter(seri çizici) kullanarak grafik şeklinde görselleştirebilirsiniz. Bu aracı başlatmak için Araçlar > Seri Plotter(seri çizici)'a tıklayın. Baud hızını programda belirtilen değer hangisi ise onu seçin. Sinyal ilk başta biraz dengesiz görünebilir ancak kısa bir süre sonra düzelecektir. Dengeye ulaştığında, grafikte düzenli iniş çıkışlar göreceksiniz. Bu iniş çıkışlar kalp atışını temsil eder. Seri Plotter'ın çizdiği görüntünün bir örneği aşağıda yer almaktadır:






2. Dakikadaki Kalp Atış Hızını (BPM) Ölçme

Bu örnekte, fitness takip cihazlarının ve akıllı saatlerin yaptığına benzer şekilde, kalp atış hızınızı dakikadaki atış sayısı (BPM) olarak ölçebiliriz. Bunun için PulseSensorPlayground.h kütüphanesinin “Getting_BPM_to_Monitor” uygulamasını Arduino’ya yüklememiz gerekir. Bu uygulama sensör tarafından algılanan her kalp atışı arasındaki süreyi hesaplayarak çalışır. Program, bir atıştan diğerine ne kadar zaman geçtiğini ölçerek, tam bir dakikada kaç atış gerçekleşeceğini hesaplayabilir. Bu da BPM'nin tam olarak ne anlama geldiğini açıklar. Arduino’ya yükledikten sonra sensöre parmağınızı değdirdiğinizde, Arduino kartı üzerinde 13 nolu pine bağlı ledin kalp atışınızla aynı anda yanıp söndüğünü görebilirsiniz.

Kütüphane adres: https://github.com/WorldFamousElectronics/PulseSensorPlayground


Komutlar:

a. PulseSensorPlayground pulseSensor;

Programda "pulseSensor" isminde bir nesne oluşturulmasını sağlar.


b. pulseSensor.analogInput(pin_no);

Sensörün analog çıkışının Arduino’nun hangi analog girişine bağlandığı belirlenir.


c. pulseSensor.blinkOnPulse(LED_pin);

Her nabız atışında ve duruşunda yanıp-sönecek olan ledin hangi pine bağlandığı belirlenir.


d. pulseSensor.setThreshold(esik_deger);

Arduino’nun nabız atışının gerçekleşip gerçekleşmediğini anlayabilmesi için eşik değer belirlenir.

Örnek: pulseSensor.setThreshold(520);


e. pulseSensor.begin();

Sensörü başlatır.


f. pulseSensor.sawStartOfBeat();

Nabız olup olmadığını test eder. Nabız varsa 1 yoksa 0 değerini döndürür.


g. pulseSensor.getBeatsPerMinute();

Dakikadaki nabız sayısını hesaplar ve sonucu int türünde döndürür. 




Arduino Eğitimi Konu - 7

Toplam Sayfa Görüntüleme Sayısı

Sensörler ve Aygıtların Arduino İle Kullanımı

Popular Posts

Yararlanılan Kaynaklar

İletişim

gokdag17@gmail.com

Blog Archive