فهرست مطالب:
- مرحله 1: مدار
- مرحله 2: کد پردازش سیگنال و ارتباطات سرور
- مرحله 3: سرور و ارتباطات داده
- مرحله 4: برنامه Android
- مرحله 5: نتیجه گیری
تصویری: مانیتور ضربان قلب IOT (ESP8266 و برنامه Android): 5 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
به عنوان بخشی از پروژه سال آخر ، می خواستم دستگاهی طراحی کنم که ضربان قلب شما را کنترل کند ، داده های شما را روی سرور ذخیره کند و هنگامی که ضربان قلب شما غیرطبیعی بود از طریق اعلان به شما اطلاع دهد. ایده پشت این پروژه زمانی ایجاد شد که من سعی کردم یک برنامه متناسب با بیت ایجاد کنم که در صورت داشتن مشکل قلبی به کاربر اطلاع می دهد اما راهی برای استفاده از اطلاعات زمان واقعی پیدا نکردم. این پروژه دارای چهار قسمت اصلی است شامل مدار فیزیکی برای اندازه گیری ضربان قلب ، یک ماژول Wi-Fi ESP8266 با کد پردازش سیگنال ، سرور برای ذخیره کد و یک برنامه Android برای نمایش ضربان قلب.
ویدئویی با جزئیات مدار فیزیکی در بالا قابل مشاهده است. تمام کد پروژه را می توانید در Github من پیدا کنید.
مرحله 1: مدار
دو روش اصلی برای اندازه گیری ضربان قلب وجود دارد اما برای این پروژه تصمیم گرفتم از فوتوپلیتیسموگرافی (PPG) استفاده کنم که از منبع نور مادون قرمز یا قرمز استفاده می کند که در چند لایه اول پوست منعکس می شود. یک سنسور عکس برای اندازه گیری تغییر شدت نور (هنگامی که خون در یک رگ جریان دارد) استفاده می شود. سیگنالهای PPG بسیار سر و صدا دارند ، بنابراین من از فیلتر عبور باند برای فیلتر کردن فرکانسهای خاص مورد نیاز استفاده کردم. ضربان قلب انسان بین فرکانس 1 تا 1.6 هرتز است. آمپر آمپری که استفاده کردم lm324 بود که بهترین ولتاژ را از بین تمام آمپرهایی که در دسترس من بود ، داشت. اگر در حال بازآفرینی این پروژه هستید ، یک amp-amp دقیق انتخاب بسیار بهتری خواهد بود.
فقط دو افزایش استفاده شد زیرا حداکثر تحمل ولتاژ در ESP8266 3.3 ولت است و من نمی خواستم به برد خود آسیب برسانم!
مدار بالا را دنبال کنید و سعی کنید آن را روی تخته نان کار کنید. اگر در خانه اسیلوسکوپ ندارید ، می توانید خروجی را به یک آردوینو متصل کرده و آن را رسم کنید ، اما مطمئن شوید که ولتاژ از تحمل آردوینو یا میکروکنترلر بیشتر نباشد.
هنگامی که یک انگشت روی LED و ترانزیستور عکس قرار می گیرد ، مدار روی یک تخته نان آزمایش می شود و تغییر خروجی مشاهده می شود. سپس تصمیم گرفتم تخته ای را که در ویدئو نشان داده نشده است ، به هم بچسبانم.
مرحله 2: کد پردازش سیگنال و ارتباطات سرور
من تصمیم گرفتم از Arduino IDE در ESP8266 استفاده کنم زیرا استفاده از آن بسیار آسان است. هنگامی که سیگنال ترسیم شد هنوز بسیار پر سر و صدا بود ، بنابراین تصمیم گرفتم آن را با یک فیلتر میانگین متحرک FIR با تعداد نمونه 10 تمیز کنم. برای انجام این کار ، یک برنامه آردوینو به نام "smoothing" را تغییر دادم. من کمی آزمایش کردم تا راهی برای اندازه گیری فرکانس سیگنال پیدا کنم. طول و دامنه پالس ها متفاوت بود زیرا قلب دارای چهار نوع مختلف پالس و ویژگی های سیگنال های PPG بود. من یک مقدار متوسط شناخته شده را انتخاب کردم که سیگنال همیشه به عنوان نقطه مرجع برای هر پالس از آن عبور می کرد. از یک بافر حلقه برای تعیین زمان مثبت یا منفی بودن شیب سیگنال استفاده کردم. ترکیبی از این دو به من اجازه داد تا فاصله بین پالس ها را که سیگنال مثبت بود و برابر یک مقدار خاص بود ، محاسبه کنم.
نرم افزار BPM نسبتاً نادرستی تولید کرد که در واقع نمی توان از آن استفاده کرد. با تکرارهای بیشتر می توان برنامه بهتری را طراحی کرد اما به دلیل محدودیت زمانی این یک گزینه نبود. کد را می توانید در لینک زیر مشاهده کنید.
نرم افزار ESP8266
مرحله 3: سرور و ارتباطات داده
من تصمیم گرفتم از Firebase برای ذخیره داده ها استفاده کنم زیرا این یک سرویس رایگان است و استفاده از آن برای برنامه های تلفن همراه بسیار آسان است. هیچ API رسمی برای Firebase با ESP8266 وجود ندارد ، اما من دریافتم که کتابخانه Arduino بسیار خوب کار می کند.
یک برنامه مثال وجود دارد که می توانید در کتابخانه ESP8266WiFi.h پیدا کنید که به شما امکان می دهد با SSID و رمز عبور به روتر متصل شوید. این برای اتصال برد به اینترنت استفاده می شود تا داده ها ارسال شوند.
اگرچه ذخیره داده ها به راحتی انجام می شد ، هنوز تعدادی از مسائل مربوط به ارسال اعلانات فشار از طریق درخواست HTTP POST وجود دارد. من نظری در مورد Github پیدا کردم که از روش قدیمی این کار از طریق پیام های ابری Google و کتابخانه HTTP برای ESP8266 استفاده می کرد. این روش را می توان در کد موجود در Github من مشاهده کرد.
در Firebase یک پروژه ایجاد کردم و از API و کلیدهای ثبت در نرم افزار استفاده کردم. پیام های ابری firebase با برنامه به منظور ارسال اعلانات فشار به کاربر استفاده شد. هنگامی که ارتباطات مورد آزمایش قرار گرفت ، داده ها در پایگاه داده در حالی که ESP8266 در حال اجرا بود قابل مشاهده بودند.
مرحله 4: برنامه Android
یک برنامه بسیار اساسی Android با دو فعالیت طراحی شد. اولین فعالیت کاربر را وارد سیستم کرد یا با استفاده از Firebase API ثبت نام کرد. من بر روی دیتاشیت تحقیق کردم و آموزش های مختلفی در مورد نحوه استفاده از Firebase با یک برنامه تلفن همراه پیدا کردم. فعالیت اصلی که کاربر داده های کاربر را یک شنونده رویداد در زمان واقعی نشان می داد ، بنابراین هیچ تاخیری در تغییرات BPM کاربر ایجاد نشد. اعلان های فشار با استفاده از پیام های ابری Firebase که قبلاً ذکر شد انجام شد. اطلاعات مفید زیادی در مورد برگه اطلاعات Firebase در مورد نحوه پیاده سازی این برنامه وجود دارد و می توان برنامه را برای ارسال اعلانات از داشبورد در وب سایت Firebase آزمایش کرد.
همه کد فعالیتها و روشهای پیام رسانی ابری را می توانید در مخزن Github من پیدا کنید.
مرحله 5: نتیجه گیری
برخی از مسائل مهم در اندازه گیری BPM کاربر وجود داشت. مقادیر بسیار متفاوت است و برای تعیین سلامت کاربر قابل استفاده نیست. این به کد پردازش سیگنال که در ESP8266 پیاده سازی شده بود خلاصه می شود. پس از تحقیقات بیشتر متوجه شدم که قلب دارای چهار نبض متفاوت با دوره های مختلف است ، بنابراین تعجبی ندارد که نرم افزار نادرست باشد. راهی برای مقابله با این امر این است که به طور متوسط چهار پالس را در یک آرایه گرفته و دوره قلب را بر روی این چهار پالس محاسبه کنید.
بقیه سیستم عملکردی داشت اما این یک دستگاه بسیار آزمایشی است که می خواستم بسازم تا ببینم آیا جسم امکان پذیر است یا خیر. کد قدیمی که برای ارسال اعلان های فشار استفاده می شد ، به زودی غیر قابل استفاده خواهد بود ، بنابراین اگر این مقاله را در اواخر سال 2018 یا اواخر می خوانید ، روش متفاوتی مورد نیاز است. این مشکل فقط با ESP اتفاق می افتد هرچند اگر بخواهید این را روی آردوینو با قابلیت WiFi اجرا کنید مشکلی نخواهد بود.
اگر س questionsال یا مشکلی دارید ، لطفاً در Instructables به من پیام دهید.
توصیه شده:
سنسور ضربان قلب با استفاده از آردوینو (مانیتور ضربان قلب): 3 مرحله
سنسور ضربان قلب با استفاده از آردوینو (مانیتور ضربان قلب): سنسور ضربان قلب یک دستگاه الکترونیکی است که برای اندازه گیری ضربان قلب یعنی سرعت ضربان قلب استفاده می شود. نظارت بر دمای بدن ، ضربان قلب و فشار خون از جمله کارهایی است که ما برای حفظ سلامتی خود انجام می دهیم. میزان ضربان قلب می تواند مونو
اندازه گیری ضربان قلب در نوک انگشتان شماست: رویکرد فوتوپلیتیسموگرافی برای تعیین ضربان قلب: 7 مرحله
اندازه گیری ضربان قلب در نوک انگشتان شماست: رویکرد فوتوپلیتیسموگرافی برای تعیین ضربان قلب: فوتوپلیتیسموگرافی (PPG) یک تکنیک نوری ساده و کم هزینه است که اغلب برای تشخیص تغییرات حجم خون در بستر میکرو عروقی بافت استفاده می شود. عمدتا برای اندازه گیری در سطح پوست به طور غیرتهاجمی استفاده می شود ، معمولاً
نوار قلب و مانیتور ضربان قلب: 6 مرحله
نوار قلب و مانیتور ضربان قلب: الکتروکاردیوگرام که ECG نیز نامیده می شود ، آزمایشی است که فعالیت های الکتریکی قلب انسان را تشخیص داده و ثبت می کند. ضربان قلب و قدرت و زمان حرکت تکانه های الکتریکی را که از هر قسمت قلب عبور می کند ، تشخیص می دهد ، که قادر به تشخیص
مدار ساده ضبط نوار قلب و مانیتور ضربان قلب LabVIEW: 5 مرحله
مدار ساده ضبط نوار قلب و مانیتور ضربان قلب LabVIEW: & quot؛ این یک دستگاه پزشکی نیست. این فقط برای اهداف آموزشی با استفاده از سیگنال های شبیه سازی شده است. اگر از این مدار برای اندازه گیری نوار قلب واقعی استفاده می کنید ، لطفاً اطمینان حاصل کنید که مدار و اتصالات مدار به دستگاه از جداسازی مناسب استفاده می کنند
نحوه ساخت نوار قلب و مانیتور دیجیتال ضربان قلب: 6 مرحله
چگونه می توان ECG و مانیتور دیجیتال ضربان قلب ایجاد کرد: دستگاه نوار قلب (ECG) فعالیت الکتریکی ضربان قلب را اندازه گیری می کند تا نشان دهد که ضربان قلب و همچنین ریتم آن چگونه است. یک ضربه الکتریکی وجود دارد که به آن موج نیز گفته می شود و در قلب حرکت می کند تا عضله قلب را صاف کند