Obsah:
- Krok 1: Okruh
- Krok 2: Kód na spracovanie signálu a komunikácia so serverom
- Krok 3: Server a dátová komunikácia
- Krok 4: Aplikácia pre Android
- Krok 5: Záver
Video: Monitor srdcového tepu IOT (ESP8266 a aplikácia pre Android): 5 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:00
V rámci svojho posledného ročného projektu som chcel navrhnúť zariadenie, ktoré by monitorovalo váš srdcový tep, ukladalo vaše údaje na server a upozorňovalo vás na to, keď bude váš srdcový tep abnormálny. Myšlienka tohto projektu vznikla, keď som sa pokúsil vytvoriť vhodnú aplikáciu, ktorá upozorní používateľa na problémy so srdcom, ale nevedel som prísť na spôsob, ako využiť informácie v reálnom čase. Projekt má štyri hlavné časti vrátane fyzického obvodu na meranie srdcového tepu, Wi-Fi modulu ESP8266 s kódom na spracovanie signálu, servera na uloženie kódu a aplikácie pre Android na zobrazenie srdcového tepu.
Video s podrobnosťami o fyzickom obvode je možné vidieť vyššie. Všetok kód projektu nájdete na mojom Github.
Krok 1: Okruh
Existujú dve hlavné metódy merania srdcového tepu, ale pre tento projekt som sa rozhodol použiť fotopletyzmografiu (PPG), ktorá používa zdroj infračerveného alebo červeného svetla, ktorý sa láme cez prvých niekoľko vrstiev kože. Fotosenzor sa používa na meranie zmeny intenzity svetla (keď krv preteká cievou). Signály PPG sú neuveriteľne hlučné, a tak som na odfiltrovanie požadovaných konkrétnych frekvencií použil pásmový filter. Ľudské srdce bije v frekvencii 1 až 1,6 Hz. Operačný zosilňovač, ktorý som použil, bol lm324, ktorý mal najlepší offset napätia zo všetkých operačných zosilňovačov, ktoré som mal k dispozícii. Ak rekonštruujete tento projekt, presný operačný zosilňovač by bol oveľa lepšou voľbou.
Bol použitý zisk iba dvoch, pretože maximálna tolerancia napätia na ESP8266 je 3,3 V a nechcel som poškodiť svoju dosku!
Postupujte podľa vyššie uvedeného obvodu a pokúste sa dosiahnuť, aby fungoval na doske na chlieb. Ak doma nemáte osciloskop, môžete zapojiť výstup do Arduina a vykresliť ho, ale uistite sa, že napätie nie je vyššie ako tolerancia arduina alebo mikrokontroléra.
Obvod bol testovaný na doske na chlieb a zmena výstupu bola pozorovaná, keď bol prst položený cez LED a foto tranzistor. Potom som sa rozhodol spájkovať dosku, ktorá nie je zobrazená na videu.
Krok 2: Kód na spracovanie signálu a komunikácia so serverom
Rozhodol som sa použiť Arduino IDE na ESP8266, pretože je to tak jednoduché. Keď bol signál vykreslený, bol stále veľmi hlučný, a tak som sa rozhodol vyčistiť ho filtrom FIR s kĺzavým priemerom so vzorkovým číslom desať. Na tento účel som upravil príklad programu Arduino s názvom „vyhladzovanie“. Trochu som experimentoval, aby som našiel spôsob merania frekvencie signálu. Pulzy mali rôznu dĺžku a amplitúdu kvôli srdcu so štyrmi rôznymi druhmi impulzov a charakteristike signálov PPG. Vybral som známu strednú hodnotu, ktorú signál vždy prešiel ako referenčný bod pre každý impulz. Na určenie, či je sklon signálu kladný alebo záporný, som použil krúžkový pufer. Kombinácia týchto dvoch mi umožnila vypočítať periódu medzi impulzmi, keď bol signál pozitívny a rovnal sa konkrétnej hodnote.
Tento softvér produkoval dosť nepresný BPM, ktorý sa v skutočnosti nedal použiť. S ďalšími iteráciami by mohol byť navrhnutý lepší program, ale kvôli časovým obmedzeniam to nebolo možné. Kód nájdete v nižšie uvedenom odkaze.
Softvér ESP8266
Krok 3: Server a dátová komunikácia
Na uloženie údajov som sa rozhodol použiť Firebase, pretože je to bezplatná služba a veľmi ľahko sa používa s mobilnými aplikáciami. S ESP8266 neexistuje žiadne oficiálne API pre Firebase, ale zistil som, že knižnica Arduino funguje veľmi dobre.
Existuje príklad programu, ktorý sa nachádza v knižnici ESP8266WiFi.h a ktorý vám umožňuje pripojiť sa k smerovaču pomocou SSID a hesla. Toto slúžilo na pripojenie dosky k internetu, aby bolo možné odosielať údaje.
Napriek tomu, že ukladanie údajov bolo jednoduché, stále existuje niekoľko problémov s odosielaním upozornení push prostredníctvom požiadavky HTTP POST. Našiel som komentár k Githubu, ktorý používal starší spôsob, ako to urobiť prostredníctvom cloudových správ Google a knižnice HTTP pre ESP8266. Túto metódu je možné vidieť v kóde na mojom Githube.
Na Firebase som vytvoril projekt a v softvéri som použil API a registračné kľúče. Cloudové správy na platforme firebase boli v aplikácii použité na odosielanie upozornení push používateľovi. Keď bola komunikácia testovaná, v databáze ESP8266 bolo možné vidieť údaje.
Krok 4: Aplikácia pre Android
Úplne základná aplikácia pre Android bola navrhnutá s dvoma aktivitami. Prvá aktivita prihlásila používateľa alebo ho zaregistrovala pomocou rozhrania Firebase API. Preskúmal som technický list a našiel som rôzne návody, ako používať Firebase s mobilnou aplikáciou. Hlavná aktivita, ktorá zobrazovala užívateľovi údajov používateľa, poslucháč udalostí v reálnom čase, takže nedochádzalo k výraznému oneskoreniu zmien v BPM používateľa. Upozornenia push boli vykonávané pomocou cloudových správ Firebase, ktoré boli uvedené vyššie. V technickom liste Firebase je veľa užitočných informácií o tom, ako to implementovať a aplikáciu je možné testovať na odosielanie upozornení z hlavného panela na webe Firebase.
Všetok kód aktivít a metódy pre cloudové správy nájdete v mojom úložisku Github.
Krok 5: Záver
Vyskytlo sa niekoľko zásadných problémov s meraním BPM používateľa. Hodnoty sa veľmi líšili a neboli použiteľné na stanovenie zdravia používateľa. To sa scvrklo na kód spracovania signálu, ktorý bol implementovaný do ESP8266. Po dodatočnom výskume som zistil, že srdce má štyri rôzne pulzy s rôznym obdobím, a preto nebolo divu, že softvér bol nepresný. Spôsobom boja proti tomu by bolo zobrať priemer štyroch impulzov v poli a vypočítať periódu srdca cez tieto štyri impulzy.
Zvyšok systému bol funkčný, ale toto je veľmi experimentálne zariadenie, ktoré som chcel postaviť, aby som zistil, či je objekt možný. Starší kód, ktorý bol použitý na odosielanie upozornení push, bude čoskoro nepoužiteľný, takže ak si to prečítate koncom roka 2018 alebo neskoro, bude potrebné použiť inú metódu. Tento problém sa vyskytuje iba pri ESP, takže ak by ste to chceli implementovať na Arduino s podporou WiFi, nebol by žiadny problém.
Ak máte akékoľvek otázky alebo problémy, neváhajte mi napísať na Instructables.
Odporúča:
Snímač srdcového tepu pomocou Arduina (monitor srdcového tepu): 3 kroky
Snímač srdcového tepu pomocou Arduina (monitor srdcového tepu): Senzor srdcového tepu je elektronické zariadenie, ktoré sa používa na meranie srdcovej frekvencie, t. J. Rýchlosti srdcového tepu. Monitorovanie telesnej teploty, srdcového tepu a krvného tlaku sú základné veci, ktoré robíme, aby sme boli zdraví. Srdcovú frekvenciu je možné monitorovať
Monitor srdcového tepu Arduino: 5 krokov
Monitor srdcovej frekvencie Arduino: Ahoj všetci, postavil som tento ručný monitor srdcového tepu ovládaný Arduino
EKG a monitor srdcového tepu: 6 krokov
EKG a monitor srdcového tepu: Elektrokardiogram, tiež nazývaný EKG, je test, ktorý zisťuje a zaznamenáva elektrickú aktivitu ľudského srdca. Zisťuje srdcovú frekvenciu a silu a načasovanie elektrických impulzov prechádzajúcich každou časťou srdca, ktorá je schopná identifikovať
Jednoduchý obvod záznamu EKG a monitor srdcového tepu LabVIEW: 5 krokov
Jednoduchý obvod záznamu EKG a monitor srdcového tepu LabVIEW: „Toto nie je zdravotnícke zariadenie. Toto je len na vzdelávacie účely pomocou simulovaných signálov. Ak používate tento obvod na skutočné meranie EKG, zaistite, aby obvod a pripojenia obvodu k prístroju používali správnu izoláciu
Digitálne EKG a monitor srdcového tepu: 8 krokov
Digitálne EKG a monitor srdcového tepu: UPOZORNENIE: Toto nie je zdravotnícke zariadenie. Toto je len na vzdelávacie účely pomocou simulovaných signálov. Ak používate tento obvod na skutočné meranie EKG, uistite sa, že obvod a pripojenia obvodu k prístroju využívajú energiu batérie a