مشروع الاردوينو قياس نبضات القلب مع حساس النبض

 دليلك الشامل خطوة بخطوة لبناء جهازك الخاص من التوصيل إلى البرمجة وعرض النتائج بدقة

مشروع اردوينو لقياس نبضات القلب

في عالم تتسارع فيه وتيرة الحياة وتزداد فيه الضغوط، أصبحت مراقبة المؤشرات الحيوية الأساسية مثل نبضات القلب أمرًا ذا أهمية متزايدة. لم يعد هذا الأمر حكرًا على العيادات والمستشفيات، بل بفضل التطور التكنولوجي وثورة الإلكترونيات مفتوحة المصدر مثل اردوينو، أصبح بإمكان الهواة والطلاب والمهندسين بناء أجهزتهم الخاصة لمراقبة هذه المؤشرات بتكلفة منخفضة نسبيًا. يقدم هذا المقال دليلاً شاملاً ومفصلاً خطوة بخطوة لتصميم وتنفيذ مشروع اردوينو لقياس نبضات القلب باستخدام حساس النبض، وهو مشروع تعليمي وتطبيقي يفتح آفاقًا واسعة لفهم آلية عمل هذه الحساسات وكيفية تكاملها مع المتحكمات الدقيقة.

أهمية المشروع والفوائد التعليمية

إن بناء "جهاز قياس نبضات القلب باستخدام اردوينو" ليس مجرد تجميع لقطع إلكترونية، بل هو رحلة تعليمية قيمة تمنحك فهماً عميقاً لعدة مفاهيم:

  • مبادئ عمل الحساسات البيومترية: ستتعرف على تقنية الفوتوبليثيسموغرافي (PPG) التي يعتمد عليها معظم حساسات النبض التجارية.
  • التفاعل بين الهاردوير والسوفتوير: سترى كيف يمكن للبرمجة أن تتحكم بالمكونات المادية وتقرأ منها البيانات.
  • معالجة الإشارات التناظرية: حساس النبض يُخرج إشارة تناظرية تحتاج إلى معالجة وتحويل لفهمها.
  • أساسيات البرمجة بلغة اردوينو (C/C++): ستكتسب خبرة عملية في كتابة الأكواد، تعريف المتغيرات، استخدام الدوال، والتحكم في تدفق البرنامج.
  • تطبيقات عملية في مجال الصحة والتكنولوجيا: يفتح هذا المشروع الباب أمام ابتكار حلول تقنية شخصية لمراقبة الصحة أو تطوير أجهزة أكثر تعقيدًا.
  • مهارات حل المشكلات: ستواجهك تحديات برمجية أو في التوصيلات، وحلها سيعزز من قدراتك التحليلية.

هذا المشروع مثالي لطلاب الهندسة، هواة الإلكترونيات، وكل من يرغب في دخول عالم "مشاريع اردوينو الطبية البسيطة" وتطبيقاتها.

المكونات المطلوبة لبناء جهاز قياس نبضات القلب اردوينو

لتنفيذ هذا المشروع، ستحتاج إلى المكونات التالية، وهي متوفرة بسهولة في متاجر الإلكترونيات أو عبر الإنترنت:
  • لوحة اردوينو (Arduino Uno R3 أو ما يعادلها): هي قلب المشروع، المتحكم الدقيق الذي سيقوم بمعالجة البيانات من الحساس.
  • حساس نبضات القلب (Pulse Sensor): يوجد عدة أنواع، أشهرها حساس النبض الذي يعتمد على تقنية PPG (مثل حساس PulseSensor.com أو KY-039 أو MAX30100/MAX30102 للحصول على دقة أعلى وقراءات SpO2 إضافية). سنركز في هذا الشرح على حساس النبض التناظري البسيط.
  • لوحة تجارب (Breadboard): لتوصيل المكونات بسهولة دون الحاجة للحام.
  • أسلاك توصيل (Jumper Wires): مجموعة من أسلاك ذكر-ذكر، ذكر-أنثى، لتوصيل الحساس بالاردوينو.
  • كابل USB: لتوصيل لوحة الاردوينو بالكمبيوتر للبرمجة وتزويدها بالطاقة.
  • (اختياري) شاشة عرض LCD (مثل 16x2 I2C LCD): لعرض قراءات نبض القلب مباشرة دون الحاجة للكمبيوتر.
  • (اختياري في حال استخدام LCD) مقاومة متغيرة (Potentiometer 10K Ohm): لضبط تباين شاشة LCD (إذا لم تكن من نوع I2C مدمج بها منظم تباين).

