Përmbajtje:

Monitor IOT i Ritmit të Zemrës (ESP8266 dhe Aplikacioni Android): 5 hapa
Monitor IOT i Ritmit të Zemrës (ESP8266 dhe Aplikacioni Android): 5 hapa

Video: Monitor IOT i Ritmit të Zemrës (ESP8266 dhe Aplikacioni Android): 5 hapa

Video: Monitor IOT i Ritmit të Zemrës (ESP8266 dhe Aplikacioni Android): 5 hapa
Video: Doktori në familje - Çrregullimet e ritmit të zemrës (Aritmia) Dr. Elton Qeli 2024, Korrik
Anonim
Image
Image

Si pjesë e projektit tim të fundit, unë doja të krijoja një pajisje që do të monitoronte rrahjet e zemrës suaj, do t'i ruante të dhënat tuaja në një server dhe do t'ju njoftonte përmes njoftimit kur rrahjet tuaja të zemrës ishin jonormale. Ideja prapa këtij projekti erdhi kur u përpoqa të krijoj një aplikacion të përshtatshëm-bit që njofton një përdorues kur ata kanë një problem në zemër, por nuk mund të gjej një mënyrë për të përdorur informacionin në kohë reale. Projekti ka katër pjesë kryesore përfshirë qarkun fizik për matjen e rrahjeve të zemrës, një modul ESP8266 Wi-Fi me kod përpunimi të sinjalit, serverin për ruajtjen e kodit dhe një aplikacion Android për shfaqjen e rrahjeve të zemrës.

Një video që detajon qarkun fizik mund të shihet më sipër. I gjithë kodi për projektin mund të gjendet në Github tim.

Hapi 1: Qarku

Qarku
Qarku

Ekzistojnë dy metoda kryesore për të matur rrahjet e zemrës, por për këtë projekt vendosa të përdor photoplethysmography (PPG) e cila përdor një burim të dritës infra të kuqe ose të kuqe e cila thyhet përmes shtresave të para të lëkurës. Një sensor fotografik përdoret për të matur ndryshimin në intensitetin e dritës (kur gjaku rrjedh nëpër një enë). Sinjalet PPG janë tepër të zhurmshme kështu që unë përdor një filtër brezi për të filtruar frekuencat specifike të kërkuara. Zemra e njeriut rreh midis frekuencës 1 dhe 1.6 Hz. Op-amp-i që kam përdorur ishte lm324 i cili kishte ndërprerjen më të mirë të tensionit nga të gjithë op-amps që ishin në dispozicion për mua. Nëse jeni duke e rikrijuar këtë projekt atëherë një op-amp preciz do të ishte një zgjedhje shumë më e mirë.

Një përfitim prej vetëm dy u përdor sepse toleranca maksimale e tensionit në ESP8266 është 3.3v dhe nuk doja të dëmtoja bordin tim!

Ndiqni qarkun e mësipërm dhe përpiquni ta bëni atë të punojë në një dërrasë bukë. Nëse nuk keni një oshiloskop në shtëpi, mund ta lidhni daljen në një Arduino dhe ta vizatoni atë, por sigurohuni që tensioni të mos jetë më i lartë se toleranca e arduino ose mikrokontrolluesit.

Qarku u testua në një dërrasë buke dhe një ndryshim në dalje u vu re kur një gisht u vendos në transistorin LED dhe fotografik. Pastaj vendosa të bashkoj bordin së bashku, i cili nuk u shfaq në video.

Hapi 2: Kodi i Përpunimit të Sinjalit dhe Komunikimet e Serverit

Image
Image
Kodi i Përpunimit të Sinjalit dhe Komunikimet e Serverit
Kodi i Përpunimit të Sinjalit dhe Komunikimet e Serverit

Vendosa të përdor Arduino IDE në ESP8266 sepse është kaq i lehtë për t'u përdorur. Kur sinjali u vizatua, ai ishte akoma shumë i zhurmshëm, kështu që vendosa ta pastroj me një filtër mesatar lëvizës FIR me një numër kampioni prej dhjetë. Ndryshova një shembull të programit Arduino të quajtur "zbutje" për ta bërë këtë. Unë eksperimentova pak në mënyrë që të gjeja një mënyrë për të matur frekuencën e sinjalit. Impulset ishin me gjatësi dhe amplitudë të ndryshme për shkak të faktit se zemra kishte katër lloje të ndryshme të pulseve dhe karakteristikat e sinjaleve PPG. Zgjodha një vlerë të mesme të njohur që sinjali e kalonte gjithmonë si pikë referimi për secilin puls. Kam përdorur një tampon unazor për të përcaktuar kur pjerrësia e sinjalit ishte pozitive ose negative. Kombinimi i këtyre të dyjave më lejoi të llogarisja periudhën midis pulseve kur sinjali ishte pozitiv dhe ishte i barabartë me një vlerë specifike.

Softueri prodhoi një BPM mjaft të pasaktë, e cila në të vërtetë nuk mund të përdoret. Me përsëritje shtesë mund të hartohej një program më i mirë, por për shkak të kufizimeve kohore ky nuk ishte një opsion. Kodi mund të gjendet në lidhjen më poshtë.

Softueri ESP8266

Hapi 3: Serveri dhe komunikimet e të dhënave

Komunikimi i serverit dhe të dhënave
Komunikimi i serverit dhe të dhënave

Vendosa të përdor Firebase për të ruajtur të dhënat pasi është një shërbim falas dhe është shumë i lehtë për t'u përdorur me aplikacionet celulare. Nuk ka asnjë API zyrtare për Firebase me ESP8266, por gjeta se biblioteka Arduino funksionoi shumë mirë.

Ekziston një shembull program që mund të gjendet në bibliotekën ESP8266WiFi.h i cili ju lejon të lidheni me një ruter me SSID dhe Fjalëkalimin. Kjo u përdor për të lidhur tabelën me internetin në mënyrë që të dhënat të dërgoheshin.

Edhe pse ruajtja e të dhënave u bë me lehtësi, ka ende një numër çështjesh me dërgimin e njoftimeve push përmes një kërkese HTTP POST. Gjeta një koment në Github i cili përdori një metodë të trashëguar për ta bërë këtë përmes mesazheve cloud të Google dhe bibliotekës HTTP për ESP8266. Kjo metodë mund të shihet në kodin në Github tim.

Në Firebase krijova një projekt dhe përdorja API dhe çelësat e regjistrimit në softuer. Mesazhet cloud cloud të bazës së zjarrit u përdorën me aplikacionin për të dërguar njoftime shtytëse te përdoruesi. Kur komunikimet u testuan, të dhënat mund të shiheshin në bazën e të dhënave ndërsa ESP8266 ishte duke punuar.

Hapi 4: Aplikacioni Android

Aplikacioni Android
Aplikacioni Android

Një aplikacion shumë themelor Android u krijua me dy aktivitete. Aktiviteti i parë e regjistroi përdoruesin ose e regjistroi atë duke përdorur API Firebase. Hulumtova fletën e të dhënave dhe gjeta mësime të ndryshme se si të përdorni Firebase me një aplikacion celular. Aktiviteti kryesor i cili shfaq përdoruesin e të dhënave të përdoruesit në një dëgjues të ngjarjeve në kohë reale, kështu që nuk pati ndonjë vonesë të dukshme në ndryshimet në BPM të përdoruesit. Njoftimet shtytëse janë bërë duke përdorur mesazhet cloud cloud Firebase që u përmendën më parë. Ka shumë informacione të dobishme në fletën e të dhënave Firebase se si ta zbatoni këtë dhe aplikacioni mund të testohet duke dërguar njoftime nga pulti në faqen e internetit të Firebase.

I gjithë kodi për aktivitetet dhe metodat për mesazhet cloud mund të gjenden në depon time të Github.

Hapi 5: Përfundimi

Kishte disa çështje kryesore me matjen e BPM të përdoruesit. Vlerat ndryshuan shumë dhe nuk ishin të përdorshme për të përcaktuar shëndetin e përdoruesit. Kjo zbriti në kodin e përpunimit të sinjalit që u zbatua në ESP8266. Pas hulumtimeve shtesë zbulova se një zemër ka katër pulse të ndryshme me periudha të ndryshme, kështu që nuk ishte çudi që softueri ishte i pasaktë. Një mënyrë për ta luftuar këtë do të ishte marrja e një mesatare prej katër pulseve në një grup dhe llogaritja e periudhës së zemrës mbi ato katër pulsime.

Pjesa tjetër e sistemit ishte funksionale, por kjo është një pajisje shumë eksperimentale që doja të ndërtoja për të parë nëse objekti ishte i mundur. Kodi i trashëguar që u përdor për të dërguar njoftime push së shpejti do të jetë i papërdorshëm, kështu që nëse e lexoni këtë në fund të vitit 2018 ose vonë, do të kërkohej një metodë tjetër. Kjo çështje ndodh vetëm me ESP edhe pse kështu që nëse dëshironi ta zbatoni këtë në një Arduino të aftë për WiFi nuk do të ishte problem.

Nëse keni ndonjë pyetje ose çështje, ju lutem mos ngurroni të më dërgoni mesazh në Instructables.

Recommended: