Мазмұны:

IOT Heart Rate Monitor (ESP8266 және Android қолданбасы): 5 қадам
IOT Heart Rate Monitor (ESP8266 және Android қолданбасы): 5 қадам

Бейне: IOT Heart Rate Monitor (ESP8266 және Android қолданбасы): 5 қадам

Бейне: IOT Heart Rate Monitor (ESP8266 және Android қолданбасы): 5 қадам
Бейне: Удаленно контролировать энергопотребление дома | ПЗЭМ-004Т | Облако Интернета вещей RemoteXY 2024, Қараша
Anonim
Image
Image

Менің соңғы жылдық жобамның бір бөлігі ретінде мен сіздің жүрек соғу жиілігін бақылайтын құрылғыны жасағым келеді, деректеріңізді серверде сақтайтын боламыз және сіздің жүрек соғу жиілігі қалыпты болмаған кезде сізге хабарландыру арқылы хабарлаймын. Бұл жобаның идеясы мен қолданушыға жүрек ақауы болған кезде хабар беретін фит-бит қосымшасын құруға тырысқанымда келді, бірақ мен нақты уақыттағы ақпаратты қолданудың жолын таба алмадым. Жобаның төрт негізгі бөлімі бар жүрек соғуын өлшеуге арналған физикалық схема, сигналды өңдеу коды бар ESP8266 Wi-Fi модулі, кодты сақтауға арналған сервер және жүрек соғу жиілігін көрсетуге арналған Android қосымшасы.

Физикалық тізбек туралы егжей -тегжейлі бейнені жоғарыдан көруге болады. Жобаның барлық кодын менің Github -дан табуға болады.

1 -қадам: Цикл

Цикл
Цикл

Жүрек соғуын өлшеудің екі негізгі әдісі бар, бірақ мен бұл жобада терінің алғашқы бірнеше қабаты арқылы сынған инфрақызыл немесе қызыл жарық көзін қолданатын фотоплетизмографияны (PPG) қолдануды шештім. Фото сенсор жарық интенсивтілігінің өзгеруін өлшеу үшін қолданылады (қан ыдыстан өтіп жатқанда). PPG сигналдары өте шулы, сондықтан мен қажетті жиіліктерді сүзу үшін жолақты өткізу сүзгісін қолдандым. Адамның жүрегі 1 - 1,6 Гц жиілікте соғады. Мен қолданған оп-амп lm324 болды, ол маған қол жетімді барлық ампер-амперлердің ең жақсы кернеуіне қарсы болды. Егер сіз бұл жобаны қайта жасасаңыз, онда дәлдік оп-ампері әлдеқайда жақсы таңдау болар еді.

ESP8266 кернеуінің максималды төзімділігі 3,3В болғандықтан мен тек екі табысты қолдандым, мен тақтаны бүлдіргім келмеді!

Жоғарыдағы схеманы орындаңыз және оны нан тақтасында жұмыс істеуге тырысыңыз. Егер үйде осциллограф болмаса, сіз шығуды Arduino -ға қосып, оны жоспарлай аласыз, бірақ кернеудің arduino немесе микроконтроллер төзімділігінен жоғары емес екеніне көз жеткізіңіз.

Схема нан тақтасында сыналды және жарықдиодты және фото транзисторға саусақ салынған кезде шығыс өзгерісі байқалды. Содан кейін мен бейнеде көрсетілмеген тақтаны бірге дәнекерлеуді шештім.

2 -қадам: сигналды өңдеу коды және серверлік байланыс

Image
Image
Сигналды өңдеу коды және серверлік байланыс
Сигналды өңдеу коды және серверлік байланыс

Мен Arduino IDE -ді ESP8266 -де қолдануды шештім, себебі оны қолдану өте оңай. Сигнал жоспарланған кезде ол әлі де өте шуылды, сондықтан мен оны ондық үлгісі бар FIR жылжымалы орташа сүзгісімен тазартуды шештім. Мен бұл үшін «тегістеу» деп аталатын Arduino бағдарламасының мысалын өзгерттім. Мен сигнал жиілігін өлшеу әдісін табу үшін аздап тәжірибе жасадым. Импульстердің ұзындығы мен амплитудасы әр түрлі болды, бұл жүректің төрт түрлі импульстері мен PPG сигналдарының сипаттамаларына байланысты. Мен сигнал әрқашан әр импульстің тірек нүктесі ретінде өтетін белгілі орташа мәнді таңдадым. Сигнал көлбеуінің оң немесе теріс екенін анықтау үшін мен сақина буферін қолдандым. Бұл екеуінің комбинациясы сигнал оң болғанда және белгілі бір мәнге тең болған кезде импульстар арасындағы кезеңді есептеуге мүмкіндік берді.

