Kazalo:
- 1. korak: vezje
- 2. korak: Koda za obdelavo signala in komunikacija s strežnikom
- 3. korak: strežniška in podatkovna komunikacija
- 4. korak: aplikacija za Android
- 5. korak: Zaključek
Video: IOT monitor srčnega utripa (ESP8266 in aplikacija za Android): 5 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
Kot del mojega zadnjega letnega projekta sem želel oblikovati napravo, ki bi spremljala vaš srčni utrip, shranjevala vaše podatke na strežniku in vas obvestila, ko je vaš srčni utrip nenormalen. Ideja za ta projekt je nastala, ko sem poskušal zgraditi fit-bitno aplikacijo, ki bi uporabnika obvestila, ko ima težave s srcem, vendar nisem mogel ugotoviti načina uporabe informacij v realnem času. Projekt ima štiri glavne dele vključno s fizičnim vezjem za merjenje srčnega utripa, modulom Wi-Fi ESP8266 s kodo za obdelavo signala, strežnikom za shranjevanje kode in aplikacijo za Android za prikaz srčnega utripa.
Videoposnetek s podrobnostmi o fizičnem vezju si lahko ogledate zgoraj. Vso kodo za projekt najdete na mojem Githubu.
1. korak: vezje
Obstajata dve glavni metodi merjenja srčnega utripa, vendar sem se za ta projekt odločil uporabiti fotopletizmografijo (PPG), ki uporablja infrardeči ali rdeč vir svetlobe, ki se lomi v prvih nekaj plasteh kože. Foto senzor se uporablja za merjenje spremembe jakosti svetlobe (ko kri teče skozi posodo). Signali PPG so neverjetno hrupni, zato sem uporabil pasovni filter za filtriranje določenih zahtevanih frekvenc. Človeško srce utripa med 1 in 1,6 Hz. Op-amp, ki sem ga uporabil, je bil lm324, ki je imel najboljši odmik napetosti od vseh op-ojačevalcev, ki so mi bili na voljo. Če ponovno ustvarjate ta projekt, bi bil natančen op-amp veliko boljša izbira.
Uporabljen je bil samo dva ojačanja, ker je največja toleranca napetosti na ESP8266 3,3 V in nisem hotel poškodovati svoje plošče!
Sledite zgornjemu vezju in poskusite delovati na plošči za kruh. Če doma nimate osciloskopa, lahko priključite izhod v Arduino in ga narišete, vendar pazite, da napetost ne bo višja od tolerance arduina ali mikrokrmilnika.
Tokokrog je bil preizkušen na plošči za kruh in opazili smo spremembo izhoda, ko smo na LED in foto tranzistor postavili prst. Nato sem se odločil spajati ploščo skupaj, kar ni prikazano v videu.
2. korak: Koda za obdelavo signala in komunikacija s strežnikom
Odločil sem se za uporabo Arduino IDE na ESP8266, ker je tako enostaven za uporabo. Ko je bil signal narisan, je bil še vedno zelo hrupen, zato sem se odločil, da ga očistim s filtrom FIR drsečega povprečja z vzorcem deset. Za to sem spremenil primer programa Arduino, imenovan "glajenje". Malo sem eksperimentiral, da bi našel način za merjenje frekvence signala. Impulzi so bili različne dolžine in amplitude, ker je srce imelo štiri različne vrste impulzov in značilnosti signalov PPG. Izbral sem znano srednjo vrednost, ki jo je signal vedno prečkal kot referenčno točko za vsak impulz. Uporabil sem obročni vmesnik, da sem ugotovil, kdaj je naklon signala pozitiven ali negativen. Kombinacija teh dveh mi je omogočila izračun obdobja med impulzi, ko je bil signal pozitiven in je bil enak določeni vrednosti.
Programska oprema je ustvarila precej netočen BPM, ki ga dejansko ni bilo mogoče uporabiti. Z dodatnimi ponovitvami bi lahko oblikovali boljši program, vendar zaradi časovnih omejitev to ni bila možnost. Kodo najdete na spodnji povezavi.
Programska oprema ESP8266
3. korak: strežniška in podatkovna komunikacija
Odločil sem se, da bom za shranjevanje podatkov uporabil Firebase, saj je to brezplačna storitev in je zelo enostavna za uporabo z mobilnimi aplikacijami. Uradnega API -ja za Firebase z ESP8266 ni, vendar sem ugotovil, da knjižnica Arduino deluje zelo dobro.
V knjižnici ESP8266WiFi.h lahko najdete primer programa, ki vam omogoča povezavo z usmerjevalnikom s SSID in geslom. To je bilo uporabljeno za povezavo plošče z internetom za pošiljanje podatkov.
Čeprav je bilo shranjevanje podatkov enostavno, je še vedno nekaj težav s pošiljanjem potisnih obvestil prek zahteve HTTP POST. Našel sem komentar o Githubu, ki je za to uporabljal zastarelo metodo prek Googlovih sporočil v oblaku in knjižnice HTTP za ESP8266. To metodo lahko vidite v kodi na mojem Githubu.
V Firebase sem ustvaril projekt in uporabil API in registracijske ključe v programski opremi. Sporočila Firebase v oblaku so bila uporabljena z aplikacijo za pošiljanje potisnih obvestil uporabniku. Ko je bila komunikacija preizkušena, so bili podatki prikazani v bazi podatkov med delovanjem ESP8266.
4. korak: aplikacija za Android
Zelo osnovna aplikacija za Android je bila zasnovana z dvema dejavnostima. Prva aktivnost je prijavila uporabnika ali ga registrirala z vmesnikom Firebase API. Raziskal sem podatkovni list in našel različne vaje o uporabi Firebase z mobilno aplikacijo. Glavna dejavnost, ki je uporabniku prikazala podatke uporabnika v realnem času poslušalca dogodkov, tako da ni prišlo do opazne zamude pri spremembah uporabnikovega BPM. Potisna obvestila so bila opravljena s sporočili v oblaku Firebase, ki so bila prej omenjena. Na podatkovnem listu Firebase je veliko koristnih informacij o tem, kako to uresničiti, aplikacijo pa je mogoče preskusiti tako, da pošilja obvestila z nadzorne plošče na spletnem mestu Firebase.
Vso kodo za dejavnosti in metode za pošiljanje sporočil v oblaku najdete v mojem skladišču Github.
5. korak: Zaključek
Pri merjenju BPM uporabnika je bilo nekaj velikih težav. Vrednosti so bile zelo različne in niso bile uporabne za ugotavljanje zdravja uporabnika. To se je zmanjšalo na kodo za obdelavo signala, ki je bila izvedena na ESP8266. Po dodatnih raziskavah sem ugotovil, da ima srce štiri različne impulze z različnim obdobjem, zato ni čudno, da je programska oprema netočna. Način boja proti temu bi bil vzeti povprečno štiri impulze v nizu in izračunati obdobje srca za te štiri impulze.
Preostali del sistema je bil funkcionalen, vendar je to zelo eksperimentalna naprava, ki sem jo želel zgraditi, da vidim, ali je objekt mogoč. Podedovana koda, ki je bila uporabljena za pošiljanje potisnih obvestil, bo kmalu neuporabna, zato, če to berete konec leta 2018 ali pozno, bi bila potrebna drugačna metoda. Ta težava se pojavlja le pri ESP -ju, zato če bi to želeli izvesti na Arduinu, ki podpira WiFi, ne bi bilo težav.
Če imate kakršna koli vprašanja ali težave, mi pišite na Instructables.
Priporočena:
Senzor srčnega utripa z uporabo Arduina (merilnik srčnega utripa): 3 koraki
Senzor srčnega utripa z uporabo Arduina (merilnik srčnega utripa): Senzor srčnega utripa je elektronska naprava, ki se uporablja za merjenje srčnega utripa, to je hitrosti srčnega utripa. Spremljanje telesne temperature, srčnega utripa in krvnega tlaka so osnovne stvari, s katerimi želimo ohraniti svoje zdravje
Naprava za dihanje z anksioznostjo z merilnikom srčnega utripa: 18 korakov (s slikami)
Naprava za dihanje z anksioznostjo z merilnikom srčnega utripa: Ker je svet vse bolj zaposlen, so vsi v vedno bolj stresnem okolju. Študentje imajo še večje tveganje za stres in tesnobo. Izpiti so za študente še posebej stresni, pametne ure z dihalno vajo
Merjenje srčnega utripa je na konici prsta: pristop fotopletizmografije k določanju srčnega utripa: 7 korakov
Merjenje srčnega utripa je na dosegu roke: Fotopletizmografski pristop k določanju srčnega utripa: Fotopletizmograf (PPG) je preprosta in poceni optična tehnika, ki se pogosto uporablja za odkrivanje sprememb volumna krvi v mikrovaskularni postelji tkiva. Večinoma se uporablja neinvazivno za meritve na površini kože, običajno
Kako sestaviti EKG in digitalni monitor srčnega utripa: 6 korakov
Kako sestaviti EKG in digitalni monitor srčnega utripa: Elektrokardiogram (EKG) meri električno aktivnost srčnega utripa, da pokaže, kako hitro srce bije in kakšen je njegov ritem. Obstaja električni impulz, znan tudi kot val, ki potuje skozi srce, da srčno mišico p
EKG in digitalni monitor srčnega utripa: 7 korakov (s slikami)
EKG in digitalni monitor srčnega utripa: elektrokardiogram ali EKG je zelo stara metoda za merjenje in analizo zdravja srca. Signal, ki se odčita z EKG, lahko kaže na zdravo srce ali vrsto težav. Zanesljiva in natančna zasnova je pomembna, ker če signal EKG