Satura rādītājs:

IOT sirdsdarbības monitors (ESP8266 un Android lietotne): 5 soļi
IOT sirdsdarbības monitors (ESP8266 un Android lietotne): 5 soļi

Video: IOT sirdsdarbības monitors (ESP8266 un Android lietotne): 5 soļi

Video: IOT sirdsdarbības monitors (ESP8266 un Android lietotne): 5 soļi
Video: Как отслеживать и контролировать ESP32 из любой точки мира с помощью RemoteXY IoT Cloud 2024, Jūlijs
Anonim
Image
Image

Pēdējā gada projekta ietvaros es vēlējos izveidot ierīci, kas uzraudzītu jūsu sirdsdarbības ātrumu, saglabātu jūsu datus serverī un ar paziņojumu paziņotu, kad jūsu sirdsdarbības ātrums ir neparasts. Šī projekta ideja radās, kad es mēģināju izveidot piemērotu lietotni, kas informē lietotāju, ja viņam ir sirds problēmas, bet es nevarēju izdomāt reāllaika informācijas izmantošanas veidu. Projektam ir četras galvenās daļas ieskaitot fizisko ķēdi sirdsdarbības mērīšanai, ESP8266 Wi-Fi moduli ar signāla apstrādes kodu, serveri koda glabāšanai un Android lietotni sirdsdarbības rādīšanai.

Video, kurā sīki aprakstīta fiziskā ķēde, var redzēt iepriekš. Visu projekta kodu var atrast manā Github.

1. solis: ķēde

Ķēde
Ķēde

Ir divas galvenās sirdsdarbības mērīšanas metodes, taču šim projektam es nolēmu izmantot fotopletismogrāfiju (PPG), kurā tiek izmantots infrasarkanais vai sarkanais gaismas avots, kas tiek lauzts caur pirmajiem ādas slāņiem. Foto sensoru izmanto, lai izmērītu gaismas intensitātes izmaiņas (kad asinis plūst caur trauku). PPG signāli ir neticami trokšņaini, tāpēc es izmantoju joslas caurlaidības filtru, lai filtrētu nepieciešamās frekvences. Cilvēka sirds pukst no 1 līdz 1,6 Hz frekvencē. Izmantotais op-amp bija lm324, kuram bija vislabākais sprieguma nobīde no visiem man pieejamajiem op-amp. Ja jūs atjaunojat šo projektu, precīzāka op-amp būtu daudz labāka izvēle.

Tika izmantots tikai divu pastiprinājums, jo ESP8266 maksimālā sprieguma pielaide ir 3.3v, un es negribēju sabojāt savu dēli!

Sekojiet iepriekšējai shēmai un mēģiniet panākt, lai tā darbotos uz maizes dēļa. Ja mājās nav osciloskopa, varat pievienot izeju Arduino un uzzīmēt to, bet pārliecinieties, vai spriegums nav augstāks par arduino vai mikrokontrollera pielaidi.

Ķēde tika pārbaudīta uz maizes dēļa, un tika novērotas izmaiņas izejā, kad pirksts tika novietots pāri gaismas diodei un foto tranzistoram. Pēc tam es nolēmu pielodēt dēli kopā, kas nebija redzams videoklipā.

2. darbība: signālu apstrādes kods un servera sakari

Image
Image
Signālu apstrādes kods un servera sakari
Signālu apstrādes kods un servera sakari

Es nolēmu izmantot Arduino IDE uz ESP8266, jo to ir tik viegli lietot. Kad signāls tika uzzīmēts, tas joprojām bija ļoti trokšņains, tāpēc es nolēmu to notīrīt ar FIR slīdošo vidējo filtru ar parauga skaitu desmit. Lai to izdarītu, es modificēju Arduino programmas piemēru ar nosaukumu "izlīdzināšana". Es nedaudz eksperimentēju, lai atrastu veidu, kā izmērīt signāla frekvenci. Impulsi bija dažāda garuma un amplitūdas, jo sirdij bija četri dažādi impulsu veidi un PPG signālu īpašības. Es izvēlējos zināmu vidējo vērtību, kuru signāls vienmēr šķērsoja kā atskaites punktu katram impulsam. Es izmantoju gredzena buferi, lai noteiktu, kad signāla slīpums bija pozitīvs vai negatīvs. Šo divu kombinācija ļāva man aprēķināt periodu starp impulsiem, kad signāls bija pozitīvs un bija vienāds ar noteiktu vērtību.