فهم آلية عمل حساس نبضات القلب (تقنية PPG)

يعتمد معظم حساسات نبضات القلب المستخدمة في "مشاريع اردوينو الإلكترونية" على تقنية تسمى الفوتوبليثيسموغرافي (Photoplethysmography - PPG). تعمل هذه التقنية كالتالي:

  • إصدار الضوء: يقوم الحساس بإصدار ضوء (عادةً أخضر أو تحت الأحمر) من خلال باعث ضوئي (LED) باتجاه الأنسجة الحية (مثل طرف الإصبع أو شحمة الأذن).
  • امتصاص وانعكاس الضوء: جزء من هذا الضوء يتم امتصاصه بواسطة الدم والأنسجة، وجزء آخر ينعكس أو يمر عبرها.
  • كشف التغيرات: يوجد مستقبل ضوئي (Photodetector) في الحساس يقيس كمية الضوء المنعكس أو المار.
  • العلاقة بنبض القلب: مع كل نبضة قلب، يزداد تدفق الدم في الشرايين بشكل طفيف، مما يؤدي إلى تغير في كمية الضوء التي يمتصها الدم. هذا التغير في حجم الدم يُحدث تغيراً طفيفاً في كمية الضوء التي تصل إلى المستقبل الضوئي.
  • الإشارة الناتجة: يقوم الحساس بتحويل هذه التغيرات الضوئية الدورية إلى إشارة كهربائية تناظرية تتناسب مع معدل نبضات القلب. لوحة الاردوينو تقوم بقراءة هذه الإشارة، وتحليلها، ومن ثم حساب معدل ضربات القلب في الدقيقة (BPM).

توصيل دائرة قياس نبضات القلب باستخدام الاردوينو

عملية توصيل "حساس النبض مع الاردوينو" بسيطة ومباشرة. معظم حساسات النبض التناظرية تحتوي على ثلاثة أطراف رئيسية:
  • VCC (أو +): لتزويد الحساس بالطاقة (عادةً 5 فولت أو 3.3 فولت من الاردوينو).
  • GND (أو -): الطرف الأرضي.
  • S (أو SIG أو AOUT): طرف الإشارة التناظرية الخارجة من الحساس.

خطوات التوصيل الأساسية (بدون شاشة LCD):

  • صل طرف VCC الخاص بحساس النبض بمنفذ 5V على لوحة الاردوينو.
  • صل طرف GND الخاص بحساس النبض بمنفذ GND على لوحة الاردوينو.
  • صل طرف S (Signal) الخاص بحساس النبض بأحد المنافذ التناظرية على لوحة الاردوينو، وليكن المنفذ A0.

توصيل شاشة LCD (اختياري، لنوع I2C LCD):

إذا كنت ترغب في عرض النتائج على شاشة LCD من نوع I2C (وهي الأسهل في التوصيل حيث تحتاج لأربعة أسلاك فقط):
  1. صل طرف VCC لشاشة LCD بمنفذ 5V على الاردوينو.
  2. صل طرف GND لشاشة LCD بمنفذ GND على الاردوينو.
  3. صل طرف SDA لشاشة LCD بمنفذ A4 (SDA) على الاردوينو أونو.
  4. صل طرف SCL لشاشة LCD بمنفذ A5 (SCL) على الاردوينو أونو.

البرمجة: كتابة كود اردوينو لقياس نبضات القلب

بعد توصيل الدائرة بشكل صحيح، ننتقل إلى "برمجة اردوينو لقياس نبضات القلب". سنستخدم مكتبة "Pulse Sensor Playground" التي تسهل عملية قراءة البيانات من حساس النبض وحساب معدل ضربات القلب.

1- تثبيت المكتبة:

  • افتح برنامج Arduino IDE.
  • اذهب إلى Sketch > Include Library > Manage Libraries....
  • في مربع البحث، اكتب "PulseSensor Playground".
  • قم بتثبيت المكتبة من作成者 "PulseSensor.com".

2- الكود البرمجي الأساسي (للعرض على Serial Monitor):

#define USE_ARDUINO_INTERRUPTS true // اضبط هذا على "false" إذا كنت تستخدم اردوينو قديم أو غير متوافق مع المقاطعات
#include <PulseSensorPlayground.h>

// المتغيرات
const int PULSE_INPUT_PIN = A0; // منفذ الدخل التناظري لحساس النبض
const int BLINK_PIN = 13;       // ليد مدمج في الاردوينو للإشارة إلى النبضة (اختياري)
const int THRESHOLD = 550;      // قيمة العتبة لاكتشاف النبضة (قد تحتاج لتعديلها)

