3000 TL üzeri ücretsiz kargoGüvenli ödeme · Kredi kartına 9 taksit0850 304 9125Sipariş Takibi
Özel Proje Siparişi
Teknik Bilgiler

Arduino ile GSR Sensörü Kullanarak Deri İletkenliği ve Stres Tepkisi Ölçümü

YazarProje Hocam 4 dk okuma
Arduino ile GSR Sensörü Kullanarak Deri İletkenliği ve Stres Tepkisi Ölçümü
İçindekiler
  1. 3. Devre bağlantıları
  2. 4. Arduino programlama kodu
  3. 5. Sistemin çalışma prensibi
  4. 6. Bilgisayarda ölçüm grafiğini görüntüleme
  5. 7. Projenin geliştirme alanları
  6. 8. Dikkat edilmesi gereken noktalar
  7. 9. Sonuç

İnsan vücudu, duygusal ve fiziksel durumlara bağlı olarak çeşitli fizyolojik tepkiler verir. Bu tepkilerden biri de ter bezlerinin aktivitesindeki değişimdir.

GSR (Galvanic Skin Response) sensörü, cildin elektriksel iletkenliğinde meydana gelen değişimleri algılayabilir. Özellikle parmak uçlarındaki nem ve terleme değişimleri, sensörün çıkış sinyalini etkiler.

Bu projede Arduino Uno ve GSR sensör modülü kullanarak:

  1. Deri iletkenliğindeki değişimleri ölçmeyi,
  2. Kullanıcının başlangıç değerini belirlemeyi,
  3. Ani sinyal yükselmelerini tespit etmeyi,
  4. Ölçümleri bilgisayar ekranında gerçek zamanlı görüntülemeyi amaçlıyoruz.

Sistem, biyometrik sensörlerin çalışma prensibini öğrenmek ve Arduino ile analog veri işleme uygulamaları geliştirmek için kullanılabilir.


3. Devre bağlantıları

GSR sensör modülünün bağlantısı oldukça basittir. Modülün analog çıkışı Arduino'nun A0 girişine bağlanır.


Arduino ile GSR Sensörü Kullanarak Deri İletkenliği ve Stres Tepkisi Ölçümü


GSR sensörüArduino Uno
VCC5V
GNDGND
SIG / OUTA0

Elektrotları sensör modülünün elektrot bağlantı girişine bağlayın. Elektrotları genellikle işaret ve orta parmağa sabitleyebilirsiniz.

Dikkat: Bu bağlantı, analog çıkışlı GSR modülleri içindir. Çıplak elektrotlarla doğrudan aynı bağlantı yapılmaz.

4. Arduino programlama kodu

Bu sürümde yalnızca ham sensör verisini okumak yerine daha kullanışlı bir ölçüm algoritması hazırladık.

Kodun çalışma mantığı:

  1. İlk ölçümlerde kullanıcının başlangıç değeri hesaplanır.
  2. Sensör verileri hareketli ortalama yöntemiyle yumuşatılır.
  3. Güncel ölçüm başlangıç değeriyle karşılaştırılır.
  4. Belirlenen fark aşıldığında ani değişim algılanır.
  5. Sonuçlar Arduino Serial Plotter üzerinden izlenebilir.



/*
  PROJEHOCAM
  Arduino GSR - Deri Iletkenligi Olcum Sistemi

  Kart       : Arduino Uno
  Sensor     : Analog GSR Sensor Module
  Sensor pin : A0
*/

const int GSR_PIN = A0;

// Olcum ayarlari
const int SAMPLE_COUNT = 100;
const int SPIKE_THRESHOLD = 35;

// Filtre katsayisi
const float FILTER_ALPHA = 0.15;

float baseline = 0;
float filteredValue = 0;

bool firstReading = true;

void setup() {
  Serial.begin(9600);

  pinMode(GSR_PIN, INPUT);

  Serial.println("PROJEHOCAM GSR OLCUM SISTEMI");
  Serial.println("Elektrotlari parmaklariniza takin.");

  delay(2000);

  calibrateSensor();

  Serial.println("Kalibrasyon tamamlandi.");
  Serial.println("Olcum basliyor...");
}

void calibrateSensor() {
  long total = 0;

  for (int i = 0; i < SAMPLE_COUNT; i++) {
    total += analogRead(GSR_PIN);
    delay(20);
  }

  baseline = (float)total / SAMPLE_COUNT;
  filteredValue = baseline;
}

