آموزش آردوینو برد ESP8266 پروژه های آردوینو

ساخت دستگاه پالس اکسی متر با ESP8266 به همراه نمایش ضربان قلب

نوشته شده توسط معین صابری

در سال گذشته تاکنون، ویروس کرونا باعث مرگ افراد بسیاری در جهان شده است. این ویروس که علائمی بسیار شبیه به سرماخوردگی و آنفولانزا دارد، با سرعت بسیاری زیادی در جهان گسترش یافته و موجب ایجاد یک موج همه گیر شده است. یکی از مهم ترین علائم ابتلا به ویروس کرونا، کاهش میزان اکسیژن خون است. از آنجایی که این ویروس سیستم تنفسی را درگیر می کند، کاهش میزان اکسیژن خون متداول ترین عارضه ابتلا به این بیماری است. مطابق دستور العمل های پزشکی، کاهش میزان اکسیژن خون به زیر ۹۳ درصد، می تواند علایم اولیه ابتلا به کرونا را اثبات نماید. در این پست، روش ساخت یک دستگاه پالس اکسی متر سنجش و نمایش میزان اکسیژن خون به همراه نمایش ضربان قلب آموزش میدهیم. به کمک این دستکاه می توانید در صورت مشکوک بودن به ابتلا، از وضعیت خود آگاه شوید. در ادامه با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 


اکسیژن خون و ضربان قلب نرمال


همانطور که گفته شد، یکی از علائم ابتلا به بیماری کرونا، کاهش میزان اکسیژن خون است. در حالت عادی و برای یک فرد سالم، درصد وجود اکسیژن در خون، باید بالای ۹۳ درصد باشد. چنانچه کمتر از این مقدار، اکسیژن در خون وجود  داشته باشد، فرد مشکوک به بیماری کرونا خواهد بود. البته سایر علائم، نطیر سرفه خشک، تب و سردرد می تواند از علایم دیگر ابتلا به این بیماری باشد. اما میزان اکسیژن خون، در شرایط فعلی، امری مهم است.

ساخت دستگاه پالس اکسی متر با ESP8266 آردوینو - دیجی اسپارک

در رابطه با ضربان قلب، این مقدار در سنین مختلف، متفاوت خواهد بود.  مطابق جدول زیر،  میزان استاندارد ضربان قلب برای سنین مختلف، مشخص شده است.

میزان ضربان قلب و سطح اکسیژن خون در حالت طبیعی - دیجی اسپارک

مطابق جدول فوق، میزان ضربان قلب برای افراد نرمال بالای ۱۰ سال، ۶۰ الی ۱۰۰ در دقیقه است.

 


ماژول ESP8266


ماژول ESP8266، یک میکروکنترلر ۳۲ بیتی، با قابلیت اجرای سیستم عامل FREE RTOS و اتصال به شبکه است. در حقیقت این ماژول، در حکم یک (System On Chip) عمل می کند. از دیگر ویژگی های مثبت این ماژول، برنامه نویسی آن به کمک آردویینو است. به عبارت دیگر، برای کار و راه اندازی این ماژول، نیازی به یادگیری زبان برنامه نویسی جدید نداشته و با همان کدها و دستورات آردویینو می توانید از این ماژول استفاده نمایید. ماژول ESP8266 می تواند از سنسورها و ماژول هایی که با اردویینو راه اندازی می شود، پشتیبانی نماید. سنسور های دما، رطوبت، نمایشگرهای OLED و… همگی به سادگی با این ماژول راه اندازی می شوند.

 


معرفی سنسور MAX30100


سنسور ضربان قلب و پالس اکسی متر MAX30100، یک سنسور با خروجی سریال I2C است. اساس کار این سنسور، اندازی گیری میزان اکسیژن خون و ضربان قلب از طریق IR است. این سنسور دارای بازه تغذیه ولتاژ ۳٫۳ الی ۵ ولت است. این سنسور دارای کتابخانه برای راه اندازی بوده که کار با آن را بسیار جالب می سازد. از طرفی دیگر، مصرف انرژی این سنسور بسیار پایین بوده و به راحتی می توان آن را با باتری، به راه انداخت. سنسور ضربان قلب و پالس اکسی متر، یک سنسور کوچک است که توان مصرفی بسیار پایینی دارد. با توجه به اندازه کوچک سنسور، می توان یک دستگاه پالس اکسی متر کوچک و کارا، ساخت.

ماژول اکسی متر Max30100 راه اندازی با آردوینو - دیجی اسپارک

 


کتابخانه سنسور MAX30100 در آردوینو


در ابتدا نیاز است تا کتابخانه این سنسور را در آردویینو، نصب نمایید. برای این منظور، در ابتدا می بایست مطابق تصویر زیر، ابتدا بر روی گزینه Tools و سپس بر روی Manage libraries کلیک نمایید. پس از کلیک بر روی منوی فوق، با تصویر زیر رو به رو خواهید شد. در قسمت جستجو، عبارت max30100 را وارد نمایید. در ادامه، دو کتابخانه ظاهر می شود، شما کتابخانه ای که به کادر قرمز رنگ مشخص شده را انتخاب و نصب نمایید.