Бағдарламалық қамтамасыз ету өте дәл емес BPM шығарды, оны қолдануға болмайды. Қосымша қайталаулармен жақсы бағдарлама құруға болады, бірақ уақыт шектеулі болғандықтан бұл мүмкін емес еді. Кодты төмендегі сілтемеден табуға болады.

Бағдарламалық қамтамасыз ету ESP8266

3 -қадам: Сервер және деректер байланысы

Сервер және деректер байланысы
Сервер және деректер байланысы

Мен деректерді сақтау үшін Firebase -ті қолдануды шештім, себебі бұл ақысыз қызмет және мобильді қосымшаларда қолдану өте оңай. ESP8266 бар Firebase үшін ресми API жоқ, бірақ мен Arduino кітапханасы өте жақсы жұмыс істегенін таптым.

ESP8266WiFi.h кітапханасында SSID мен құпия сөзі бар маршрутизаторға қосылуға мүмкіндік беретін бағдарлама бар. Бұл деректерді жіберу үшін тақтаны интернетке қосу үшін пайдаланылды.

Деректерді сақтау оңай болғанымен, HTTP POST сұранысы арқылы push хабарландыруларын жіберуде әлі де көптеген мәселелер бар. Мен Google бұлтты хабар алмасу және ESP8266 үшін HTTP кітапханасы арқылы осының бұрынғы әдісін қолданған Github туралы түсініктеме таптым. Бұл әдісті менің Github -дағы кодтан көруге болады.

Firebase -те мен жоба жасадым және бағдарламалық жасақтамада API мен тіркеу кілттерін қолдандым. Firebase бұлтты хабарламасы қолданушыға push хабарландыруларын жіберу үшін қолданылды. Байланыстар тексерілген кезде, деректер ESP8266 жұмыс істеп тұрған кезде дерекқорда көрінуі мүмкін.

4 -қадам: Android қосымшасы

Android қосымшасы
Android қосымшасы

Негізгі Android қосымшасы екі әрекеттен тұрады. Бірінші әрекет пайдаланушыға Firebase API көмегімен кірді немесе оларды тіркеді. Мен деректер кестесін зерттедім және Firebase -ді мобильді қосымшамен қалай пайдалану керектігі туралы әр түрлі оқулықтарды таптым. Нақты уақыттағы оқиғаларды тыңдаушының деректерді пайдаланушысын көрсететін негізгі әрекет, сондықтан пайдаланушының BPM өзгеруінде елеулі кідіріс болған жоқ. Хабарламалар бұрын айтылған Firebase бұлтты хабар алмасуының көмегімен жасалды. Мұны қалай жүзеге асыру керектігі туралы Firebase деректер кестесінде көптеген пайдалы ақпарат бар және қосымшаны Firebase веб -сайтындағы бақылау тақтасынан хабарламалар жіберу арқылы тексеруге болады.

Әрекеттер мен бұлтты хабар алмасу әдістерінің барлық кодын менің Github репозиторийімде табуға болады.

5 -қадам: Қорытынды

Пайдаланушының BPM өлшеуінде кейбір маңызды мәселелер болды. Мәндер әр түрлі болды және пайдаланушының денсаулығын анықтау үшін қолданылмады. Бұл ESP8266 -да енгізілген сигналды өңдеу кодына дейін төмендеді. Қосымша зерттеулерден кейін мен жүректің әр түрлі кезеңдегі төрт түрлі импульсі бар екенін білдім, сондықтан бағдарламалық жасақтаманың дәл болмауы таңқаларлық емес. Бұған қарсы күрес әдісі - орташа алғанда төрт импульстің орташа жиілігін алу және сол төрт импульстегі жүректің периодын есептеу.

Жүйенің қалған бөлігі функционалды болды, бірақ бұл объектінің бар -жоғын білу үшін мен жасағым келетін эксперименталды құрылғы. Хабарламаларды жіберу үшін қолданылған ескі код көп ұзамай жарамсыз болады, сондықтан егер сіз оны 2018 жылдың аяғында немесе кеш оқыған болсаңыз, басқа әдіс қажет болады. Бұл мәселе тек ESP -те пайда болады, бірақ егер сіз оны WiFi мүмкіндігі бар Arduino -да қолданғыңыз келсе, бұл мәселе болмайды.

Егер сізде қандай да бір сұрақтарыңыз немесе мәселелеріңіз болса, маған Instructables арқылы хабарлауға болады.

Ұсынылған: