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

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

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

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

 


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


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

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

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

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

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

 


ماژول ESP8266


ماژول ESP8266، یک میکروکنترلر ۳۲ بیتی، با قابلیت اجرای سیستم عامل FREE RTOS و اتصال به شبکه است. در حقیقت این ماژول، در حکم یک (System On Chip) عمل می کند. از دیگر ویژگی های مثبت این ماژول، برنامه نویسی آن به کمک آردویینو است. به عبارت دیگر، برای کار و راه اندازی این ماژول، نیازی به یادگیری زبان برنامه نویسی جدید نداشته و با همان کدها و دستورات آردویینو می توانید از این ماژول استفاده نمایید. ماژول ESP8266 می تواند از سنسورها و ماژول هایی که با اردویینو راه اندازی می شود، پشتیبانی نماید. سنسور های دما، رطوبت، نمایشگرهای OLED و… همگی به سادگی با این ماژول راه اندازی می شوند.ESP8266 یک میکروکنترلر وای‌فای (Wi-Fi) مبتنی بر تکنولوژی SoC (سیستم در یک تراشه) است که توسط شرکت Espressif Systems توسعه داده شده است. این میکروکنترلر از معماری Tensilica Xtensa LX106 استفاده می‌کند و امکانات کاملی را برای اتصال به شبکه‌های بی‌سیم و اجرای برنامه‌های کاربردی اینترنت اشیاء (IoT) فراهم می‌کند.

 

  • ESP8266 دارای قابلیت اتصال به شبکه‌های بی‌سیم با استاندارد ۸۰۲٫۱۱ b/g/n است. این به شما اجازه می‌دهد تا به سادگی به شبکه‌های بی‌سیم متصل شوید و داده‌ها را از طریق اینترنت ارسال و دریافت کنید.

 

  • با استفاده از پردازنده Tensilica Xtensa LX106 با فرکانس ۸۰ مگاهرتز، ESP8266 دارای قدرت پردازش قابل توجهی است و می‌تواند برنامه‌های پیچیده را اجرا کند.

 

  • ESP8266 دارای حافظه فلش داخلی است که به شما امکان ذخیره‌سازی برنامه‌ها و داده‌های کاربردی را می‌دهد. مقدار حافظه فلش متفاوت است و می‌توانید نسخه‌های مختلف با ظرفیت‌های متفاوت را انتخاب کنید.

 

  •  ESP8266 دارای پورت‌های GPIO (ورودی/خروجی عمومی) است که به شما امکان اتصال به اجزای خارجی مانند سنسورها، کنترل‌کننده‌ها و دیگر وسایل را می‌دهد.

 


معرفی سنسور MAX30100


سنسور MAX30100 یک سنسور فشار خون و اکسیژن خون غیرتماسی است که توسط شرکت Maxim Integrated تولید می‌شود. این سنسور با استفاده از تکنولوژی پالس اکسیمتری با قابلیت تشخیص نبض و میزان اکسیژن خون در بدن عمل می‌کند.سنسور MAX30100 دارای دو بخش اصلی است: یک سنسور قلب با الگوریتم دیجیتالی برای تشخیص نبض و یک سنسور LED برای اندازه‌گیری سطح اشباع اکسیژن خون. این سنسور از ماژول فوتودیود برای تشخیص نور اندازه‌گیری شده توسط انعکاس از بافت بدن استفاده می‌کند.

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

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

 

 

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

 


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


کتابخانه Max30100Lib از Oxullo Intersecans یک کتابخانه نرم‌افزاری است که برای استفاده از سنسور MAX30100 در پلتفرم Arduino توسعه داده شده است. این کتابخانه امکانات لازم برای کنترل و خواندن داده‌های سنسور MAX30100 را فراهم می‌کند.کتابخانه Max30100Lib با استفاده از رابط I2C با سنسور ارتباط برقرار می‌کند و امکان خواندن داده‌های نبض و سطح اشباع اکسیژن خون را فراهم می‌کند.

 این کتابخانه امکاناتی مانند تنظیمات سرعت نمونه‌برداری، فیلترها و آستانه‌ها را نیز فراهم می‌کند.برای استفاده از کتابخانه Max30100Lib، شما می‌توانید آن را از مخزن Oxullo Intersecans در GitHub دریافت کنید. همچنین، مستندات و نمونه کد‌های مربوط به استفاده از این کتابخانه نیز در دسترس است که به شما کمک می‌کند درک بهتری از نحوه استفاده از سنسور MAX30100 در پلتفرم Arduino پیدا کنید.در ابتدا نیاز است تا کتابخانه این سنسور را در آردویینو، نصب نمایید.

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

 

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

#include <Wire.h>
#include “MAX30100_PulseOximeter.h”

PulseOximeter pox;

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

// متصل کردن سنسور MAX30100 به پین‌های I2C آردوینو
Wire.begin();

// شروع کردن سنسور
pox.begin();

// تنظیم نرخ نمونه‌برداری (به طور پیش‌فرض ۱۰۰ سیکل در ثانیه)
pox.setSampleRate(100);

// تنظیم LED IR به شدت ۱۱ (مقدار پیش‌فرض)
pox.setIRLedCurrent(MAX30100_LED_CURR_11MA);
}

void loop() {
// به‌روزرسانی داده‌های سنسور
pox.update();

// دریافت مقدار نبض
if (pox.getHeartRateAvailable()) {
Serial.print(“Heart rate: “);
Serial.print(pox.getHeartRate());
Serial.println(” bpm”);
}

// دریافت مقدار اشباع اکسیژن خون
if (pox.getSpO2Available()) {
Serial.print(“SpO2: “);
Serial.print(pox.getSpO2());
Serial.println(” %”);
}
}

 

این نمونه کد از کتابخانه “MAX30100_PulseOximeter.h” استفاده می‌کند تا از سنسور MAX30100 داده‌های نبض و اشباع اکسیژن خون را دریافت کند. کد شروع و متصل کردن سنسور را انجام می‌دهد، سپس در حلقه اصلی، داده‌های سنسور را به‌روزرسانی می‌کند و مقادیر نبض و اشباع اکسیژن را از سنسور دریافت و آنها را در کنسول سریال آردوینو چاپ می‌کند. این کد به شما امکان می‌دهد داده‌های نبض و اشباع اکسیژن خون را در زمان واقعی مشاهده کنید.

 مهمترین کلاس در کتابخانه “MAX30100_PulseOximeter.h” کلاس PulseOximeter است. در این کد، ابتدا یک شیء PulseOximeter با نام pox ایجاد می‌شود. سپس در تابع setup، سنسور MAX30100 به پین‌های I2C آردوینو متصل می‌شود و شروع می‌شود. همچنین، نرخ نمونه‌برداری و شدت LED IR نیز تنظیم می‌شوند.

 در حلقه loop، ابتدا با فراخوانی تابع pox.update()، داده‌های سنسور به‌روزرسانی می‌شوند. سپس با استفاده از توابع pox.getHeartRateAvailable() و pox.getSpO2Available()، بررسی می‌شود که آیا داده‌های نبض و اشباع اکسیژن در دسترس هستند یا خیر. در صورتی که داده‌های مربوطه در دسترس باشند، با استفاده از توابع pox.getHeartRate() و pox.getSpO2()، مقادیر نبض و اشباع اکسیژن خون دریافت و در کنسول سریال چاپ می‌شوند.

 این نمونه کد به شما یک پایه‌ی عملکردی برای استفاده از کتابخانه “MAX30100_PulseOximeter.h” در آردوینو ارائه می‌دهد. با استفاده از این کد، می‌توانید داده‌های نبض و اشباع اکسیژن خون را از سنسور MAX30100 خوانده و برای کاربردهای خود استفاده کنید.

 


نمایشگر OLED