نصب کتابخانه سنسور MAX30100 در آردویینو - دیجی اسپارک

 


نمایشگر OLED


نمایشگرهای OLED نسل جدید از نمایشگرها در حوزه الکترونیک و کامپیوتر هستند. این نمایشگر ها در اندازه های ۳۲*۱۲۸ و یا بزرگتر ساخته می شوند. از این نمایشگر ها در ساعت های هوشمند، گجت های پوشیدنی و… به وفور استفاده می گردد. در این آموزش ما هم از این نمایشگر برای نمایش اطلاعات مربوط به میزان ضربان قلب و اکسیژن خون کاربر، استفاده می نماییم. برای راه اندازی و نحوه کار با این نمایشگر، پیشنهاد می کنم آموزش های منتشر شده در دیجی اسپارک(لینک آموزش ها، کلیک کنید) را به طور کامل مطالعه نمایید.

 


مبدل کاهنده ولتاژ lm2596


مبدل کاهنده LM2596، یک مبدل ولتاژ DC به DC است. به کمک این مبدل می توانید ولتاژ ورودی خود را به ولتاژ دلخواه خود در خروجی، تبدیل نمایید. با توجه به وجود یک مولتی ترن(ولوم) جهت تنظیم ولتاژ، می توان ولتاژ خروجی را بر مبنای نیاز خود، روی ولتاژ های ۳٫۳، ۵، ۳، ۱٫۸ و به طور کلی هر ولتاژی که مد نظر شماست، تنظیم نمایید. راه اندازی و کار با این ماژول بسیار ساده بوده و کافیست در ورودی تغذیه را متصل کرده و با ولوم، خروجی را تنظیم نمایید. این ماژول می تواند تا ۳ آمپر جریان به خروجی، بار دهد.

بخش تغذیه ساخت دستگاه پالس اکسی متر با آردوینو - دیجی اسپارک

 


رفع اشکال سطح منطقی سنسور MAX30100


سنسورهای MAX30100 دارای تغذیه ۱٫۸ ولتی هستند. به همین دلیل، بر روی این سنسور، یک رگولاتور قرار گرفته که می تواند تعذیه ۵ ولت و یا ۳٫۳ را به ولتاژ مورد نیاز این سنسور، تبدیل نماید. اما یک اشکال عمده در این سنسور، اینست که پایه های دیتای این سنسور، SCL و SDA، با مقاومت به پایه ۱٫۸ و نه ۵ ولت، پول آپ شده اند. به عبارت دیگر، سطح یک منطقی پایه های SCL و SDA این سنسور، ۱٫۸ ولت است. از طرفی، بردهای آردیینو با پردازنده AVR مثل برد آردویینو UNO، یک منطقی را از ۳ به بالا(در تغذیه ۵ ولت) در نظر می گیرند. بنابراین، در این حالت مشکل تداخل در سطوح منطقی را خواهیم داشت.

 

جهت دسترسی به این بخش، اشتراک اسپارکر پلاس تهیه کنید.

 

 


اتصالات مدار پالس اکسی متر


در این قسمت به بررسی شماتیک و اتصالات مدار پالس اکسی متر می پردازیم. در ابتدا تصویر شماتیک را مشاهده می نماییم.

اتصالات مدار پالس اکسی متر با ESP8266 و ماژول Max30100 - دیجی اسپارک

 

در ادامه، اتصالات مدار فوق را به صورت زیر، در پیش بگیرید. همچنین در نظر داشته باشید که خروجی مبدل ولتاژ حتما بر روی ولتاژ ۲٫۵ ولت، پیش از اتصال به قطعات، تنظیم شده باشد. در ادامه، اتصالات سنسور MAX30100 را مشاهده می نمایید.

پایه vin سنسور max30100 به پایه ۲٫۵ ولت خروجی مبدل ولتاژ lm2596

پایه GND سنسور MAX30100 به پایه GND خروجی مبدل ولتاژ

پایه SCL سنسور MAX30100 به پایه GPIO5 ماژول ESP8266

پایه SDA سنسور MAX30100 به پایه  GPIO4 ماژول ESP8266

همچنین، اتصالات نمایشگر OLED را به صورت زیر، در نظر بگیرید.

پایه VCC به پایه خروجی ۲٫۵ ولت مبدل ولتاژ LM2596

پایه GND به پایه GND خروجی مبدل ولتاژ

پایه SCL به پایه GPIO12 ماژول ESP8266

پایه SDA به پایه GPIO13 ماژول ESP8266

همچنین، تغذیه ماژول ESP8266 نیز ۲٫۵ ولت بوده و از همان خروجی مبدل کاهنده ولتاژ، تامین می شود.

 


کدهای ساخت پالس اکسی متر