void loop() {

  int rawValue = analogRead(GSR_PIN);

  // İlk ölçümü filtre başlangıcı olarak kullan
  if (firstReading) {
    filteredValue = rawValue;
    firstReading = false;
  }

  // Üstel hareketli ortalama filtresi
  filteredValue =
    (FILTER_ALPHA * rawValue) +
    ((1.0 - FILTER_ALPHA) * filteredValue);

  // Başlangıç değerinden sapma
  float difference = abs(filteredValue - baseline);

  // Ani değişim kontrolü
  bool spikeDetected = difference > SPIKE_THRESHOLD;

  // Seri port üzerinden veri gönderimi
  Serial.print("Anlik:");
  Serial.print(filteredValue);

  Serial.print("\tReferans:");
  Serial.print(baseline);

  Serial.print("\tFark:");
  Serial.print(difference);

  Serial.print("\tEsik:");
  Serial.println(SPIKE_THRESHOLD);

  if (spikeDetected) {
    Serial.println("UYARI: ANI GSR DEGISIMI ALGILANDI!");
  }

  delay(50);
}


Kodun önemli ayarları:

ParametreAçıklama
SAMPLE_COUNTBaşlangıç kalibrasyon örnek sayısı
SPIKE_THRESHOLDAni değişim algılama eşiği
FILTER_ALPHAFiltre hassasiyeti
delay(50)Ölçüm aralığı

Başlangıçta 35 ADC birimi örnek eşik olarak kullanılmıştır. Bu değer sensör modülüne, elektrot temasına ve kişiye göre deneysel olarak ayarlanmalıdır.

5. Sistemin çalışma prensibi


Arduino ile GSR Sensörü Kullanarak Deri İletkenliği ve Stres Tepkisi Ölçümü

GSR sensörünün çalışma prensibi deri iletkenliğine dayanır.

İnsan vücudunda ter bezlerinin aktivitesi arttığında cildin elektriksel iletkenliği genellikle artar. Bunun sonucunda cilt direncinde değişim meydana gelir.

Sensör modülü bu değişimi analog gerilim olarak Arduino'ya aktarır.

Arduino ise analog sinyali sayısal değere dönüştürerek başlangıç ölçümüyle karşılaştırır. Böylece normal ölçüm değerinden meydana gelen ani sapmalar tespit edilebilir.

6. Bilgisayarda ölçüm grafiğini görüntüleme

Projenin en kullanışlı özelliklerinden biri, sensör verilerinin gerçek zamanlı grafik olarak izlenebilmesidir.


Arduino ile GSR Sensörü Kullanarak Deri İletkenliği ve Stres Tepkisi Ölçümü

Bunun için:

  1. Arduino'yu USB kablosuyla bilgisayara bağlayın.
  2. Hazırladığımız kodu Arduino'ya yükleyin.
  3. Arduino IDE üzerinden Araçlar menüsüne girin.
  4. Serial Plotter seçeneğini açın.
  5. Haberleşme hızını 9600 baud olarak ayarlayın.

Grafikte anlık ölçüm, referans değeri ve ölçüm farkı birlikte görüntülenir.

7. Projenin geliştirme alanları

Bu temel sistem farklı elektronik projelere dönüştürülebilir:

  1. OLED ekran eklenerek taşınabilir ölçüm cihazı yapılabilir.
  2. Bluetooth modülü ile ölçümler telefona aktarılabilir.
  3. ESP32 kullanılarak kablosuz veri takibi yapılabilir.
  4. SD kart ile uzun süreli ölçüm kayıtları tutulabilir.
  5. Python ile grafik ve veri analiz yazılımı geliştirilebilir.

8. Dikkat edilmesi gereken noktalar

  1. Ölçüm sırasında elektrotların parmaklarla teması sabit tutulmalıdır.
  2. El hareketleri ve elektrotların yer değiştirmesi hatalı ölçümlere neden olabilir.
  3. Her kullanıcı için başlangıç kalibrasyonu yeniden yapılmalıdır.
  4. Ortam sıcaklığı, cilt nemi ve elektrot basıncı ölçüm sonuçlarını etkileyebilir.
  5. GSR ölçümü tek başına kişinin stres seviyesini kesin olarak belirleyemez.

9. Sonuç

Arduino ve GSR sensörü kullanılarak geliştirilen bu proje, insan vücudundaki biyometrik değişimlerin elektronik sistemlerle nasıl ölçülebileceğini gösteren eğitici bir uygulamadır.

Basit donanım bağlantısı ve geliştirilebilir yazılım altyapısı sayesinde elektronik, robotik, biyomedikal mühendisliği ve Arduino projeleriyle ilgilenenler için güzel bir başlangıç çalışmasıdır.
YazarProje Hocam

2012’den beri robotik, elektronik, yazılım ve makine alanlarında butik Ar-Ge projeleri geliştiriyor; projelerimizi açık kaynak olarak paylaşıp maker kültürünü destekliyoruz.

Projenizi birlikte yapalım

İlginizi çekebilecek yazılar

Projeniz için yardım mı lazım?Mühendis ekibimiz malzeme seçiminden kodlamaya kadar yanınızda.