Programmatūra radīja diezgan neprecīzu BPM, kuru faktiski nevarēja izmantot. Izmantojot papildu atkārtojumus, varētu izveidot labāku programmu, taču laika ierobežojumu dēļ tā nebija iespēja. Kods ir atrodams zemāk esošajā saitē.

Programmatūra ESP8266

3. darbība: serveris un datu sakari

Serveris un datu sakari
Serveris un datu sakari

Es nolēmu datu glabāšanai izmantot Firebase, jo tas ir bezmaksas pakalpojums, un to ir ļoti viegli izmantot mobilajās lietotnēs. Ar ESP8266 nav oficiālas Firebase API, bet es atklāju, ka Arduino bibliotēka strādāja ļoti labi.

Programmas paraugs ir atrodams bibliotēkā ESP8266WiFi.h, kas ļauj izveidot savienojumu ar maršrutētāju, izmantojot SSID un paroli. To izmantoja, lai savienotu dēli ar internetu, lai varētu nosūtīt datus.

Lai gan datu saglabāšana bija viegli izdarāma, joprojām ir vairākas problēmas, nosūtot push paziņojumus, izmantojot HTTP POST pieprasījumu. Es atradu komentāru par Github, kas izmantoja mantoto metodi, lai to izdarītu, izmantojot Google mākoņa ziņojumapmaiņu un HTTP bibliotēku ESP8266. Šo metodi var redzēt manā Github kodā.

Vietnē Firebase es izveidoju projektu un programmatūrā izmantoju API un reģistrācijas atslēgas. Firebase mākoņa ziņojumapmaiņa tika izmantota kopā ar lietotni, lai lietotājam nosūtītu push paziņojumus. Kad tika pārbaudīti sakari, datus varēja redzēt datu bāzē ESP8266 darbības laikā.

4. solis: Android lietotne

Android lietotne
Android lietotne

Tika izstrādāta ļoti vienkārša Android lietotne ar divām darbībām. Pirmā darbība pierakstīja lietotāju vai reģistrēja viņu, izmantojot Firebase API. Es izpētīju datu lapu un atradu dažādas apmācības par to, kā lietot Firebase ar mobilo lietotni. Galvenā darbība, kas parādīja lietotāja datu lietotāju reāllaika notikumu klausītāju, tāpēc lietotāja BPM izmaiņas nebija ievērojami kavējušās. Stumšanas paziņojumi tika veikti, izmantojot iepriekš minēto Firebase mākoņa ziņojumapmaiņu. Firebase datu lapā ir daudz noderīgas informācijas par to, kā to ieviest, un lietotni var pārbaudīt, nosūtot paziņojumus no Firebase vietnes informācijas paneļa.

Visu aktivitāšu kodu un mākoņa ziņojumapmaiņas metodes var atrast manā Github krātuvē.

5. darbība. Secinājums

Mērot lietotāja BPM, radās dažas lielas problēmas. Vērtības bija ļoti atšķirīgas un nebija izmantojamas, lai noteiktu lietotāja veselību. Tas bija saistīts ar signāla apstrādes kodu, kas tika ieviests ESP8266. Pēc papildu izpētes es atklāju, ka sirdij ir četri dažādi impulsi ar atšķirīgu periodu, tāpēc nebija brīnums, ka programmatūra bija neprecīza. Viens veids, kā to novērst, ir ņemt vidēji četrus masīva impulsus un aprēķināt sirds periodu šiem četriem impulsiem.

Pārējā sistēma bija funkcionāla, taču šī ir ļoti eksperimentāla ierīce, kuru es gribēju izveidot, lai redzētu, vai objekts ir iespējams. Mantojuma kods, kas tika izmantots push paziņojumu nosūtīšanai, drīz vairs nebūs izmantojams, tādēļ, ja lasāt šo ziņojumu 2018. gada beigās vai vēlu, būs nepieciešama cita metode. Šī problēma rodas tikai ar ESP, taču, ja vēlaties to ieviest Arduino, kas spēj izmantot WiFi, tas nebūtu problēma.

Ja jums ir kādi jautājumi vai jautājumi, lūdzu, nekautrējieties rakstīt man uz Instructables.

Ieteicams: