Мазмуну:
- 1 -кадам: Circuit
- 2 -кадам: Сигналды иштетүү коду жана Server Communications
- 3 -кадам: Сервер жана маалымат байланыштары
- 4 -кадам: Android колдонмосу
- 5 -кадам: Жыйынтык
Video: IOT Heart Rate Monitor (ESP8266 жана Android App): 5 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Акыркы жылдык долбоорумдун бир бөлүгү катары мен сиздин жүрөктүн кагышын көзөмөлдөгөн, маалыматыңызды серверде сактаган жана жүрөгүңүздүн согушу нормалдуу болбогондо сизге билдирүү аркылуу билдирүүчү түзүлүштү жасоону кааладым. Бул долбоордун артында идея мен колдонуучуга жүрөк оорусуна кабылганда, бирок мен реалдуу убакытта маалыматты колдонуунун жолун таба албаган fit-bit тиркемесин түзүүгө аракет кылганымда келди. Долбоор төрт негизги бөлүктөн турат анын ичинде жүрөктүн согуусун өлчөө үчүн физикалык схема, сигналды иштетүү коду бар ESP8266 Wi-Fi модулу, кодду сактоо үчүн сервер жана жүрөктүн кагышын көрсөтүү үчүн Android колдонмосу.
Физикалык схеманы чагылдырган видеону жогоруда көрүүгө болот. Долбоордун бардык кодун менин Githubдан тапса болот.
1 -кадам: Circuit
Жүрөктүн согуусун өлчөөнүн эки негизги ыкмасы бар, бирок бул долбоор үчүн мен теринин алгачкы бир нече катмарлары аркылуу сынган инфракызыл же кызыл жарык булагын колдонгон фотоплетизмографияны (PPG) колдонууну чечтим. Фото сенсор жарыктын интенсивдүүлүгүнүн өзгөрүшүн өлчөө үчүн колдонулат (кан идиш аркылуу кан агып жатканда). PPG сигналдары абдан ызы -чуу болуп саналат, ошондуктан мен керектүү конкреттүү жыштыктарды чыпкалоо үчүн диапазондуу чыпканы колдондум. Адамдын жүрөгү 1-1,6 Гц жыштыкта согот. Мен колдонгон оп-амп lm324 болчу, ал мага жеткиликтүү болгон бардык оп-амперлердин эң жакшы чыңалуусуна ээ болчу. Эгерде сиз бул долбоорду кайра жаратып жатсаңыз, анда тактык оп-амп бир кыйла жакшы тандоо болмок.
ESP8266 боюнча максималдуу чыңалуу толеранттуулугу 3.3v болгондуктан, экөөнүн гана пайдасы колдонулду, мен тактайыма зыян келтиргим келген жок!
Жогорудагы схеманы ээрчип, аны нан тактасында иштетүүгө аракет кылыңыз. Эгерде сизде үйдө осциллограф жок болсо, анда сиз чыгууну Arduinoго туташтырып, аны пландаштырсаңыз болот, бирок чыңалуу arduino же микроконтроллердин толеранттуулугунан жогору эмес экенин текшериңиз.
Схема нан тактасында сыналган жана LED жана фото транзисторго манжа салынганда чыгуунун өзгөрүшү байкалган. Анан видеодо көрсөтүлбөгөн тактайды чогуу ширетүүнү чечтим.
2 -кадам: Сигналды иштетүү коду жана Server Communications
Мен Arduino IDEди ESP8266да колдонууну чечтим, анткени аны колдонуу оңой. Сигнал пландалганда ал дагы эле абдан ызы-чуу болгон, ошондуктан мен аны он үлгүдөгү FIR жылуучу орточо чыпкасы менен тазалоону чечтим. Мен бул үчүн "тегиздөө" деп аталган Arduino программасынын мисалын өзгөрттүм. Сигналдын жыштыгын өлчөө жолун табуу үчүн бир аз эксперимент кылдым. Импульстар жүрөктүн төрт түрдүү импульсуна жана PPG сигналдарынын өзгөчөлүктөрүнө байланыштуу ар кандай узундукта жана амплитудада болушкан. Мен белги ар бир импульс үчүн таяныч чекит катары өткөн орточо маанини тандадым. Сигналдын эңкейиши оң же терс болгондо аныктоо үчүн шакек буферин колдондум. Бул экөөнүн айкалышы мага сигнал оң болгондо жана белгилүү бир мааниге барабар болгондо импульс ортосундагы мезгилди эсептөөгө мүмкүндүк берди.
Программалык камсыздоо иш жүзүндө колдонууга мүмкүн болбогон так эмес BPM чыгарды. Кошумча кайталоолор менен жакшыраак программа иштелип чыгышы мүмкүн, бирок убакыттын тардыгына байланыштуу бул мүмкүнчүлүк болгон эмес. Кодду төмөнкү шилтемеден тапса болот.
Программа ESP8266
3 -кадам: Сервер жана маалымат байланыштары
Мен маалыматтарды сактоо үчүн Firebase колдонууну чечтим, анткени бул бекер кызмат жана мобилдик тиркемелер менен колдонуу абдан оңой. ESP8266 менен Firebase үчүн расмий API жок, бирок Arduino китепканасы абдан жакшы иштегенин байкадым.
ESP8266WiFi.h китепканасынан SSID жана Сырсөз менен роутерге туташууга мүмкүнчүлүк берген мисал программасы бар. Бул тактанын интернетке туташуусу үчүн колдонулган, андыктан маалыматтарды жөнөтүүгө болот.
Маалыматтарды сактоо оңой эле жасалганына карабастан, HTTP POST сурамы аркылуу push эскертмелерин жөнөтүү менен дагы эле бир топ көйгөйлөр бар. Мен Google булут кабарлашуу жана ESP8266 үчүн HTTP китепканасы аркылуу мурунку ыкманы колдонгон Github боюнча комментарий таптым. Бул ыкманы менин Githubдагы коддон көрүүгө болот.
Firebaseде мен долбоор түздүм жана программалык камсыздоонун API жана каттоо ачкычтарын колдондум. Firebase булут кабарлашуусу колдонуучуга push эскертмелерин жөнөтүү үчүн колдонулган. Байланыштар текшерилгенде, маалыматтар ESP8266 иштеп жатканда маалымат базасынан көрүнүшү мүмкүн.
4 -кадам: Android колдонмосу
Негизги Android колдонмосу эки иш менен иштелип чыккан. Биринчи аракет колдонуучуга Firebase API аркылуу кол койгон же катталган. Мен маалымат барагын иликтеп көрдүм жана Firebaseди мобилдик тиркеме менен кантип колдонуу боюнча ар кандай окуу куралдарын таптым. Колдонуучунун маалымат колдонуучусун реалдуу убакытта окуяны угуучуну көрсөткөн негизги иш -аракет, ошондуктан колдонуучунун BPM өзгөрүүсүндө эч кандай кечигүү болгон жок. Түртүү эскертмелери буга чейин айтылган Firebase булут кабарлашуусу аркылуу жасалган. Муну кантип ишке ашыруу боюнча Firebase маалымат таблицасында көптөгөн пайдалуу маалыматтар бар жана колдонмону Firebase веб -сайтынын тактасынан эскертмелерди жөнөтүү аркылуу текшерүүгө болот.
Булут кабарлашуу үчүн бардык коддорду жана аракеттерди менин Github репозиторийимден тапса болот.
5 -кадам: Жыйынтык
Колдонуучунун BPMин өлчөөдө кээ бир чоң маселелер бар болчу. Маанилер абдан ар түрдүү жана колдонуучунун ден соолугун аныктоо үчүн колдонууга жараксыз болгон. Бул ESP8266да ишке ашырылган сигналды иштетүү кодуна чейин жетти. Кошумча изилдөөлөрдөн кийин, жүрөктүн ар кандай мезгилдеги төрт башка импульсу бар экенин билдим, андыктан программалык камсыздоонун так эместиги таң калыштуу эмес. Муну менен күрөшүүнүн бир жолу - орточо эсеп менен төрт импульсту алуу жана жүрөктүн ошол төрт импульстун мезгилин эсептөө.
Калган системалар функционалдуу болчу, бирок бул объектинин мүмкүн экендигин билүү үчүн кургум келген абдан эксперименталдык түзмөк. Эскертмелерди жөнөтүү үчүн колдонулган эски код тез арада жараксыз болуп калат, андыктан сиз муну 2018 -жылдын аягында же кеч окуп жатсаңыз, башка ыкма талап кылынат. Бул маселе ESP менен гана болот, бирок эгер сиз муну WiFi жөндөмдүү Arduinoдо ишке ашыргыңыз келсе, анда эч кандай көйгөй болбойт.
Эгерде сизде кандайдыр бир суроолор же көйгөйлөр болсо, Instructables'ге мага жазуудан тартынба.
Сунушталууда:
DIY Heart Rate Monitor (каттоочу): 4 кадам
DIY Жүрөктүн кагышын көзөмөлдөөчү (каттоочу): Бул долбоордо мен сизге коммерциялык акылдуу сааттын жүрөгүңүздүн кагышын кантип өлчөөрүн жана көзөмөлдөп турарын көрсөтөм, андан кийин мен сизге өзүңүз жасай турган DIY схемасын кантип түзөөрүңүздү көрсөтөм, ал негизинен ошондой кыла алат. жүрөктүн кагышынын маалыматын сактоо
Zwift Ambilight жана Heart Rate Zone Smartbulb Lamp: 4 кадам
Zwift Ambilight жана Heart Rate Zone Smartbulb Lamp: Бул жерде биз Zwift үчүн кичинекей BIG жакшыртууларды курабыз. Сиз караңгыда көбүрөөк сейилдөө үчүн ambilight бар. Мен бул жерде 2 Raspberry PI колдоном, эгер сиз Yeelightди гана кааласаңыз, сизге 1 PI гана керек, эгер
Arduino Heart Rate Monitor: 5 кадам
Arduino Heart Rate Monitor: Саламатсыздарбы, мен бул Arduino көзөмөлдөгөн жүрөктүн кагышын көзөмөлдөгүчтү жасадым
Окутуу Heart Rate Zone Monitor Watch: 19 кадам (сүрөттөр менен)
Жүрөктүн кагышын көзөмөлдөөчү тренингди окутуу: Колледж - бул жашоодогу түйшүктүү жана башаламан мезгил, ошондуктан стрессти төмөн кармоо өтө маанилүү. Муну жасоонун бир жолу - бул машыгуу, ал акылыңды тазалап, денеңди сергек сезүүгө жардам берет. Ошондуктан биз портабл түздүк
ЭКГ жана Heart Rate Digital Monitor: 7 кадам (Сүрөттөр менен)
ЭКГ жана Heart Rate Digital Monitor: Электрокардиограмма, же ЭКГ, жүрөктүн ден соолугун өлчөө жана талдоо абдан эски ыкма болуп саналат. ЭКГдан окулган сигнал дени сак жүрөктү же бир катар көйгөйлөрдү көрсөтүшү мүмкүн. Ишенимдүү жана так дизайн маанилүү, анткени ЭКГ сигналы