نمایشگر OLED SSD1306 یک نمایشگر کاراکتری مبتنی بر تکنولوژی OLED است. این نمایشگر دارای صفحه‌ای کوچک و با کیفیت است که قابلیت نمایش متن و گرافیک را دارد. SSD1306 یک کنترلر سریال است که به طور خاص برای کنترل نمایشگرهای OLED طراحی شده است.

  • نوع نمایشگر: OLED (Organic Light Emitting Diode)
  • سایز صفحه نمایش:  ۱۲۸×۶۴ یا ۱۲۸×۳۲ پیکسل
  • رزولوشن: در حالت‌های ۱۲۸×۶۴ و ۱۲۸×۳۲ پیکسل.
  • رنگ نمایش: نمایشگرهای OLED به صورت سفید یا آبی/زرد
  • رابط: این نمایشگرها از رابط I2C یا SPI
  • ولتاژ کاری: ولتاژ کاری ۳٫۳V یا ۵V دارند.
  • میزان مصرف جریان: در حدود ۱۰-۲۰ میلی‌آمپر
  • کنتراست قابل تنظیم: بسیاری از مدل‌ها امکان تنظیم کنتراست صفحه نمایش را دارند.

 


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


مبدل کاهنده ولتاژ LM2596 یک مبدل DC-DC است که ولتاژ DC ورودی را به ولتاژ DC خروجی کاهش می‌دهد. این مبدل برای تغذیه قطعات الکترونیکی با ولتاژ پایین، مانند مدارهای مجتمع و میکروکنترلرها، استفاده می‌شود.LM2596 دارای یک بخش کنترلی است که به ولتاژ و جریان خروجی نظارت می‌کند و تنظیمات مورد نیاز را اعمال می‌کند. این مبدل می‌تواند ولتاژ ورودی تا حدود ۴۰ ولت را تا ولتاژ خروجی قابل تنظیمی که معمولاً در محدوده ۱٫۲۵ تا ۳۵ ولت قرار دارد، کاهش دهد.

 از LM2596 می‌توان در مدارهایی استفاده کرد که نیاز به ولتاژ پایدار و قابل تنظیم دارند. این مبدل دارای قابلیت حفاظت در برابر اتصال کوتاه، حفاظت حرارتی و حفاظت ولتاژ بالا است.برای استفاده از مبدل کاهنده ولتاژ LM2596، نیاز به تغذیه ولتاژ ورودی، تنظیم ولتاژ خروجی و اتصال بار مورد نظر است.

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

 

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

 


رفع اشکال سطح منطقی سنسور پالس بدون نیاز به تغییر فیزیکی


سنسورهای 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 می رسد. همانطور که پیشتر بیان شد، دستگاه برای خواندن اطلاعات مربوط به پالس، ۲۵ ثانیه صبر می کند تا اطلاعات کالیبره شده و دقیقتر را نمایش دهد. این مقدار، توسط متغیر زیر، در ابتدا برنامه، کنترل می گردد.

#define REPORTING_PERIOD_MS    25000

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

 


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


ماژول ESP8266

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

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

نمایشگر OLED

 


جمع بندی


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

 

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

 

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

معین صابری

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

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

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