در این قسمت، به بررسی کدهای پروژه، می پردازیم. برای آپلود کدهای زیر، حتما در نظر داشته باشید که باید از مبدل سریال به USB برای پروگرام کردن ماژول ESP8266 استفاده نمایید. همچنین، جهت آپلود کد، ابتدا پایه GPIO0 را به گراند متصل کرده و سپس ماژول را از طریق پایه ریست(با اتصال پایه ریست به گراند برای یک لحظه و سپس جداسازی آن از گراند)، پروگرام نمایید. همچنین، حتما در نظر داشته باشید که برد ESP8266 را در نرم افزار آردویینو انتخاب کرده باشید.

 

جهت دسترسی به این بخش، اشتراک اسپارکر پلاس تهیه کنید.

 

 


اجرای پروژه پالس اکسی متر


در این قسمت، به اجرای پروژه می پردازیم. قبل از هرچیز، در نظر داشته باشید که انگشت خود را به درستی بر روی سنسور قرار دهید. در غیر اینصورت سنسور عملکرد صحیح نخواهد داشت. به عنوان نکته دوم، برای عملکرد بهتر و دقیق‌تر، لطفا از ابتدای شروع شمارش ۲۵ ثانیه، انگشت خود را بر روی سنسور قرار دهید و تا پایان شمارش و اعلام نتیجه، صبر کنید. در ادامه، چنانچه همه چیز درست پیش رود، عبارت BEAT پشت سر هم و بدون وقفه به نمایش در می آید. در غیر اینصورت، چنانچه وقفه مشاهده کردید، یعنی دست شما به درستی بر روی سنسور قرار نگرفته و نتیجه صحیح نخواهد بود.

مقادیر سنسور Max30100 در سریال مانیتور آردوینو - دیجی اسپارک

 

در ادامه شکل صحیح قرار گیری انگشت بر روی سنسور را مشاهده می نمایید. برای عملکرد بهتر، انگشت دست چپ را مشابه تصویر زیر، بر روی سنسور قرار دهید.

راه اندازی سنسور Max30100 با برد ESP8266 آردوینو - دیجی اسپارک

در ادامه، با اندازه گیری ضربان قلب و میزان اکسیژن خون، این دو پارامتر بر روی نمایشگر نشان داده خواهد شد. با توجه به تصویر زیر، پارامتر s بیانگر میزان اکسیژن خون و یا همان SPO2 و پارامتر h بیانگر ضربان قلب و یا herat rate است.

پروژه پالس اکسی متر با ESP8266 و نمایشگر OLED - دیجی اسپارک

 


تحلیل کدهای برنامه


در این قسمت به بررسی کدهای برنامه می پردازیم. البته، درون کدهای این پروژه، به میزان کافی کامنت قرار گرفته و کدها کامل تشریح شده اند. در اینجا نیز، به طور خلاصه به بررسی کدهای به کار رفته در پروژه می پردازیم.  در ابتدا می بایست کتابخانه های مربوط به نمایشگر و سنسور پالس را به پروژه، اضافه نماییم. پس از این مورد، نوبت به تنظیمات اولیه نمایشگر و سنسور پالس در تابع set up می رسد. همانطور که پیشتر بیان شد، دستگاه برای خواندن اطلاعات مربوط به پالس، ۲۵ ثانیه صبر می کند تا اطلاعات کالیبره شده و دقیقتر را نمایش دهد. این مقدار، توسط متغیر زیر، در ابتدا برنامه، کنترل می گردد.

پس از طی این زمان، داده های مربوط به پالس و ضربان قلب، نمایش داده خواهد. البته در نظر داشته باشید که با قرار گرفتن انگشت بر روی سنسور، عبارت BEAT در سریال مانیتور، نمایش داده خواهد شد.

 


قطعات مورد نیاز


ماژول ESP8266

ماژول پالس اکسی متر MAX30100

مبدل ولتاژ  کاهنده LM2596

نمایشگر OLED

 


جمع بندی


در این آموزش به طراحی و پیاده سازی یک دستگاه پالس اکسی متر به همراه نمایش ضربان قلب، پرداختیم. برای این منظور، از سنسور MAX30100 که مخصوص اندازه گیری ضربان قلب و اکسیژن خون طراحی شده، بهره بردیم. این سنسورها دارای خروجی دیتا از نوع I2C هستند. اما در طراحی این سنسورها، یک مشکل وجود داشته که نمی توانند با آردویینو به درستی ارتباط برقرار نمایند. این اشکال مربوط به خروجی سطح ولتاژ منطقی این سنسورهاست که در سایت های مختلف، تغییر در برد و لحیم کاری پیشنهاد شده است. اما در این آموزش، یک روش کارا معرفی شده که هیچ نیازی به تغییر در برد سنسور نبوده و می توان به سادگی با سنسور ارتباط برقرار نمود. از طرفی، با توجه به قطعات معرفی شده در این آموزش، می توانید یک دستگاه پالس اکسی متر با اندازه کوچک که می تواند با باتری نیز فعال شود، بسازید.

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 

درباره نویسنده

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

تبادل نظر و رفع عیب با ثبت دیدگاه

۴ دیدگاه