سنسور ضربان قلب Pulse Sensor
سنسور ضربان قلب به صورت پالسی است و با قرار دادن انگشت نبض بر روی سنسور پالس ارسال میکند. سنسور ضربان قلب به صورت آنالوگ عمل میکند. روش نمایش پالس به صورت خطی توسط تابع های کتابخانه OLED است که با تغییر عدد پالس به صورت آنالوگ خط ها تغییر خواهد کرد. سنسور ضربان قلب با طراحی کاربردی و دقیقا متناسب با انگشت دست برای اندازه گیری ضربان قلب است. از این سنسور برای ساخت گجت های پوشیدنی، در تولید، برای تست موبایل برای دولوپرها استفاده میشود. مهمترین مزیت سنسور کاربری آسان جهت کار با برد آردوینو و دیگر بردها مانند ESP است که کار را برای ما ساده تر کرده است. بر روی سنسور، یک عدد سنسور LIGHT PHOTO قرار دارد که مشابه همان سنسورهایی است که در ساخت موبایل و گجت های هوشمند استفاده میشود. عملکرد سنسور APDS-9008 به صورت خروجی آنالوگ است و برای راه اندازی با میکروکنترلرها به پایه آنالوگ نیاز خواهیم داشت. تغذیه سنسور ۱٫۶ تا ۵٫۵ ولت است. خروجی سنسور به صورت خطی است.
مشخصات فنی و ویژگی های کلی سنسور ضربان قلب
ولتاژ کاری 3 الی 5.5
جریان مصرفی بسیار کم و در حدود 4 میلی آمپر
سازگاری با بردهای آردوینو و ESP
سادگی در راه اندازی همراه با کتابخانه
کاربردهای سنسور ضربان قلب
گجت های هوشمند
سیستم های کنترل سلامت
سیستم های اعلام هشدار وضعیت نوزادان و سالمندان
ثبت کننده پارمترهای سلامت در پروژه های تحقیقاتی
بررسی پایه های ماژول ضربان قلب
ماژول ضربان قلب دارای سه پایه VCC, GND, Pulse است. پایه پالس از طریق پایه آنالوگ به برد متصل میشود.
راه اندازی سنسور ضربان قلب APDS-9008 با آردوینو
برای تست این برنامه از بردهای آردوینو مانند برد آردوینو UNO , NANO, MEGA2560 استفاده کنید. پروتکل ارتباطی سنسور ضربان قلب به صورت آنالوگ است و فقط یک پایه آنالوگ کافی است. اما برای استفاده از نمایشگر OLED به دو پایه SDA, SCL نیاز داریم که به ترتیب پایه A4 , A5 میشوند که تمامی بردهای معرفی شده از پروتکل I2C پشتیبانی میکنند. در این آموزش از برد آردوینو مدل ARDUINO UNO استفاده شده است.
#include <Adafruit_SSD1306.h> // فراخوانی کتابخانه OLED
#define OLED_Address 0x3C // مشخص کردن درایور I2C برای نمایشگر
Adafruit_SSD1306 digispark(128, 64); //مشخص کردن رزولوشن نمایشگر
int x=0; // نمایش داده در محور X
int lastx=0; // آخرین مقادیری که محور X داشته است
int lasty=0; // نمایش داده در محور Y
// استفاده از millis
long lastmillis=0;
long currentmillis;
bool BPMTiming=false;
bool BeatComplete=false;
int BPM=0;
#define UpperThresholdheartrate 560 // مشخص کردن حد بالا
#define LowerThresholdheartrate 530 // مشخص کردن حد پایین
// نمایش قلب
const unsigned char Heartrate [] PROGMEM = {
۰x00, 0x00, 0x18, 0x30, 0x3c, 0x78, 0x7e, 0xfc, 0xff, 0xfe, 0xff, 0xfe, 0xee, 0xee, 0xd5, 0x56,
۰x7b, 0xbc, 0x3f, 0xf8, 0x1f, 0xf0, 0x0f, 0xe0, 0x07, 0xc0, 0x03, 0x80, 0x01, 0x00, 0x00, 0x00
};
void setup() {
//فراخوانی کلاس oled
digispark.begin(SSD1306_SWITCHCAPVCC, OLED_Address);
digispark.clearDisplay();
digispark.setTextSize(2);
digispark.drawBitmap(85,50, Heartrate, 16, 16, WHITE);
}
void loop()
if(x>127) // شروع محور x
{
{
digispark.clearDisplay();
x=0; // اولین داده ای که محور ایکس دارد
lastx=x; // با هر بار آپدیت داده در محور ایکس با مقدار قبلی برابر میشود
}
currentmillis=millis(); // شروع millis
int value=analogRead(0);
digispark.setTextColor(WHITE);
int y=60-(value/16); // دریافت داده در محور Y
digispark.writeLine(lastx,lasty,x,y,WHITE); // کشیدن خط در نمایشگر
lasty=y; // به روز رسانی داده در محور y
lastx=x;// به روز رسانی داده در محور x
if(value>UpperThresholdheartrate)
{
if(BeatComplete)
{
BPM=currentmillis-lastmillis; // به روز رسانی بازه زمانی برای دریافت داده از سنسور
BPM=int(60/(float(BPM)/1000)); // نمایش داده bpm
BPMTiming=false;
BeatComplete=false;
tone(9,1000,250); // فعال سازی بیزر
}
if(BPMTiming==false)
{
lastmillis=millis();
BPMTiming=true;
}
}
if((value<LowerThresholdheartrate)&(BPMTiming)) // اگر داده دریافتی از حد پایین کمتر باشد و مدت زمان دیبانس هم سپری شده باشد
BeatComplete=true; //بیت را پر کرده و وضعیت را صحیح نمایش دهد.
digispark.writeFillRect(0,50,128,16,BLACK);
digispark.drawBitmap(85,50, Heartrate, 16, 16, WHITE);
digispark.setCursor(0,50);
digispark.print("BPM:");
digispark.print(BPM);
digispark.display();
x++;
}
مشخصات
- کاربری
- مناسب برای استفاده صنعتی
- نوع ماژول
- بیومتریک - Biometric
- تعداد قطعات
- 15 عدد
- ابعاد فیبر
- دایره ای به قطر 15 میلی متر
- سطح تجربه مورد نیاز
- نیمه حرفه ای
- ابعاد
- قطر: 15mm
- ولتاژ ورودی
- 5 ولت DC
- ولتاژ خروجی
- 0.3 ولت تا ولتاژ تغذیه، به طور معمول نصف ولتاژ تغذیه
- طول کابل
- 30 سانتی متر
- فیبر مدار چاپی
- فایبرگلاس دورو متالیزه
- دمای نگهداری
- 20- تا 85+ درجه سانتی گراد
- جریان
- حداکثر 4 میلی آمپر
- چاپ مس
- دارای چاپ مشکی
- تعداد پایه ها
- 3 پایه
- اقلام همراه محصول
- 3 رشته کابل فلت با رنگ بندی
- ترتیب پایه ها
- طبق چاپ راهنما و یا دیتاشیت
- سازنده
- Pulsesensor
- سنسور
- سنسور نبض
- سایر قابلیتها
- سنجش نبض با استفاده از جابجایی فشار خون
- نوع سنسور
- ضربان قلب
امکان راه اندازی چند سنسور DHT با ESP8266 با استفاده از MicroPython وجود دارد. سنسورهای DHT با پروتکل دیجیتال و از طریق پایههای GPIO قابل اتصال به میکروکنترلرها هستند.
برای ساخت یک سیستم کنترل دما با برد میکروکنترلر ESP32، به موارد زیر نیاز دارید:
یک برد میکروکنترلر ESP32
یک سنسور دما مثل DHT DS18B20
یک المان سرد کننده
با استفاده از کتابخانه DHT.h، میتوانید از سنسور دما برای خواندن دمای محیط استفاده کنید. سپس، میتوانید از این دما برای کنترل المان گرمایشی یا سرمایشی استفاده کنید.
در خصوص برنامه نویسی از کتابخانه DHT و در صورت نیاز کتابخانه وای فای برای ارسال دادهها به پلتفرم IoT باید استفاده کنید.