PulseSensorPlayground pulseSensor; // إنشاء كائن من المكتبة

void setup() {
  Serial.begin(9600); // بدء الاتصال التسلسلي لعرض البيانات

  // تهيئة كائن حساس النبض
  pulseSensor.analogInput(PULSE_INPUT_PIN);
  pulseSensor.blinkOnPulse(BLINK_PIN); // وميض الليد المدمج مع كل نبضة
  pulseSensor.setThreshold(THRESHOLD);

  // بدء تشغيل الحساس
  if (pulseSensor.begin()) {
    Serial.println("تم تهيئة حساس النبض بنجاح!");
  }
}

void loop() {
  int myBPM = pulseSensor.getBeatsPerMinute(); // قراءة معدل نبضات القلب

  if (pulseSensor.sawStartOfBeat()) { // إذا تم اكتشاف نبضة جديدة
    Serial.print("BPM: ");
    Serial.println(myBPM);
  }

  delay(20); // تأخير بسيط لثبات القراءات
}

شرح الكود:

  • #include <PulseSensorPlayground.h>: استدعاء مكتبة حساس النبض.
  • PULSE_INPUT_PIN: تحديد المنفذ التناظري (A0) الموصول به الحساس.
  • BLINK_PIN: تحديد منفذ الليد المدمج (13) الذي سيومض مع كل نبضة.
  • THRESHOLD: هذه قيمة مهمة. هي العتبة التي تستخدمها المكتبة لتحديد ما إذا كانت القراءة الحالية تمثل نبضة أم لا. قد تحتاج لتعديل هذه القيمة بناءً على نوع الحساس وظروف الإضاءة وطريقة وضع الإصبع. يمكنك استخدام مثال GettingStartedVisualizer من المكتبة لمعرفة القيمة المثالية لك.
  • PulseSensorPlayground pulseSensor;: إنشاء كائن للتحكم بالحساس.
  • setup ():
  1. Serial.begin(9600); تهيئة الاتصال التسلسلي بسرعة 9600 باود.
  2. pulseSensor.analogInput(PULSE_INPUT_PIN); إخبار المكتبة بالمنفذ المستخدم.
  3. pulseSensor.blinkOnPulse(BLINK_PIN); تفعيل وميض الليد مع النبضات.
  4. pulseSensor.setThreshold(THRESHOLD); ضبط قيمة العتبة.
  5. pulseSensor.begin(): بدء عملية الاستشعار.
  • loop ():
  1. int myBPM = pulseSensor.getBeatsPerMinute(); الحصول على القيمة المحسوبة لمعدل ضربات القلب.
  2. if (pulseSensor.sawStartOfBeat()): هذا الشرط يتحقق فقط عند بداية نبضة جديدة، وذلك لمنع طباعة نفس القيمة بشكل متكرر.
  3. Serial.print("BPM: "); Serial.println(myBPM); طباعة قيمة BPM على شاشة Serial Monitor.
  4. delay (20); تأخير صغير لمنح المعالج وقتًا ولتحسين استقرار القراءات.

تجميع المشروع واختباره

  1. التجميع: قم بتوصيل المكونات كما هو موضح في مخطط التوصيل. تأكد من أن جميع التوصيلات ثابتة وصحيحة.
  2. تحميل الكود: صل لوحة الاردوينو بالكمبيوتر عبر كابل USB. افتح Arduino IDE، اختر نوع اللوحة الصحيح (Arduino Uno) والمنفذ (Port) الصحيح من قائمة Tools. ثم اضغط على زر "Upload" لرفع الكود إلى الاردوينو.
  3. الاختبار:
  • بعد تحميل الكود بنجاح، افتح شاشة Serial Monitor من قائمة Tools في Arduino IDE (أو اضغط Ctrl+Shift+M). تأكد من ضبط سرعة الباود (Baud rate) على 9600.
  • ضع إصبعك بلطف وثبات على سطح حساس النبض. تجنب الضغط بشدة أو بخفة زائدة.
  • انتظر بضع ثوانٍ حتى تستقر القراءات. يجب أن ترى قيم BPM تظهر على شاشة Serial Monitor.
  • لاحظ الليد المدمج في الاردوينو (عادةً بجوار الدبوس 13) ، يجب أن يومض مع كل نبضة قلب تكتشفها.

