عرض نبضات القلب ❤️❤️ باستخدام مستشعر النبض Heartbeat مع شاشة OLED و Buzzer الجرس - DIY Channel3

DIY Channel3

Arduino│ESP8266│ESP32│Drone│Robot

عرض نبضات القلب ❤️❤️ باستخدام مستشعر النبض Heartbeat مع شاشة OLED و Buzzer الجرس

مشاركة هذا

 


# Pulse_Sensor #Arduino #OLED #DIY
-------------------------------------------
مستشعر النبض هو مستشعر معدل ضربات القلب للتوصيل والتشغيل لـ Arduino. يمكن استخدامه من قبل الطلاب والفنانين والرياضيين والصناع ومطوري الألعاب والهواتف المحمولة الذين يرغبون في دمج بيانات معدل ضربات القلب الحية بسهولة في مشاريعهم. الجوهر هو دائرة تضخيم ضوئي متكاملة ومستشعر دائرة لإزالة الضوضاء. اشبك مستشعر النبض في شحمة أذنك أو طرف إصبعك وقم بتوصيله في Arduino ، يمكنك الاستعداد لقراءة معدل ضربات القلب. أيضًا ، يحتوي على كود Arduino التجريبي الذي يجعله سهل الاستخدام. مع وجود الكثير من الشركات الناشئة في مجال تكنولوجيا الرعاية الصحية ، فإن Arduino جنبًا إلى جنب مع IoT و Embedded System يحدثان ثورة سريعة في صناعة الرعاية الصحية. في هذا المشروع ، سوف نتعلم كيفية تصميم شاشة ECG باستخدام مستشعر النبض مع OLED و Arduino. سنستخدم شاشة OLED 0.96 بدقة 128 × 64 لعرض الموجي BPM و ECG. يستخدم I2C OLED سلكين فقط ، أي SDA و SCK للاتصال التسلسلي. يقوم Arduino Sketch الذي يعمل على الجهاز بتنفيذ الوظائف المختلفة للمشروع. تقوم هذه الوظائف بقراءة بيانات المستشعر وتحويلها إلى سلاسل وتمريرها إلى اتصال I2C وعرض معدل النبض المقاس في شاشة I2C OLED. قبل البدء ، يمكنك التحقق من مشاريعنا السابقة المتعلقة بـ Pulse Sensor إذا كنت مبتدئًا:
1.رصد معدل ضربات القلب / النبض / BPM باستخدام مستشعر النبض والاردوينو. 2-مراقبة معدل النبض عبر الإنترنت باستخدام ThingSpeak & ESP8266. 3.نظام مراقبة صحة المريض المستند إلى إنترنت الأشياء باستخدام ESP8266 & Arduino.


- مخطط الرسم البياني :


-
كود اردوينو :

// Project :  Display BPM using Pulse Sensor with OLED and Arduino
// By : DIY Channel / ABDELLATIF MIMOUNE
// My Youtube Channel : https://www.youtube.com/c/DIYChannel2019

#include <Adafruit_SSD1306.h>
#define OLED_Address 0x3C 
Adafruit_SSD1306 oled(128, 64); 
 
int a=0;
int lasta=0;
int lastb=0;
int LastTime=0;
int ThisTime;
bool BPMTiming=false;
bool BeatComplete=false;
int BPM=0;
#define UpperThreshold 560
#define LowerThreshold 530
 
void setup() {
oled.begin(SSD1306_SWITCHCAPVCC, OLED_Address);
oled.clearDisplay();
oled.setTextSize(2);
}
 
void loop()
{
if(a>127)
{
oled.clearDisplay();
a=0;
lasta=a;
}
 
ThisTime=millis();
int value=analogRead(0);
oled.setTextColor(WHITE);
int b=60-(value/16);
oled.writeLine(lasta,lastb,a,b,WHITE);
lastb=b;
lasta=a;
 
if(value>UpperThreshold)
{
if(BeatComplete)
{
BPM=ThisTime-LastTime;
BPM=int(60/(float(BPM)/1000));
BPMTiming=false;
BeatComplete=false;
tone(8,1000,250);
}
if(BPMTiming==false)
{
LastTime=millis();
BPMTiming=true;
}
}
if((value<LowerThreshold)&(BPMTiming))
BeatComplete=true;
 
oled.writeFillRect(0,50,128,16,BLACK);
oled.setCursor(0,50);
oled.print("BPM:");
oled.print(BPM);
 
oled.display();
a++;
}

No comments:

Post a Comment