Orodha ya maudhui:

Ufuatiliaji wa Kiwango cha Moyo cha IOT (ESP8266 na Programu ya Android): Hatua 5
Ufuatiliaji wa Kiwango cha Moyo cha IOT (ESP8266 na Programu ya Android): Hatua 5

Video: Ufuatiliaji wa Kiwango cha Moyo cha IOT (ESP8266 na Programu ya Android): Hatua 5

Video: Ufuatiliaji wa Kiwango cha Moyo cha IOT (ESP8266 na Programu ya Android): Hatua 5
Video: Полное руководство по МОП-транзистору AOD4184A 15 А, 400 Вт для управления двигателем или нагрузкой 2024, Julai
Anonim
Image
Image

Kama sehemu ya mradi wangu wa mwaka wa mwisho nilitaka kubuni kifaa ambacho kitafuatilia mapigo ya moyo wako, kuhifadhi data yako kwenye seva na kukuarifu kupitia arifa wakati kiwango cha moyo wako kilikuwa cha kawaida. Wazo nyuma ya mradi huu lilikuja wakati nilijaribu kuunda programu inayofaa ambayo inamwarifu mtumiaji anapokuwa na shida ya moyo lakini sikuweza kujua njia ya kutumia habari ya wakati halisi. Mradi huo una sehemu kuu nne pamoja na mzunguko wa mwili wa kupima mapigo ya moyo, moduli ya Wi-Fi ya ESP8266 na nambari ya kusindika ishara, seva ya kuhifadhi nambari na programu ya Android ya kuonyesha kiwango cha moyo.

Video inayoelezea mzunguko wa mwili inaweza kuonekana hapo juu. Nambari yote ya mradi inaweza kupatikana kwenye Github yangu.

Hatua ya 1: Mzunguko

Mzunguko
Mzunguko

Kuna njia mbili kuu za kupima mapigo ya moyo lakini kwa mradi huu niliamua kutumia photoplethysmography (PPG) ambayo hutumia infrared au chanzo nyekundu cha taa ambacho kimechorwa kupitia matabaka machache ya kwanza ya ngozi. Sensor ya picha hutumiwa kupima mabadiliko katika kiwango cha mwanga (wakati damu inapita kupitia chombo). Ishara za PPG zina kelele sana kwa hivyo nilitumia kichujio cha kupitisha bendi kuchuja masafa maalum yanayotakiwa. Moyo wa mwanadamu hupiga kati ya 1 na 1.6 Hz frequency. Op-amp niliyotumia ilikuwa lm324 ambayo ilikuwa na upunguzaji bora wa voltage ya op-amps zote ambazo zilinipata. Ikiwa unarudia mradi huu basi op-amp ya usahihi itakuwa chaguo bora zaidi.

Faida ya mbili tu ilitumika kwa sababu uvumilivu wa kiwango cha juu cha ESP8266 ni 3.3v na sikutaka kuharibu bodi yangu!

Fuata mzunguko hapo juu na ujaribu kuifanya ifanye kazi kwenye bodi ya mkate. Ikiwa huna oscilloscope nyumbani unaweza kuziba pato kwenye Arduino na kuipanga lakini hakikisha kuwa voltage sio kubwa kuliko uvumilivu wa arduino au microcontroller.

Mzunguko ulijaribiwa kwenye ubao wa mkate na mabadiliko katika pato yalionekana wakati kidole kilipowekwa kwenye LED na picha transistor. Kisha nikaamua kuunganisha bodi pamoja ambayo haikuonyeshwa kwenye video.

Hatua ya 2: Nambari ya Usindikaji wa Ishara na Mawasiliano ya Seva

Image
Image
Nambari ya Usindikaji wa Ishara na Mawasiliano ya Seva
Nambari ya Usindikaji wa Ishara na Mawasiliano ya Seva

Niliamua kutumia Arduino IDE kwenye ESP8266 kwa sababu ni rahisi kutumia. Wakati ishara ilipangwa bado ilikuwa na kelele sana kwa hivyo niliamua kuisafisha na kichujio cha wastani cha kusonga kwa FIR na nambari ya sampuli ya kumi. Nilibadilisha mfano mpango wa Arduino unaoitwa "kulainisha" kufanya hivi. Nilijaribu kidogo ili kupata njia ya kupima masafa ya ishara. Kunde zilikuwa za urefu na urefu tofauti kutokana na moyo kuwa na aina nne za kunde na sifa za ishara za PPG. Nilichagua thamani ya kati inayojulikana ambayo ishara kila wakati ilivuka kama hatua ya kumbukumbu kwa kila kunde. Nilitumia bafa ya pete kuamua wakati mteremko wa ishara ulikuwa mzuri au hasi. Mchanganyiko wa hizi mbili ziliniruhusu kuhesabu kipindi kati ya kunde wakati ishara ilikuwa nzuri na ilikuwa sawa na thamani maalum.

