ماژول تشخیص ضربان قلب با سنسور اثرانگشت
(Finger Heartbeat/PPG Sensor)
ماژول مانیتورینگ ضربان قلب و اکسیژن خون
ماژول تشخیص ضربان قلب با سنسور اثرانگشت: سیستم پایش سلامت غیرتهاجمی برای پروژههای پزشکی و ورزشی
ماژول تشخیص ضربان قلب با سنسور اثرانگشت یک حسگر اپتیکال پیشرفته است که از فتوپلتیسموگرافی (PPG) برای اندازهگیری ضربان قلب (Heart Rate) و سطح اکسیژن خون (SpO2) از طریق نوک انگشت استفاده میکند. این ماژول برای پروژههای سلامتی، دستگاههای ورزشی، مانیتورینگ پزشکی خانگی و تحقیقات بیومتریک ایدهآل است.
اصول کار فناوری PPG
-
فرستنده: دو LED با طول موجهای مختلف (معمولاً قرمز ~660nm و مادون قرمز ~880nm)
-
گیرنده: فتودیود حساس به نور
-
مکانیزم: نور از طریق بافت انگشت تابیده شده، بخشی جذب خون (متناسب با حجم خون) و بخشی بازتاب مییابد. تغییرات حجم خون در هر ضربان، باعث تغییرات شدت نور دریافتی میشود.
ویژگیهای حرفهای و پارامترهای اندازهگیری
-
اندازهگیری دوگانه:
-
ضربان قلب (HR): تعداد ضربان در دقیقه (BPM)
-
اشباع اکسیژن خون (SpO2): درصد (معمولاً در مدلهای پیشرفته)
-
-
خروجی سیگنال خام: دسترسی به سیگنال موج PPG برای تحلیل پیشرفته.
-
الگوریتم پردازش داخلی: در برخی مدلها، محاسبه خودکار BPM روی تراشه.
-
نشانگر وضعیت: LEDهای نمایش وضعیت انگشت و اندازهگیری.
مشخصات فنی (مدل MAX30100/MAX30102 رایج)
| پارامتر | MAX30100 | MAX30102 |
|---|---|---|
| ولتاژ کاری | ۱.۸V تا ۳.۳V (ولتاژ منطق: ۱.۸V) | ۱.۸V تا ۳.۳V (ولتاژ منطق: ۱.۸V تا ۵V) |
| جریان مصرف LED | ۰.۰ تا ۵۰mA (قابل تنظیم) | ۰.۰ تا ۵۰mA (قابل تنظیم) |
| طول موج LEDها | قرمز (660nm)، مادون قرمز (880nm) | قرمز (660nm)، مادون قرمز (880nm) + سبز (اختیاری) |
| رابط ارتباطی | I2C (آدرس ۰x۵۷) | I2C (آدرس ۰x۵۷) |
| نرخ نمونهبرداری | تا ۳۲۰۰ نمونه بر ثانیه | تا ۳۲۰۰ نمونه بر ثانیه |
| اندازهگیری | ضربان قلب (HR)، SpO2 | ضربان قلب (HR)، SpO2 (دقت بالاتر) |
| مبدل آنالوگ به دیجیتال | ۱۸ بیت | ۱۸ بیت |
| سایر ویژگیها | – | FIFO 32 نمونه، سنسور دمای داخلی |
⚠️ توجه: این تراشهها سطح منطق ۱.۸V دارند. ماژولهای آماده معمولاً مبدل سطح ولتاژ داخلی دارند.
پینهای ماژول (نسخه آماده)
| پین ماژول | عملکرد | اتصال به آردوینو |
|---|---|---|
| VIN / 5V | تغذیه (۵V) | 5V |
| 3.3V | خروجی ۳.۳V | – (یا برای تغذیه قطعات دیگر) |
| GND | زمین | GND |
| SCL | کلاک I2C | A5 (UNO) یا پین SCL |
| SDA | داده I2C | A4 (UNO) یا پین SDA |
| INT | وقفه (اختیاری) | پین دیجیتال با قابلیت وقفه (مثلاً D2) |
کد نمونه: خواندن ضربان قلب با کتابخانه MAX3010x
// کتابخانه SparkFun MAX3010x - نصب از Library Manager #include <Wire.h> #include "MAX30105.h" // برای MAX30102 #include "heartRate.h" // الگوریتم محاسبه ضربان MAX30105 particleSensor; const byte RATE_SIZE = 4; // میانگینگیری از 4 نمونه byte rates[RATE_SIZE]; byte rateSpot = 0; long lastBeat = 0; float beatsPerMinute; int beatAvg; void setup() { Serial.begin(115200); Serial.println("راهاندازی سنسور ضربان قلب..."); if (!particleSensor.begin(Wire, I2C_SPEED_FAST)) { Serial.println("سنسور MAX30102 یافت نشد. اتصالات را بررسی کنید."); while (1); } // تنظیمات سنسور particleSensor.setup(); particleSensor.setPulseAmplitudeRed(0x0A); // روشنایی LED قرمز particleSensor.setPulseAmplitudeIR(0x0A); // روشنایی LED مادون قرمز particleSensor.enableDIETEMPRDY(); // فعالسازی سنسور دما (اگر موجود باشد) Serial.println("لطفا نوک انگشت خود را روی سنسور قرار دهید."); } void loop() { long irValue = particleSensor.getIR(); // خواندن مقدار IR // بررسی قرارگیری صحیح انگشت if (irValue > 50000) { Serial.print("انگشت تشخیص داده شد. IR="); Serial.println(irValue); // تشخیص ضربان if (checkForBeat(irValue) == true) { long delta = millis() - lastBeat; lastBeat = millis(); beatsPerMinute = 60 / (delta / 1000.0); if (beatsPerMinute < 255 && beatsPerMinute > 20) { rates[rateSpot++] = (byte)beatsPerMinute; rateSpot %= RATE_SIZE; // محاسبه میانگین beatAvg = 0; for (byte x = 0; x < RATE_SIZE; x++) beatAvg += rates[x]; beatAvg /= RATE_SIZE; Serial.print("ضربان قلب: "); Serial.print(beatsPerMinute); Serial.print(" BPM | میانگین: "); Serial.print(beatAvg); Serial.println(" BPM"); } } } else { Serial.println("انگشت یافت نشد. لطفا انگشت خود را روی سنسور بگذارید."); beatAvg = 0; } delay(20); // تاخیر کوتاه }
کاربردهای اصلی
-
دستگاههای پایش سلامت شخصی: ساخت گوشی پزشکی دیجیتال، ساعت هوشمند.
-
تجهیزات ورزشی: مانیتور ضربان قلب برای دوچرخه ثابت، تردمیل.
-
پروژههای تحقیقاتی پزشکی: مطالعات قلبی-عروقی، خواب.
-
سیستمهای بیومتریک: احراز هویت بر اساس الگوی ضربان قلب.
-
پروژههای استرس و مدیتیشن: پایش تغییرات ضربان در پاسخ به استرس.
-
دستگاههای نوزاد: مانیتورینگ وضعیت نوزادان.
نکات حیاتی برای دقت اندازهگیری
⚠️ قرارگیری صحیح انگشت: انگشت باید کاملاً روی سنسور قرار گیرد و نور محیط نشت نکند.
🔧 ثبات موقعیت: در طول اندازهگیری انگشت و دست باید ثابت باشند. حرکت باعث نویز شدید میشود.
💡 نور محیط: در نور شدید محیط (به ویژه نور خورشید) اندازهگیری ممکن است مختل شود.
🔌 تغذیه پایدار: از منبع تغذیه با نویز پایین (باتری یا آداپتور باکیفیت) استفاده کنید.
📊 میانگینگیری: برای خواندن دقیق، میانگین چندین اندازهگیری را گزارش دهید (مانند کد بالا).
پروژه عملی: مانیتور ضربان قلب با نمایشگر OLED
قطعات:
-
آردوینو نانو/UNO
-
ماژول سنسور ضربان قلب MAX30102
-
نمایشگر OLED 0.96 اینچ I2C
-
بازر (برای هشدار افزایش ضربان)
-
باتری لیتیوم ۳.۷V (برای پرتابل شدن)
خروجی: نمایش ضربان لحظهای، میانگین، نمودار موج PPG روی OLED. هشدار صوتی در صورت خارج شدن از محدوده نرمال.
مقایسه با روشهای دیگر اندازهگیری ضربان
| روش | سنسور PPG (انگشتی) | سنسور ECG/ایکگ | سنسور فشارخون | سنسور نوری مچی |
|---|---|---|---|---|
| دقت | ⭐⭐⭐⭐ (خوب) | ⭐⭐⭐⭐⭐ (عالی) | ⭐⭐⭐ (متوسط) | ⭐⭐⭐ (متوسط) |
| سهولت | ⭐⭐⭐⭐⭐ (بسیار ساده) | ⭐⭐ (پیچیده) | ⭐⭐⭐ (متوسط) | ⭐⭐⭐⭐ (ساده) |
| قیمت | ⭐⭐⭐⭐ (مناسب) | ⭐ (بسیار گران) | ⭐⭐ (گران) | ⭐⭐⭐ (متوسط) |
| سرعت | ⭐⭐⭐⭐ (سریع) | ⭐⭐⭐⭐⭐ (بسیار سریع) | ⭐⭐ (کند) | ⭐⭐⭐⭐ (سریع) |
| کاربرد | عمومی، ورزش | پزشکی، تشخیصی | فشارخون | پوشیدنیها |
سوالات متداول (FAQ)
✅ آیا این ماژول SpO2 (اکسیژن خون) هم اندازه میگیرد؟
بله، مدلهای MAX30100/MAX30102 قابلیت اندازهگیری SpO2 را دارند اما نیاز به الگوریتم پردازش پیچیدهتر و کالیبراسیون دارند.
✅ چرا مقدار نمایش داده شده نوسان زیادی دارد؟
۱. حرکت دست یا انگشت. ۲. قرارگیری نادرست انگشت. ۳. نور محیطی قوی. ۴. جریان خون ضعیف (سرما).
✅ آیا برای افراد با پوست تیره کار میکند؟
عملکرد ممکن است کاهش یابد زیرا ملانین بیشتر جذب نور بیشتری دارد. نیاز به تنظیم شدت LED دارد.
✅ آیا میتوان از نقاط دیگر بدن استفاده کرد؟
بله، لاله گوش، مچ دست، پیشانی اما نیاز به طراحی مکانیکی مناسب برای فشردگی و جلوگیری از نور محیط دارد.
✅ تفاوت MAX30100 با MAX30102 چیست؟
MAX30102 دارای FIFO داخلی، سنسور دمای مجتمع و سازگاری ولتاژ منطقی بهتر است. MAX30102 بهروزتر و توصیهشدهتر است.
✅ آیا این ماژول برای تشخیص پزشکی تأیید شده است؟
خیر. این یک ماژول آموزشی/تحقیقاتی/نمونه اولیه است. برای مصارف تشخیص پزشکی باید از دستگاههای تأییدشده FDA/CE استفاده شود.
✅ طول عمر LEDها چقدر است؟
در جریان کاری نرمال (کمتر از ۲۰mA)، دهها هزار ساعت. کاهش روشنایی LEDها با زمان طبیعی است.
چرا این ماژول را از ما بخرید؟
✅ ماژول با کیفیت: استفاده از تراشه اصلی Maxim Integrated MAX30102.
✅ مبدل سطح ولتاژ داخلی: سازگاری کامل با آردوینو ۵V بدون نیاز به مبدل خارجی.
✅ کالیبراسیون اولیه: تست عملکرد با افراد مختلف و تنظیمات بهینه.
✅ پشتیبانی فنی: ارائه کدهای کامل، کتابخانه فارسی و الگوریتمهای پردازش سیگنال.
پکیج پیشنهادی برای پروژه سلامت دیجیتال
-
ماژول سنسور ضربان قلب MAX30102 (با کیفیت بالا)
-
آردوینو نانو با کابل USB
-
نمایشگر OLED 0.96 اینچ I2C
-
باتری لیتیوم ۱۸۶۵۰ با هولدر و شارژر
-
جعبه پلاستیکی مناسب برای نصب
-
بند چسبی یا نگهدارنده انگشت
نحوه انتخاب و راهاندازی
-
انتخاب تراشه: MAX30102 را به دلیل امکانات بیشتر انتخاب کنید.
-
تغذیه: برای دقت بالا، از باتری به جای آداپتور سوئیچینگ پرنویز استفاده کنید.
-
نرمافزار: از کتابخانههای معتبر (مانند SparkFun) استفاده کنید.
-
کالیبراسیون: در کد، آستانه تشخیص انگشت (مقدار IR) را متناسب با کاربر تنظیم کنید.









ترانزیستورها
خازنها
دیودها
رگولاتورها
مقاومتها
کریستال و اسیلاتور
مدارات مجتمع
ابزارها
تجهیزات
تجهیزات لحیمکاری
مولتیمتر و ابزار اندازهگیری
منبع تغذیه و باتری
تستر