جدول المحتويات:
- الخطوة 1: الدائرة
- الخطوة 2: رمز معالجة الإشارة واتصالات الخادم
- الخطوة 3: الخادم واتصالات البيانات
- الخطوة 4: تطبيق Android
- الخطوة 5: الخاتمة
فيديو: مراقب معدل ضربات القلب IOT (ESP8266 وتطبيق Android): 5 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
كجزء من مشروعي في السنة الأخيرة ، أردت تصميم جهاز يراقب معدل ضربات قلبك ، ويخزن بياناتك على خادم ويبلغك عبر إشعار عندما يكون معدل ضربات قلبك غير طبيعي. جاءت الفكرة وراء هذا المشروع عندما حاولت إنشاء تطبيق fit-bit الذي يُعلم المستخدم عندما يواجه مشكلة في القلب ، لكنني لم أتمكن من اكتشاف طريقة لاستخدام المعلومات في الوقت الفعلي. يتكون المشروع من أربعة أجزاء رئيسية بما في ذلك الدائرة المادية لقياس ضربات القلب ، ووحدة ESP8266 Wi-Fi مع رمز معالجة الإشارة ، وخادم لتخزين الرمز وتطبيق Android لعرض معدل ضربات القلب.
يمكن رؤية مقطع فيديو يوضح بالتفصيل الدائرة المادية أعلاه. يمكن العثور على كل الكود الخاص بالمشروع على جيثب الخاص بي.
الخطوة 1: الدائرة
هناك طريقتان رئيسيتان لقياس دقات القلب ، لكن في هذا المشروع قررت استخدام التصوير الضوئي (PPG) الذي يستخدم مصدر ضوء أحمر أو الأشعة تحت الحمراء الذي ينكسر خلال الطبقات القليلة الأولى من الجلد. يستخدم مستشعر الصور لقياس التغير في شدة الضوء (عندما يتدفق الدم عبر وعاء). إشارات PPG صاخبة بشكل لا يصدق لذلك استخدمت مرشح تمرير النطاق لتصفية الترددات المحددة المطلوبة. ينبض قلب الإنسان بين تردد 1 و 1.6 هرتز. كان جهاز op-amp الذي استخدمته هو lm324 الذي كان لديه أفضل إزاحة للجهد من بين جميع أجهزة op-amp التي كانت متاحة لي. إذا كنت تعيد إنشاء هذا المشروع ، فسيكون جهاز op-amp الدقيق خيارًا أفضل بكثير.
تم استخدام مكسب اثنين فقط لأن الحد الأقصى لتحمل الجهد على ESP8266 هو 3.3 فولت ولم أرغب في إتلاف لوحي!
اتبع الدائرة أعلاه وحاول تشغيلها على لوح الخبز. إذا لم يكن لديك منظار الذبذبات في المنزل ، فيمكنك توصيل الإخراج في Arduino ورسمه ولكن تأكد من أن الجهد ليس أعلى من تحمل اردوينو أو متحكم دقيق.
تم اختبار الدائرة على لوح الخبز ولوحظ تغيير في الخرج عندما تم وضع إصبع عبر الترانزستور LED والصورة. ثم قررت بعد ذلك لحام اللوحة معًا والتي لم تظهر في الفيديو.
الخطوة 2: رمز معالجة الإشارة واتصالات الخادم
قررت استخدام Arduino IDE على ESP8266 لأنه سهل الاستخدام. عندما تم رسم الإشارة كانت لا تزال صاخبة جدًا لذا قررت تنظيفها باستخدام مرشح متوسط متحرك FIR مع عينة من رقم عشرة. لقد قمت بتعديل مثال لبرنامج Arduino يسمى "smoothing" للقيام بذلك ، وجربت قليلاً من أجل إيجاد طريقة لقياس تردد الإشارة. كانت النبضات متفاوتة الطول والسعة بسبب وجود أربعة أنواع مختلفة من النبضات في القلب وخصائص إشارات PPG. اخترت قيمة متوسطة معروفة تتقاطع معها الإشارة دائمًا كنقطة مرجعية لكل نبضة. لقد استخدمت مخزنًا مؤقتًا للحلقة لتحديد متى كان ميل الإشارة موجبًا أم سالبًا. سمح الجمع بين هذين الأمرين بحساب الفترة بين النبضات عندما كانت الإشارة موجبة وكانت مساوية لقيمة معينة.
أنتج البرنامج BPM غير دقيق إلى حد ما لا يمكن استخدامه في الواقع. مع التكرارات الإضافية ، يمكن تصميم برنامج أفضل ولكن نظرًا لضيق الوقت ، لم يكن هذا خيارًا متاحًا. يمكن العثور على الرمز في الرابط أدناه.
برنامج ESP8266
الخطوة 3: الخادم واتصالات البيانات
قررت استخدام Firebase لتخزين البيانات لأنها خدمة مجانية وسهلة الاستخدام للغاية مع تطبيقات الأجهزة المحمولة. لا توجد واجهة برمجة تطبيقات رسمية لـ Firebase مع ESP8266 لكنني وجدت أن مكتبة Arduino تعمل جيدًا.
يوجد مثال لبرنامج يمكن العثور عليه في مكتبة ESP8266WiFi.h والذي يسمح لك بالاتصال بجهاز توجيه باستخدام SSID وكلمة المرور. تم استخدام هذا لتوصيل اللوحة بالإنترنت بحيث يمكن إرسال البيانات.
على الرغم من سهولة تخزين البيانات ، لا يزال هناك عدد من المشكلات المتعلقة بإرسال إشعارات الدفع عبر طلب HTTP POST. لقد وجدت تعليقًا على Github والذي استخدم طريقة قديمة للقيام بذلك عبر المراسلة السحابية من Google ومكتبة HTTP لـ ESP8266. يمكن رؤية هذه الطريقة في الكود الموجود على جيثب الخاص بي.
في Firebase ، أنشأت مشروعًا واستخدمت واجهة برمجة التطبيقات ومفاتيح التسجيل في البرنامج. تم استخدام المراسلة السحابية لـ firebase مع التطبيق لإرسال إشعارات الدفع إلى المستخدم. عندما تم اختبار الاتصالات ، يمكن رؤية البيانات في قاعدة البيانات أثناء تشغيل ESP8266.
الخطوة 4: تطبيق Android
تم تصميم تطبيق Android أساسي جدًا من خلال نشاطين. سجل النشاط الأول دخول المستخدم أو سجله باستخدام Firebase API. لقد بحثت في ورقة البيانات ووجدت العديد من البرامج التعليمية حول كيفية استخدام Firebase مع تطبيق جوال. النشاط الرئيسي الذي عرض مستخدم بيانات المستخدم مستمعًا للحدث في الوقت الفعلي لذلك لم يكن هناك تأخير ملحوظ في التغييرات التي تم إجراؤها على BPM الخاص بالمستخدم. تم تنفيذ الإشعارات الفورية باستخدام المراسلة السحابية Firebase التي تم ذكرها سابقًا. هناك الكثير من المعلومات المفيدة في ورقة بيانات Firebase حول كيفية تنفيذ ذلك ويمكن اختبار التطبيق من خلال إرسال إشعارات من لوحة القيادة على موقع Firebase الإلكتروني.
يمكن العثور على جميع التعليمات البرمجية للأنشطة وطرق المراسلة السحابية في مستودع Github الخاص بي.
الخطوة 5: الخاتمة
كانت هناك بعض المشكلات الرئيسية المتعلقة بقياس BPM للمستخدم. اختلفت القيم بشكل كبير ولم تكن قابلة للاستخدام لتحديد صحة المستخدم. تم اختصار هذا إلى رمز معالجة الإشارة الذي تم تنفيذه على ESP8266. بعد بحث إضافي ، اكتشفت أن القلب يحتوي على أربع نبضات مختلفة بفترات متفاوتة ، لذلك لا عجب في أن البرنامج غير دقيق. تتمثل إحدى طرق مكافحة هذا في أخذ متوسط النبضات الأربعة في مصفوفة وحساب فترة القلب على تلك النبضات الأربعة.
كان باقي النظام يعمل ولكن هذا جهاز تجريبي للغاية أردت بناءه لمعرفة ما إذا كان الكائن ممكنًا. سيكون الرمز القديم الذي تم استخدامه لإرسال إشعارات الدفع غير قابل للاستخدام قريبًا ، لذا إذا كنت تقرأ هذا في أواخر عام 2018 أو في وقت متأخر ، فستكون هناك حاجة إلى طريقة مختلفة. تحدث هذه المشكلة فقط مع ESP على الرغم من ذلك ، إذا كنت ترغب في تنفيذ ذلك على Arduino قادر على WiFi ، فلن تكون هناك مشكلة.
إذا كانت لديك أي أسئلة أو مشكلات ، فلا تتردد في مراسلتي على Instructables.
موصى به:
مستشعر نبضات القلب باستخدام Arduino (مراقب معدل ضربات القلب): 3 خطوات
مستشعر نبضات القلب باستخدام Arduino (مراقب معدل ضربات القلب): مستشعر نبضات القلب هو جهاز إلكتروني يستخدم لقياس معدل ضربات القلب ، أي سرعة ضربات القلب. مراقبة درجة حرارة الجسم ومعدل ضربات القلب وضغط الدم هي الأشياء الأساسية التي نقوم بها من أجل الحفاظ على صحتنا. يمكن أن يكون معدل ضربات القلب أحاديًا
مراقب معدل ضربات القلب DIY (المسجل): 4 خطوات
DIY مراقب معدل ضربات القلب (المسجل): في هذا المشروع ، سأوضح لك كيف تقيس ساعة ذكية تجارية وتراقب معدل ضربات قلبك وبعد ذلك سأوضح لك كيفية إنشاء دائرة DIY يمكنها فعل الشيء نفسه بشكل أساسي مع الإضافة التي يمكنها أيضًا تخزين بيانات معدل ضربات القلب
قياس معدل ضربات القلب في متناول يدك: نهج التصوير الضوئي لتحديد معدل ضربات القلب: 7 خطوات
قياس معدل ضربات قلبك في متناول يدك: نهج التصوير الضوئي لتحديد معدل ضربات القلب: يعد مقياس الرسم الضوئي (PPG) تقنية بصرية بسيطة ومنخفضة التكلفة تُستخدم غالبًا للكشف عن التغيرات في حجم الدم في طبقة الأوعية الدموية الدقيقة من الأنسجة. يتم استخدامه في الغالب بشكل غير جراحي لإجراء قياسات على سطح الجلد ، عادةً
مراقب معدل ضربات القلب من Arduino: 5 خطوات
مراقب معدل ضربات القلب من Arduino: مرحبًا بالجميع ، لقد صممت جهاز مراقبة معدل ضربات القلب الذي يتحكم فيه Arduino يدويًا
مراقب معدل ضربات القلب AD8232 ، اردوينو ، المعالجة: 4 خطوات
مراقب معدل ضربات القلب AD8232 ، Arduino ، المعالجة: الأجهزة التناظرية AD8232 هي واجهة أمامية تمثيلية كاملة مصممة للحصول على إشارات EKG (ElectroCardioGram) بمستوى ملي فولت. على الرغم من أنه من السهل توصيل AD8232 ورؤية إشارة EKG الناتجة على مرسمة الذبذبات ، فإن التحدي