विषयसूची:
- चरण 1: सर्किट
- चरण 2: सिग्नल प्रोसेसिंग कोड और सर्वर संचार
- चरण 3: सर्वर और डेटा संचार
- चरण 4: Android ऐप
- चरण 5: निष्कर्ष
वीडियो: IOT हार्ट रेट मॉनिटर (ESP8266 और Android ऐप): 5 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:22
अपने अंतिम वर्ष के प्रोजेक्ट के हिस्से के रूप में मैं एक ऐसा उपकरण डिजाइन करना चाहता था जो आपकी हृदय गति की निगरानी करे, आपके डेटा को एक सर्वर पर संग्रहीत करे और जब आपकी हृदय गति असामान्य हो तो आपको अधिसूचना के माध्यम से सूचित करें। इस परियोजना के पीछे का विचार तब आया जब मैंने एक फिट-बिट ऐप बनाने की कोशिश की जो उपयोगकर्ता को दिल की समस्या होने पर सूचित करता है लेकिन मैं रीयल-टाइम जानकारी का उपयोग करने का कोई तरीका नहीं समझ सका। इस परियोजना में चार मुख्य भाग हैं दिल की धड़कन को मापने के लिए भौतिक सर्किट, सिग्नल प्रोसेसिंग कोड के साथ एक ESP8266 वाई-फाई मॉड्यूल, कोड स्टोर करने के लिए सर्वर और हृदय गति प्रदर्शित करने के लिए एक एंड्रॉइड ऐप सहित।
भौतिक सर्किट का विवरण देने वाला एक वीडियो ऊपर देखा जा सकता है। परियोजना के लिए सभी कोड मेरे जीथब पर पाए जा सकते हैं।
चरण 1: सर्किट
दिल की धड़कन को मापने के दो मुख्य तरीके हैं लेकिन इस परियोजना के लिए मैंने फोटोप्लेथिस्मोग्राफी (पीपीजी) का उपयोग करने का फैसला किया है जो एक अवरक्त या लाल प्रकाश स्रोत का उपयोग करता है जो त्वचा की पहली कुछ परतों के माध्यम से अपवर्तित होता है। प्रकाश की तीव्रता में परिवर्तन को मापने के लिए एक फोटो सेंसर का उपयोग किया जाता है (जब रक्त एक बर्तन से बह रहा हो)। PPG सिग्नल अविश्वसनीय रूप से शोर करते हैं इसलिए मैंने आवश्यक विशिष्ट आवृत्तियों को फ़िल्टर करने के लिए एक बैंड पास फ़िल्टर का उपयोग किया। मानव हृदय 1 से 1.6 Hz आवृत्ति के बीच धड़कता है। मेरे द्वारा उपयोग किया जाने वाला op-amp lm324 था जिसमें मेरे लिए उपलब्ध सभी op-amps का सबसे अच्छा वोल्टेज-ऑफ़सेट था। यदि आप इस परियोजना को फिर से बना रहे हैं तो एक सटीक ऑप-एम्प एक बेहतर विकल्प होगा।
केवल दो के लाभ का उपयोग किया गया था क्योंकि ESP8266 पर अधिकतम वोल्टेज सहिष्णुता 3.3v है और मैं अपने बोर्ड को नुकसान नहीं पहुंचाना चाहता था!
ऊपर दिए गए सर्किट का पालन करें और इसे ब्रेड बोर्ड पर काम करने की कोशिश करें। यदि आपके पास घर पर एक आस्टसीलस्कप नहीं है, तो आप आउटपुट को एक Arduino में प्लग कर सकते हैं और इसे प्लॉट कर सकते हैं लेकिन सुनिश्चित करें कि वोल्टेज arduino या माइक्रोकंट्रोलर की सहनशीलता से अधिक नहीं है।
एक ब्रेड बोर्ड पर सर्किट का परीक्षण किया गया था और आउटपुट में बदलाव तब देखा गया था जब एलईडी और फोटो ट्रांजिस्टर में एक उंगली रखी गई थी। मैंने फिर बोर्ड को एक साथ मिलाप करने का फैसला किया जो वीडियो में नहीं दिखाया गया था।
चरण 2: सिग्नल प्रोसेसिंग कोड और सर्वर संचार
मैंने ESP8266 पर Arduino IDE का उपयोग करने का निर्णय लिया क्योंकि इसका उपयोग करना इतना आसान है। जब सिग्नल प्लॉट किया गया था तब भी यह बहुत शोर था इसलिए मैंने इसे एक एफआईआर मूविंग-औसत फिल्टर के साथ दस की नमूना संख्या के साथ साफ करने का फैसला किया। मैंने ऐसा करने के लिए "चिकनाई" नामक एक उदाहरण Arduino प्रोग्राम को संशोधित किया। सिग्नल की आवृत्ति को मापने का एक तरीका खोजने के लिए मैंने थोड़ा प्रयोग किया। दिल में चार अलग-अलग प्रकार की दालों और पीपीजी संकेतों की विशेषताओं के कारण दालें अलग-अलग लंबाई और आयाम की थीं। मैंने एक ज्ञात मध्य मान चुना है कि सिग्नल हमेशा प्रत्येक पल्स के संदर्भ बिंदु के रूप में पार हो जाता है। सिग्नल का ढलान सकारात्मक या नकारात्मक था, यह निर्धारित करने के लिए मैंने रिंग बफर का उपयोग किया। इन दोनों के संयोजन ने मुझे दालों के बीच की अवधि की गणना करने की अनुमति दी जब संकेत सकारात्मक था और एक विशिष्ट मूल्य के बराबर था।
सॉफ्टवेयर ने काफी गलत बीपीएम का उत्पादन किया जिसका वास्तव में उपयोग नहीं किया जा सकता था। अतिरिक्त पुनरावृत्तियों के साथ एक बेहतर कार्यक्रम तैयार किया जा सकता था लेकिन समय की कमी के कारण यह एक विकल्प नहीं था। कोड नीचे दिए गए लिंक में पाया जा सकता है।
ESP8266 सॉफ्टवेयर
चरण 3: सर्वर और डेटा संचार
मैंने डेटा स्टोर करने के लिए फ़ायरबेस का उपयोग करने का निर्णय लिया क्योंकि यह एक निःशुल्क सेवा है और मोबाइल ऐप्स के साथ उपयोग करना बहुत आसान है। ESP8266 के साथ फायरबेस के लिए कोई आधिकारिक एपीआई नहीं है, लेकिन मैंने पाया कि Arduino लाइब्रेरी ने बहुत अच्छा काम किया है।
एक उदाहरण प्रोग्राम है जो ESP8266WiFi.h लाइब्रेरी पर पाया जा सकता है जो आपको SSID और पासवर्ड के साथ राउटर से कनेक्ट करने की अनुमति देता है। इसका उपयोग बोर्ड को इंटरनेट से जोड़ने के लिए किया जाता था ताकि डेटा भेजा जा सके।
हालांकि डेटा स्टोर करना आसानी से हो गया था, फिर भी HTTP POST अनुरोध के माध्यम से पुश नोटिफिकेशन भेजने में कई समस्याएं हैं। मुझे जीथब पर एक टिप्पणी मिली जिसने Google क्लाउड मैसेजिंग और ESP8266 के लिए HTTP लाइब्रेरी के माध्यम से ऐसा करने की एक विरासत पद्धति का उपयोग किया। यह विधि मेरे जीथब पर कोड में देखी जा सकती है।
फायरबेस पर मैंने एक प्रोजेक्ट बनाया और सॉफ्टवेयर में एपीआई और पंजीकरण कुंजी का इस्तेमाल किया। उपयोगकर्ता को पुश सूचनाएं भेजने के लिए ऐप के साथ फायरबेस क्लाउड मैसेजिंग का उपयोग किया गया था। जब संचार का परीक्षण किया गया तो डेटा डेटाबेस में देखा जा सकता है जबकि ESP8266 चल रहा था।
चरण 4: Android ऐप
एक बहुत ही बुनियादी Android ऐप को दो गतिविधियों के साथ डिज़ाइन किया गया था। पहली गतिविधि में उपयोगकर्ता ने Firebase API का उपयोग करके साइन इन किया या उन्हें पंजीकृत किया। मैंने डेटाशीट पर शोध किया और मोबाइल ऐप के साथ फायरबेस का उपयोग करने के तरीके पर विभिन्न ट्यूटोरियल पाया। मुख्य गतिविधि जिसने उपयोगकर्ता के डेटा उपयोगकर्ता को वास्तविक समय ईवेंट श्रोता प्रदर्शित किया ताकि उपयोगकर्ता के बीपीएम में परिवर्तनों में कोई उल्लेखनीय देरी न हो। पुश नोटिफिकेशन फायरबेस क्लाउड मैसेजिंग का उपयोग करके किया गया था जिसका उल्लेख पहले किया गया था। इसे कैसे लागू किया जाए, इस बारे में फ़ायरबेस डेटाशीट पर बहुत सारी उपयोगी जानकारी है और ऐप को फायरबेस वेबसाइट पर डैशबोर्ड से सूचनाएं भेजकर परीक्षण किया जा सकता है।
गतिविधियों के लिए सभी कोड और क्लाउड मैसेजिंग के तरीके मेरे जीथब रिपोजिटरी में पाए जा सकते हैं।
चरण 5: निष्कर्ष
उपयोगकर्ता के बीपीएम को मापने के साथ कुछ प्रमुख मुद्दे थे। मान बहुत भिन्न थे और उपयोगकर्ता के स्वास्थ्य को निर्धारित करने के लिए उपयोग करने योग्य नहीं थे। यह ESP8266 पर लागू किए गए सिग्नल प्रोसेसिंग कोड के लिए उबला हुआ था। अतिरिक्त शोध के बाद मुझे पता चला कि एक दिल में अलग-अलग अवधि के साथ चार अलग-अलग दालें होती हैं, इसलिए इसमें कोई आश्चर्य की बात नहीं थी कि सॉफ्टवेयर गलत था। इसका मुकाबला करने का एक तरीका यह होगा कि एक सरणी में औसतन चार दालें लें और उन चार दालों पर हृदय की अवधि की गणना करें।
बाकी प्रणाली कार्यात्मक थी लेकिन यह एक बहुत ही प्रायोगिक उपकरण है जिसे मैं यह देखने के लिए बनाना चाहता था कि क्या वस्तु संभव है। पुश नोटिफिकेशन भेजने के लिए इस्तेमाल किया गया लीगेसी कोड जल्द ही अनुपयोगी हो जाएगा, इसलिए यदि आप इसे 2018 के अंत में या देर से पढ़ रहे हैं तो एक अलग विधि की आवश्यकता होगी। यह समस्या केवल ESP के साथ होती है, हालाँकि यदि आप इसे WiFi सक्षम Arduino पर लागू करना चाहते हैं तो यह कोई समस्या नहीं होगी।
यदि आपके कोई प्रश्न या मुद्दे हैं, तो कृपया बेझिझक मुझे इंस्ट्रक्शंस पर मैसेज करें।
सिफारिश की:
DIY हार्ट रेट मॉनिटर (लकड़हारा): 4 कदम
DIY हार्ट रेट मॉनिटर (लॉगर): इस प्रोजेक्ट में मैं आपको दिखाऊंगा कि कैसे एक वाणिज्यिक स्मार्टवॉच आपके हृदय गति को मापता है और मॉनिटर करता है और बाद में मैं आपको दिखाऊंगा कि एक DIY सर्किट कैसे बनाया जाता है जो मूल रूप से इसके अतिरिक्त के साथ भी ऐसा ही कर सकता है हृदय गति डेटा स्टोर करें
हार्ट रेट मॉनिटर के साथ ब्रीद लाइट एंग्जायटी डिवाइस: 18 कदम (चित्रों के साथ)
हार्ट रेट मॉनिटर के साथ ब्रीद लाइट चिंता डिवाइस: दुनिया व्यस्त होने के साथ, हर कोई तेजी से उच्च तनाव वाले वातावरण में है। कॉलेज के छात्रों को तनाव और चिंता का और भी अधिक खतरा होता है। परीक्षा विशेष रूप से छात्रों के लिए उच्च तनाव वाली अवधि होती है, और सांस लेने के व्यायाम वाली स्मार्टवॉच
Arduino हार्ट रेट मॉनिटर: 5 कदम
Arduino हार्ट रेट मॉनिटर: हाय सब लोग, मैंने इस हैंडहेल्ड Arduino नियंत्रित हार्ट रेट मॉनिटर का निर्माण किया है
हार्ट रेट मॉनिटर AD8232, Arduino, प्रोसेसिंग: 4 कदम
हार्ट रेट मॉनिटर AD8232, Arduino, प्रोसेसिंग: एनालॉग डिवाइसेस AD8232 एक पूर्ण एनालॉग फ्रंट एंड है जिसे मिलीवोल्ट स्तर EKG (इलेक्ट्रोकार्डियोग्राम) सिग्नल प्राप्त करने के लिए डिज़ाइन किया गया है। हालाँकि AD8232 को हुक करना और परिणामी EKG सिग्नल को एक आस्टसीलस्कप पर देखना एक साधारण बात है, इसके लिए चुनौती
सरल ईसीजी रिकॉर्डिंग सर्किट और लैब व्यू हार्ट रेट मॉनिटर: 5 कदम
सरल ईसीजी रिकॉर्डिंग सर्किट और लैब व्यू हार्ट रेट मॉनिटर: "यह एक चिकित्सा उपकरण नहीं है। यह केवल नकली संकेतों का उपयोग करके शैक्षिक उद्देश्यों के लिए है। यदि वास्तविक ईसीजी माप के लिए इस सर्किट का उपयोग कर रहे हैं, तो कृपया सुनिश्चित करें कि सर्किट और सर्किट-टू-इंस्ट्रूमेंट कनेक्शन उचित अलगाव ते का उपयोग कर रहे हैं