۳۲ دیدگاه

    • سلام
      چنانچه دقت کنید، پارامتر ضربان قلب را مشاهده خواهید کرد. در نمایشگر oled, عدد قرارگرفته بعد از h, بیانگر ضربان قلب است. در متن آموزش نیز کامل اشاره شده است!!

    • سلام و ممنونم
      ضربان قلب، میزان و نرخ تپندگی قلب را نشان می دهد. اکسی متر و یا همان اکسیژن سنج خون، میزان اکسیژن موجود در خون را نشان می دهد. چنانچه میزان اکسیژن خون از حدی کمتر شود، خطر درگیر شدن ریه وجود دارد.

  • سلام
    من داخل کد هیچ خطی ندیدم که متوجه بشم پایه های ماژول پالس اکسی متر به پایه های شماره چند از ماژول ESP8266 وصل شده؟
    از شماتیک مشخصه اتصال پایه ها ولی مسیه اینه که داخل کد چطور تعریف شده این قضیه؟

    • سلام
      از آنجاییکه ارتباط سنسور پالس اکسی متر با ESP8266 از طریق پورت I2C سخت افزاری برقرار می گردد، لذا نیاز به تعریف پایه های I2C درون کدها نیست. کتابخانه این سنسور به صورت خودکار از طریق پورت I2C سخت افزاری ارتباط را برقرار می سازد. پورت I2C سخت افزاری در بردهای ESP8266 نیز مطابق تصویر شماتیک، GPIO4 و GPIO5 هستند.

  • سلام
    ببخشید یک سوال
    اگر بخواهیم به اردوینو uno دو ماژول که هر دو با پروتکل i2c کار می کنند متصل کنیم، با توچه به این که فقط دو پایه برای اتصال i2c رو برد ارپوینو داریم، چگونه باید اتصالات سخت افزاری را انجام دهیم و در نوشتن برنامه باید چه نکاتی را اعمال کنیم؟
    بابت این که سوالم ارتباط مستقیمی به این اموزش ندارد، عدر خواهی میکنم
    سپااااااس

    • سلام و خواهش میکنم
      در نظر داشته باشید که شما از طریق پورت I2C، تا ۱۲۸ دستگاه را می توانید درایو کنید. به عبارت دیگر، بر روی یک پورت I2C و تنها با استفاده از همان دو پایه، می توان تعداد زیادی دستگاه را متصل نمود. در نظر داشته باشید که هر دستگاه I2C، دارای یک آدرس منحصر به فرد است. بنابراین، دستگاه ها باید جهت اتصال، آدرس های متفاوت داشته باشند. جهت اطلاعات بیشتر، پیشنهاد می کنم آموزش زیر ا مطالعه نمایید.
      آموزش پورت I2C آردوینو

  • سلام و خسته نباشید
    کدهای ارسال شده رو تو سیستم وارد کردم اما چند تا سئوال دارم:
    ۱- درستور ESP.restart در کامپایل کردن پیام خطا میده. پطور باید رفع کنیم؟
    ۲- آیا نیاز به اضافه کردن کتابخانه esp8266 به برنامه نیست؟
    ۳-وقتی دستور ESP.restart رو حذف می کنم ، خطایی رو پیدا نمی کنه اما پیام زیر رو میده:
    Erorr compiling for board arduino uno.
    global variables use 2056 bytes (100%) of dnamic memory,leaving -17 yte for local variables. maximum is 2048 bytes
    این مشکل رو چطور میتونیم رفع کنیم؟
    ۴- از نظر سخت افزاری این پروژه به برد اردینو وصل میشه؟ اگر نه پس چطور باید پروژه رو پروگرام بکنیم؟
    ممنون محبت تون

    • سلام
      دلیل خطاها این است که شما برای برد اردوینو قصد کامپایل دارید، حال اینکه این پروژه برای ESP8266 توسعه یافته است. دلیل این موضوع هم بحث تفاوت سطح منطقی سنسور است که در آموزش به آن پرداخته شده. همچنین، با توجه به خطای ارسالی از سوی شما، کدهای این پروژه مناسب اردوینو UNO نیست چراکه ۱۰۰ درصد فضای حافظه آردوینو را اشغال کرده و عملا برد در این حالت از پایداری خارج می شود.

      • ممنون از وقتی که گذاشتید
        اگه زحمت نیست راهنمایی م کنید که چطور باید این مشکل رو حل کنم؟
        مراحل کاری که باید انجام بدم رو توضیح بدید ممنونتون میشم
        تو آموزش تون متوجه نشدم چطور باید esp8266 رو پروگرام کنم
        ممنون که راهنمایی م می کنید
        در پناه حق

        • سلام و از لطف شما ممنونم
          جهت پروگرام کردن ماژول ESP8266، پیشنهاد می کنم آموزش زیر را مطالعه نمایید:
          آموزش پروگرام کردن ESP8266، کلیک کنید
          توجه داشته باشید که برای برنامه نویسی ESP8266 در آردوینو، می بایست ESP8266 را در نرم افزا آردوینو نصب کرده باشید.
          موارد را تست و بررسی کرده و نتیجه را از همین طریق، جهت راهنمایی های بیشتر، اطلاع رسانی کنید.

  • سلام.خسته نباشِد.اگر بخوام این ماژول رو مستقیما با برد آردوینو uno راه اندازی کنم نحوه ی اتصال پایه ها به چه صورت خواهد بود؟!!آیا در این حالتم نیاز به رگولاتور lm2596 هست برای کاهش سطح ولتاژ یا که میشه سنسور رو مستقیما به تغذیه۳٫۳ ولت خود برد متصل کرد؟و سوم اینکه مقدار مقاومت های پول آپ در این حالت باید ۴٫۷ کیلو اهم برای sdaوscl باشه؟
    ممنون میشم جواب بدین

    • سلام
      با توجه به ساختار این سنسور، اساسا نمی توان آن را با برد آردوینو راه اندازی کرد. تنها راه برای راه اندازی سنسور با برد آردوینو، تغییر فیزیکی در ساختار آن و تغییر مقاومت هاست. توجه داشته باشید که راه اندازی این سنسور در صورتیکه نمی خواهید تغییر فیزیکی در آن ایجاد کنید، فقط مطباق روال گفته شده در آموزش صورت می گیرد.

  • سلام و خسته نباشید
    با برد MAX30102 هم میشه این پروژه رو ساخت؟
    اگر با آردینو نانو ورژن ۳ یا FT232RLاستفاده کنم باز هم به مبدل ولتاژنیاز هست؟
    این مدل آردینو ورودی یو اس بی داره ینی میتونم به جای باطری ،مستقیم به یو اس بی وصل کنم؟

  • سلام
    ممنون از اموزش خوبتون
    دوتا سوال داشتم
    یک این که این برد سفیدی که همه ی قطعات روش سوار هستن چی نام داره و ایا تو سایت برای فروش وجود داره؟
    و سوال دوم اینکه محصولات مورداستفاده رو که نام بردین به قطعاتی که در اموزش فعال سازی برد esp826 نام بردین مثل ماژول مبدل USB to TTL CP2102 با درایور نصب اشاره نکردین
    الان برای ساخت این پالس اوکسی متر به طور کامل و راه اندازیش باید این قطعات رو هم تهیه کنیم؟

  • ببخشید میشه طریقه ی راه اندازی و استفاده از lm2596 و oled رو برای این پرژه بفرمایید؟
    الان باید طبق اموزشی که تو لینک lm2596 وجود داره با اداپتورو غیره منبع تغزیه بسازیم اول باهاش بعد استفاده کنیم؟
    و این که این پروژه نیاز به کلید و باتری هم داره؟ چون جایی بهش اشاره نشده

    ممنون میشم در اسرع وقت جواب بدین

  • سلام وقت بخیر، برای بستن مدار این پروژه نیاز به انجام لحیم کاری خاصی روی قطعات معرفی شده هست؟ یا فقط باید از طریق بردبورد و سیم جامپر اتصال قطعات انجام بشه؟

    • با سلام
      عموما بستگی به نوع ماژول‌ها دارد. برخی از این ماژول‌ها نیازمند لحیم کاری پایه ها را دارند. در کل برای اجرای پروژه‌های این سطحی، لحیم کاری یکی از ارکان عمومی خواهد بود.

      • برای این ماژول هایی که شما استفاده کردین لحیم کاری انجام دادین ؟ چون من هم برای پروژه‌م میخواستم دقیقا از همین قطعات استفاده کنم