نصائح لتحسين دقة القراءات:

  • الثبات: حافظ على ثبات يدك وإصبعك قدر الإمكان أثناء القياس.
  • الضغط المناسب: لا تضغط بشدة على الحساس، ولا تتركه مرتخيًا جدًا. ابحث عن الضغط المثالي.
  • الإضاءة المحيطة: بعض الحساسات قد تتأثر بالضوء المحيط القوي. حاول إجراء القياس في إضاءة معتدلة.
  • نظافة الحساس: تأكد من أن سطح الحساس نظيف.
  • تعديل THRESHOLD: إذا لم تحصل على قراءات أو كانت القراءات غير منطقية، قد تحتاج لتعديل قيمة THRESHOLD في الكود. استخدم مثال GettingStartedVisualizer من مكتبة PulseSensor Playground (الموجود في File > Examples > PulseSensor Playground) لرؤية الإشارة الخام وتحديد قيمة عتبة مناسبة.

تطوير المشروع: تطبيقات وأفكار إضافية

بمجرد أن يعمل "جهاز قياس نبضات القلب اردوينو" بشكل أساسي، يمكنك التفكير في العديد من التحسينات والتطبيقات الإضافية:

1- عرض النتائج على شاشة LCD:

استخدم شاشة LCD (يفضل I2C لسهولة التوصيل) لعرض قراءات BPM مباشرة دون الحاجة إلى جهاز كمبيوتر. ستحتاج إلى إضافة مكتبة LCD (مثل LiquidCrystal_I2C) وتعديل الكود لإرسال البيانات إلى الشاشة.

2- تسجيل البيانات:

يمكنك تعديل الكود لحفظ قراءات BPM مع الطابع الزمني على بطاقة SD Card باستخدام وحدة SD Card Reader، أو إرسالها إلى الكمبيوتر لحفظها في ملف CSV للتحليل لاحقًا.

3- تنبيهات مرئية أو صوتية:

أضف LED بألوان مختلفة (أخضر للطبيعي، أصفر للمرتفع قليلاً، أحمر للمرتفع جداً) أو جرسًا (Buzzer) لإصدار تنبيهات إذا تجاوز معدل نبض القلب حدودًا معينة.

4- الاتصال اللاسلكي (IoT):

باستخدام وحدات مثل ESP8266 (NodeMCU) أو ESP32 بدلاً من الاردوينو أونو، أو بإضافة وحدة واي فاي/بلوتوث إلى الاردوينو، يمكنك إرسال بيانات نبض القلب إلى تطبيق هاتف محمول، أو منصة إنترنت الأشياء (IoT) لعرضها ومراقبتها عن بعد. هذا يفتح الباب لـ"تطبيقات حساس نبضات القلب اردوينو" في مجال الرعاية الصحية عن بعد.

5- دمج حساسات أخرى:

يمكنك دمج حساسات أخرى مثل حساس درجة حرارة الجسم (مثل DS18B20 أو MLX90614) لإنشاء جهاز مراقبة صحية أكثر شمولاً.

6- تصميم هيكل أو علبة للمشروع:

باستخدام برامج التصميم ثلاثي الأبعاد والطباعة ثلاثية الأبعاد، يمكنك تصميم وطباعة علبة مناسبة للمشروع لجعله أكثر احترافية وسهولة في الاستخدام.

ابدأ رحلتك في عالم الإلكترونيات الصحية

يُعد مشروع "اردوينو مع حساس القلب" نقطة انطلاق رائعة لاستكشاف عالم الإلكترونيات التفاعلية وتطبيقاتها في مجال الصحة واللياقة البدنية، من خلال بناء هذا المشروع، لن تكتسب فقط مهارات تقنية قيمة في التعامل مع الاردوينو والحساسات والبرمجة، بل ستفتح أيضًا الباب أمام إمكانيات لا حصر لها للابتكار وتطوير حلولك الخاصة.
إن فهم "مكونات مشروع حساس القلب اردوينو" وكيفية تفاعلها معًا، والقدرة على "برمجة اردوينو لقياس نبضات القلب" بدقة، هي مهارات أساسية لأي مهتم بمشاريع DIY الإلكترونية، نشجعك على التجربة، التعديل، وإضافة لمساتك الخاصة على هذا المشروع، عالم اردوينو واسع ومليء بالإمكانيات، وهذا المشروع هو مجرد بداية.

نتمنى أن يكون هذا الدليل الشامل قد قدم لك كل ما تحتاجه للبدء، شاركنا تجربتك وأي تعديلات أو إضافات قمت بها في قسم التعليقات!

تعليقات