INHOUDSOPGAWE:
- Stap 1: Die stroombaan
- Stap 2: Die seinverwerkingskode en bedienerkommunikasie
- Stap 3: Die bediener- en datakommunikasie
- Stap 4: Die Android -app
- Stap 5: Gevolgtrekking
Video: IOT -hartslagmeter (ESP8266 en Android -app): 5 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
As deel van my finalejaarsprojek wou ek 'n toestel ontwerp wat u hartklop kan monitor, u data op 'n bediener kan stoor en u per kennisgewing sal laat weet wanneer u hartklop abnormaal is. Die idee agter hierdie projek het gekom toe ek probeer om 'n fit-bit-app te bou wat 'n gebruiker in kennis stel wanneer hulle 'n hartprobleem het, maar ek kon nie 'n manier vind om inligting in real-time te gebruik nie. insluitend die fisiese stroombaan vir die meting van die hartklop, 'n ESP8266 Wi-Fi-module met seinverwerkingskode, die bediener om die kode te stoor en 'n Android-app om die hartklop te vertoon.
'N Video met 'n uiteensetting van die fisiese stroombaan kan hierbo gesien word. Al die kode vir die projek kan op my Github gevind word.
Stap 1: Die stroombaan
Daar is twee hoofmetodes om 'n hartklop te meet, maar vir hierdie projek het ek besluit om fotoplethysmografie (PPG) te gebruik wat 'n infrarooi of rooi ligbron gebruik wat deur die eerste paar lae van die vel gebreek word. 'N Fotosensor word gebruik om die verandering in ligintensiteit (wanneer bloed deur 'n vaartuig vloei) te meet. PPG seine is ongelooflik raserig, so ek het 'n bandpasfilter gebruik om die spesifieke frekwensies wat benodig word, uit te filter. 'N Menslike hart klop tussen 1 en 1,6 Hz frekwensie. Die op-amp wat ek gebruik het, was die lm324 wat die beste spanningsverskyning gehad het van al die op-versterkers wat vir my beskikbaar was. As u hierdie projek herskep, is 'n presiese op-amp 'n baie beter keuse.
'N Versterking van slegs twee is gebruik omdat die maksimum spanningstoleransie op die ESP8266 3.3v is en ek nie my bord wou beskadig nie!
Volg die kring hierbo en probeer om dit op 'n broodbord te laat werk. As u nie 'n ossilloskoop tuis het nie, kan u die uitset in 'n Arduino aansluit en dit teken, maar seker maak dat die spanning nie hoër is as die toleransie van die arduino- of mikrokontroleur nie.
Die kring is op 'n broodbord getoets en 'n verandering in die uitset is waargeneem toe 'n vinger oor die LED en fototransistor geplaas is. Ek besluit toe om die bord saam te soldeer wat nie in die video verskyn nie.
Stap 2: Die seinverwerkingskode en bedienerkommunikasie
Ek het besluit om die Arduino IDE op die ESP8266 te gebruik omdat dit so maklik is om te gebruik. Toe die sein uitgestippel word, was dit nog steeds baie raserig, en ek het besluit om dit skoon te maak met 'n FIR bewegende gemiddelde filter met 'n steekproefgetal van tien. Ek het 'n voorbeeld van 'n Arduino -program met die naam "smoothing" aangepas om dit te doen. Ek het 'n bietjie geëksperimenteer om 'n manier te vind om die frekwensie van die sein te meet. Die pulse was van verskillende lengte en amplitude as gevolg van die hart wat vier verskillende tipes pulse het en die eienskappe van PPG seine. Ek het 'n bekende middelwaarde gekies wat die sein altyd as 'n verwysingspunt vir elke pols oorgesteek het. Ek het 'n ringbuffer gebruik om te bepaal wanneer die helling van die sein positief of negatief was. Die kombinasie van hierdie twee het my in staat gestel om die tydperk tussen die pulse te bereken wanneer die sein positief was en gelyk was aan 'n spesifieke waarde.
Die sagteware het 'n redelik onakkurate BPM gelewer wat eintlik nie gebruik kon word nie. Met ekstra herhalings kan 'n beter program ontwerp word, maar as gevolg van tydsbeperkings was dit nie 'n opsie nie. Die kode kan gevind word in die onderstaande skakel.
ESP8266 sagteware
Stap 3: Die bediener- en datakommunikasie
Ek het besluit om Firebase te gebruik om die data te stoor, aangesien dit 'n gratis diens is en baie maklik is om saam met mobiele programme te gebruik. Daar is geen amptelike API vir Firebase met die ESP8266 nie, maar ek het gevind dat die Arduino -biblioteek baie goed werk.
Daar is 'n voorbeeldprogram in die ESP8266WiFi.h -biblioteek waarmee u met 'n router met die SSID en die wagwoord kan skakel. Dit is gebruik om die bord aan die internet te koppel sodat data gestuur kan word.
Alhoewel dit maklik was om data te stoor, is daar steeds 'n aantal probleme met die stuur van die stootkennisgewings via 'n HTTP POST -versoek. Ek het 'n opmerking gevind oor die Github wat 'n ou metode gebruik het om dit te doen via Google -wolkboodskappe en die HTTP -biblioteek vir ESP8266. Hierdie metode kan gesien word in die kode op my Github.
Op Firebase het ek 'n projek geskep en die API en registrasiesleutels in die sagteware gebruik. Die vuurbasis -wolkboodskappe is saam met die app gebruik om stootkennisgewings na die gebruiker te stuur. Toe die kommunikasie getoets is, kon data in die databasis gesien word terwyl die ESP8266 aan die gang was.
Stap 4: Die Android -app
'N Baie basiese Android -app is ontwerp met twee aktiwiteite. Die eerste aktiwiteit het die gebruiker aangemeld of met die Firebase API geregistreer. Ek het die datablad ondersoek en verskillende tutoriale gevind oor hoe om Firebase met 'n mobiele app te gebruik. Die belangrikste aktiwiteit wat die data -gebruiker van die gebruiker vertoon het, was 'n intydse luisteraar, sodat daar geen merkbare vertraging was in die veranderinge aan die BPM van die gebruiker nie. Die stootkennisgewings is gedoen met behulp van Firebase -wolkboodskappe wat voorheen genoem is. Daar is baie nuttige inligting oor die Firebase -datablad oor hoe om dit te implementeer, en die app kan getoets word deur kennisgewings vanaf die paneelbord op die Firebase -webwerf te stuur.
Al die kode vir die aktiwiteite en die metodes vir die wolkboodskappe kan gevind word in my Github Repository.
Stap 5: Gevolgtrekking
Daar was 'n paar groot probleme met die meting van die BPM van die gebruiker. Die waardes het baie gewissel en was nie bruikbaar om die gesondheid van 'n gebruiker te bepaal nie. Dit kom neer op die seinverwerkingskode wat op die ESP8266 geïmplementeer is. Na bykomende navorsing het ek uitgevind dat 'n hart vier verskillende polse het met 'n wisselende tydperk, dus dit was geen wonder dat die sagteware onakkuraat was nie. 'N Manier om dit te bestry, is om 'n gemiddelde van die vier pulse in 'n skikking te neem en die tydperk van die hart oor die vier pulse te bereken.
Die res van die stelsel was funksioneel, maar dit is 'n baie eksperimentele toestel wat ek wou bou om te sien of die voorwerp moontlik is. Die ou kode wat gebruik is om stootkennisgewings te stuur, sal binnekort onbruikbaar wees, dus as u dit laat in 2018 of laat lees, is 'n ander metode nodig. Hierdie probleem kom slegs by die ESP voor, maar as u dit op 'n WiFi -geskikte Arduino wil implementeer, is dit geen probleem nie.
As u enige vrae of probleme het, stuur 'n boodskap aan my op Instructables.
Aanbeveel:
Hoe om ESP8266 AT -firmware te flits of te programmeer met behulp van ESP8266 -flitser en programmeerder, IOT Wifi -module: 6 stappe
Hoe om ESP8266 AT-firmware te flits of te programmeer deur ESP8266-flitser en programmeerder, IOT Wifi-module te gebruik: Beskrywing: Hierdie module is 'n USB-adapter /programmeerder vir ESP8266-modules van die tipe ESP-01 of ESP-01S. Dit is gerieflik toegerus met 'n 2x4P 2.54mm vroulike kop om die ESP01 aan te sluit. Dit breek ook al die penne van die ESP-01 uit via 'n 2x4P 2.54mm manlike h
ESP8266 NODEMCU BLYNK IOT Tutoriaal - Esp8266 IOT Gebruik Blunk en Arduino IDE - Beheer van LED's oor die internet: 6 stappe
ESP8266 NODEMCU BLYNK IOT Tutoriaal | Esp8266 IOT Gebruik Blunk en Arduino IDE | LED's op die internet beheer: Hallo ouens, in hierdie instruksies leer ons hoe om IOT te gebruik met ons ESP8266 of Nodemcu. Ons sal die blynk -app daarvoor gebruik, dus ons sal ons esp8266/nodemcu gebruik om die LED's via die internet te beheer
Hoe om die Android -toepassing aan te sluit met AWS IOT en die verstaan van API vir stemherkenning: 3 stappe
Hoe om die Android -toepassing aan te sluit met AWS IOT en die verstaan van API vir stemherkenning: hierdie handleiding leer die gebruiker hoe om die Android -toepassing aan die AWS IOT -bediener te koppel en die stemherkennings -API te verstaan wat 'n koffiemasjien beheer. Voice Service, elke app se
Raspberry Pi, Android, IoT en Bluetooth -aangedrewe drone: 7 stappe (met foto's)
Raspberry Pi, Android, IoT en Bluetooth-aangedrewe drone: Met behulp van 'n Raspberry Pi vir die ingeboude logika, sal hierdie kompakte, mobiele rekenaar 'n plaaslike poort skep wat 'n video in real-time stroom, terwyl dit terselfdertyd Bluetooth-voetstukke skep om waardes te lees gestuur deur 'n pasgemaakte Android -app. Die app sinchroniseer met
IoT Home Weather Monitoring System met ondersteuning vir Android -toepassings (Mercury Droid): 11 stappe
IoT Home Weather Monitoring System Met Android -toepassingsondersteuning (Mercury Droid): Inleiding Mercury Droid is 'n soort IoT (Internet of Things) ingebedde stelsel wat gebaseer is op Mercury Droid Android Mobile Application. Wat in staat is om te meet & monitor die weerweeraktiwiteite tuis. dit is 'n baie goedkoop stelsel vir monitering van tuisweer