سنسور ضربان قلب به صورت پالسی است و با قرار دادن انگشت نبض بر روی سنسور پالس ارسال میکند. سنسور ضربان قلب به صورت آنالوگ عمل میکند. روش نمایش پالس به صورت خطی توسط تابع های کتابخانه OLED است که با تغییر عدد پالس به صورت آنالوگ خط ها تغییر خواهد کرد. در ادامه روش ساخت کیت ضربان قلب با سنسور APDS-9008 به همراه کد نویسی را بررسی خواهیم کرد. در ادامه با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
سنسور ضربان قلب Pulse Sensor
سنسور ضربان قلب با طراحی کاربردی و دقیقا متناسب با انگشت دست برای اندازه گیری ضربان قلب است. از این سنسور برای ساخت گجت های پوشیدنی، در تولید، برای تست موبایل برای دولوپرها استفاده میشود. مهمترین مزیت سنسور کاربری آسان جهت کار با برد آردوینو و دیگر بردها مانند ESP است که کار را برای ما ساده تر کرده است.
بررسی سخت افزاری سنسور قلب
بر روی سنسور، یک عدد سنسور LIGHT PHOTO قرار دارد که مشابه همان سنسورهایی است که در ساخت موبایل و گجت های هوشمند استفاده میشود. عملکرد سنسور APDS-9008 به صورت خروجی آنالوگ است و برای راه اندازی با میکروکنترلرها به پایه آنالوگ نیاز خواهیم داشت. تغذیه سنسور ۱٫۶ تا ۵٫۵ ولت است. خروجی سنسور به صورت خطی است.
پشت سنسور ترکیبی از خازن، مقاومت و دیود برای حفظ عبور جریان بار بیش از حد است که در تصویر زیر مشخص شده است.
نمایشگر OLED SSD1306
محبوب ترین ماژول OLED که در حال حاضر در صنعت الکترونیک و بردهای توسعه میکروکنترلر استفاده میشود، نمایشگر OLED با درایور قدرتمند SSD1306 است که در ظاهرهای مختلف به بازار ارائه شده است. چیپ SSD1306 یک کنترل کننده درایور قدرتمند CMOS است. این درایور از پروتکل های ارتباطی I2C و SPI پشتیبانی میکند و با توجه به اینکه در پروتکل I2C تنها با دو پایه برای اتصال نیاز دارد، برای اتصال OLED به میکروکنترلرها از این پروتکل بیشتر استفاده خواهیم کرد. ولتاژ کاری نمایشگر ۳٫۳ و ۵ ولت است و از هر دو پایه های تعذیه میکروکنترلر میتوانید استفاده کنید. زاویه دید نمایشگر ۱۶۰ درجه است و ابعاد آن ۰٫۹۶ اینچ است. نمایشگر دارای ۸ سطر و ۱۲۸ ستون است.
نصب کتابخانه Adafuit ssd1306
نصب کتابخانه Adafruit_GFX
استفاده از بردهای خانواده آردوینو ARDUINO
برای تست این برنامه از بردهای آردوینو مانند برد آردوینو UNO , NANO, MEGA2560 استفاده کنید. پروتکل ارتباطی سنسور ضربان قلب به صورت آنالوگ است و فقط یک پایه آنالوگ کافی است. اما برای استفاده از نمایشگر OLED به دو پایه SDA, SCL نیاز داریم که به ترتیب پایه A4 , A5 میشوند که تمامی بردهای معرفی شده از پروتکل I2C پشتیبانی میکنند. در این آموزش از برد آردوینو مدل ARDUINO UNO استفاده شده است.
استفاده از نرم افزار آردوینو ARDUINO IDE 2
اگر ویندوز شما ۱۰ و یا بالاتر است، پیشنهاد میکنیم نرم افزار به روزرسانی شده Arduino IDE2 را نصب کنید. رفع عیب، دیباگ آنلاین، دسترسی ساده به انتخاب بردها و اضافه کردن سریع کتابخانه ها از ویژگی های این نرم افزار است که کار را برای همه آسان کرده است. اما در نهایت در سال ۲۰۲۱ در ماه دسامبر کمپانی آردوینو جدیدترین IDE را تحت عنوان Arduino IDE 2.0 معرفی کرد. طبق گفته ی آردوینو، این نرم افزار Arduino IDE 2 یک محیط برنامه نویسی پویا تر، جذاب و حرفه ای را ایجاد کرده و دسترسی سریعتری برای استفاده از ویژگی های نرم افزار در اختیار کاربران قرار داده است. یک ادیتور مدرن در کنار آپشن های مورد نیاز با رابط کاربری متفاوت یک محیط حرفه ای را فراهم کرده است تا بتوانیم سرعت کدنویسی را افزایش دهیم. کد نوشته شده در قسمت بعدی را کپی و به نرم افزار آردوینو انتقال دهید.
کد آردوینو ضربان قلب با نمایش پالس
کد نوشته شده به این صورت است که دادهی آنالوگ را از سنسور قلب خوانده و سپس به صورت پالس خطی بر روی نمایشگر OLED نشان میدهد. کد را کپی و به نرم افزار آردوینو انتقال دهید.
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
پس از آپلود کد بر روی برد آردوینو، اتصالات را انجام دهید. سپس انگشت را بر روی سنسور قرار دهید. پالس به صورت خطی بر روی نمایشگر oled نمایان شده و عدد ضربان قلب با BMP نمایش داده میشود. دقت داشته باشید سنسور بسیار حساسی است و روش قرار گیری سنسور در سطح ثابت بدون نویز و حرکت دست در نمایش داده ی دقیق تاثیر گذار خواهد بود. حتما برای ۱۰ ثانیه انگشت را بر روی سنسور نگه دارید تا کالیبره شود. سپس عدد خروجی را بخوانید.
برای کدنویسی در ابندا به فراخوانی کتابخانه نمایشگر OLED و کلاس آن داریم.
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
در قدم بعدی برای دریافت داده از سنسور به صورت آنالوگ در بازه زمانی دقیق و به روز رسانی داده ها با هر بار تغییر نیاز به فراخوانی millis داریم. تابع millis() در آردوینو مدت زمان شروع به کار را محاسبه کرده و عدد را بر حسب میکروثانیه برمیگرداند. از زمانی که برق به آردوینو متصل شده است تا زمانیکه قطع ارتباط شود، این زمان محاسبه شده و در نهایت پس از ۴۹ روز سرریز Overflow خواهد شد. تا این مرحله برای ایجاد تاخیر در برنامه از این اصطلاح استفاده شده است که یک مدت زمان مشخص تاخیر ایجاد شود میتوانیم از چه مدت زمان سپری شده است استفاده کنیم تا برنامه ها را در سطح حرفه ای تری اجرا کنیم.
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
اتصال سنسور قلب به آردوینو
برای اجرای این پروژه به سنسور قلب، نمایشگر oled و بیزر نیاز داریم. اتصالات را به صورت زیر انجام دهید.
وسایل مورد نیاز
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
سلام
مهندس ببخشید این مدار رو میشه با آردینو مگا اجرا کرد ؟
و اینکه آیا امکان استفاده از ال سی دی در ابعاد بزرگتر وجود داره یا خیر؟
و سوال آخر اینکه امکانش هست مدار و ماژول سطح هوشیاری فرد رو با این مدار ادغام کرد
ممنون از لطفتون
با سلام
بله از برد آردوینو mega میتوانید استفاده کنید.
اگر ال سی دی تغییر کند؛ باید درایور آن همخوانی داشته باشد.
سوال آخر با اطمینان نمیتوان پاسخ داد.
سلام. وقت بخیر آیا میشه شرطی سازی کرد مثلا گفت اگر ضربان قلب از حد aبیشتر و یا از حد b کمتر شد هشدار بده
و همچنین میشه هم زمان ماژول دما و… رو راه اندازی کرد؟
با سلام
بله محدودیتی در کدنویسی و شرط نویسی برای پارامترهای سنسور وجود ندارد.
بله میتوانید سنسورهای دیگر هم اضافه کنید.
سلام
آیا این پروژه رو میشه با arduino ide هم اجرا کرد؟
با سلام
کاربر گرامی این مورد امکان پذیر است اما بایستی از C++استفاده کنید که کاملا بی ارتباط با این پروژه است.
سلام وقتتون بخیر ممنون بابت آموزش
من ی سوال دارم
میشه به یک آردوینو برنامه های متفاوتی داد ؟؟ یعنی چندبار ازش استفاده کرد و کد نوشت ؟؟
با سلام
هر بار میتوانید یک برنامه جدید روی برد آپلود کنید. محدودیتی وجود ندارد.
سلام
این پروژه با max30102 اجرا میشه ؟
با سلام
خیر فقط برای APDS9008 این اموزش نوشته شده است.
سلام تو رو خدا کد رو رایگان کنید لطفاااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااا
باسلام
کاربر گرامی اگر پروژهای مخصوص اعضا است بایستی اشتراک تهیه کنید.
سلام برا من ارور میده
با سلام
چه اروری دریافت میکنید؟ دقیقا متن ارور را بنویسید و همچنین بفرمایید که در چه مرحلهای ارور دریافت میکنید.
سلام برا من if(x>127) // ارور میده
سلام
لطفا متن ارور را کامل ارسال کنید.
سلام خسته نباشید برای منم دقیقا همینجا ارور میده
با سلام
چه اروری دارید؟