Programu hiyo ilizalisha BPM isiyo sahihi ambayo haiwezi kutumika. Pamoja na maagizo ya ziada mpango bora unaweza kutengenezwa lakini kwa sababu ya vikwazo vya wakati hii haikuwa chaguo. Nambari inaweza kupatikana kwenye kiunga hapa chini.

Programu ya ESP8266

Hatua ya 3: Mawasiliano ya Seva na Takwimu

Mawasiliano ya Seva na Takwimu
Mawasiliano ya Seva na Takwimu

Niliamua kutumia Firebase kuhifadhi data kwani ni huduma ya bure na ni rahisi kutumia na programu za rununu. Hakuna API rasmi ya Firebase na ESP8266 lakini nimeona maktaba ya Arduino ilifanya kazi vizuri sana.

Kuna mpango wa mfano ambao unaweza kupatikana kwenye maktaba ya ESP8266WiFi.h ambayo hukuruhusu kuungana na router na SSID na Nenosiri. Hii ilitumika kuunganisha bodi kwenye mtandao ili data iweze kutumwa.

Ingawa kuhifadhi data kulifanywa kwa urahisi bado kuna maswala kadhaa na kutuma arifa za kushinikiza kupitia ombi la HTTP POST. Nilipata maoni juu ya Github ambayo ilitumia njia ya urithi ya kufanya hivi kupitia ujumbe wa wingu wa Google na maktaba ya HTTP ya ESP8266. Njia hii inaweza kuonekana kwenye nambari kwenye Github yangu.

Kwenye Firebase niliunda mradi na nikatumia API na funguo za usajili kwenye programu. Ujumbe wa wingu la moto ulitumiwa na programu ili kutuma arifa za kushinikiza kwa mtumiaji. Wakati mawasiliano yalipimwa data inaweza kuonekana kwenye hifadhidata wakati ESP8266 ilikuwa ikiendesha.

Hatua ya 4: Programu ya Android

Programu ya Android
Programu ya Android

Programu ya msingi sana ya Android iliundwa na shughuli mbili. Shughuli ya kwanza imesaini mtumiaji au kuwasajili kwa kutumia Firebase API. Nilichunguza data na kupata mafunzo kadhaa juu ya jinsi ya kutumia Firebase na programu ya rununu. Shughuli kuu iliyoonyesha mtumiaji wa data ya mtumiaji msikilizaji wa hafla ya kweli kwa hivyo hakukuwa na ucheleweshaji dhahiri wa mabadiliko kwa BPM ya mtumiaji. Arifa za kushinikiza zilifanywa kwa kutumia ujumbe wa wingu wa Firebase ambao ulitajwa hapo awali. Kuna habari nyingi muhimu kwenye data ya Firebase juu ya jinsi ya kutekeleza hii na programu inaweza kujaribiwa kutuma arifa kutoka kwa dashibodi kwenye wavuti ya Firebase.

Nambari yote ya shughuli na njia za kutuma ujumbe wa wingu zinaweza kupatikana katika Jalada langu la Github.

Hatua ya 5: Hitimisho

Kulikuwa na maswala kadhaa makubwa kwa kupima BPM ya mtumiaji. Maadili yalitofautiana sana na hayakutumika kuamua afya ya mtumiaji. Hii ilichemka kwa nambari ya usindikaji wa ishara ambayo ilitekelezwa kwenye ESP8266. Baada ya utafiti wa ziada niligundua kuwa moyo una kunde nne tofauti na vipindi tofauti kwa hivyo haishangazi kwamba programu hiyo haikuwa sahihi. Njia ya kupambana na hii itakuwa kuchukua wastani wa kunde nne kwa safu na kuhesabu kipindi cha moyo juu ya zile kunde nne.

Mfumo uliobaki ulikuwa ukifanya kazi lakini hiki ni kifaa cha majaribio sana ambacho nilitaka kujenga ili kuona ikiwa kitu hicho kinawezekana. Nambari ya urithi ambayo ilitumiwa kutuma arifa za kushinikiza hivi karibuni haitatumika kwa hivyo ikiwa unasoma hii mwishoni mwa 2018 au marehemu njia tofauti itahitajika. Suala hili linatokea tu na ESP ingawa hivyo ikiwa ungetaka kutekeleza hii kwenye Arduino yenye uwezo wa WiFi haitakuwa shida.

Ikiwa una maswali yoyote au maswala tafadhali jisikie huru kunitumia ujumbe kwenye Maagizo.

Ilipendekeza: