Mundarija:

IOT yurak urish tezligi monitor (ESP8266 va Android ilovasi): 5 qadam
IOT yurak urish tezligi monitor (ESP8266 va Android ilovasi): 5 qadam

Video: IOT yurak urish tezligi monitor (ESP8266 va Android ilovasi): 5 qadam

Video: IOT yurak urish tezligi monitor (ESP8266 va Android ilovasi): 5 qadam
Video: Управление 16 серводвигателями с использованием модуля PCA9685 и Arduino V2 2024, Noyabr
Anonim
Image
Image

Yakuniy yilgi loyiham doirasida men sizning yurak urish tezligingizni kuzatadigan, ma'lumotlarni serverda saqlaydigan va yurak urish tezligi g'ayritabiiy bo'lganda sizni xabarnoma orqali xabardor qiladigan qurilmani yaratmoqchi edim. Loyihaning g'oyasi men foydalanuvchiga yurak muammosi haqida xabar beradigan fit-bitli dastur yaratmoqchi bo'lganimda paydo bo'ldi, lekin men real vaqtda ma'lumotni qanday ishlatishni aniqlay olmadim. Loyihaning to'rtta asosiy qismi bor shu jumladan yurak urishini o'lchash uchun fizik zanjir, signalni qayta ishlash kodli ESP8266 Wi-Fi moduli, kodni saqlash serveri va yurak urish tezligini aks ettiruvchi Android ilovasi.

Jismoniy zanjir haqida batafsil videoni yuqorida ko'rish mumkin. Loyihaning barcha kodlarini mening Github -da topish mumkin.

1 -qadam: O'chirish davri

O'chirish davri
O'chirish davri

Yurak urishini o'lchashning ikkita asosiy usuli bor, lekin men bu loyihada terining dastlabki bir necha qatlamlari orqali singan infraqizil yoki qizil yorug'lik manbasini ishlatadigan fotopletismografiya (PPG) dan foydalanishga qaror qildim. Fotosurat sensori yorug'lik intensivligining o'zgarishini o'lchash uchun ishlatiladi (qon tomir orqali o'tayotganda). PPG signallari juda shovqinli, shuning uchun men kerakli chastotalarni filtrlash uchun tarmoqli o'tish filtridan foydalandim. Inson yuragi 1 dan 1,6 Gts gacha tezlikda uradi. Men ishlatgan op-amp lm324 edi, u men uchun mavjud bo'lgan barcha op-amperlarning eng yaxshi kuchlanishiga ega edi. Agar siz ushbu loyihani qayta yaratayotgan bo'lsangiz, unda aniq op-ampni tanlash yaxshiroq bo'lar edi.

ESP8266 -dagi maksimal kuchlanish tolerantligi 3,3v bo'lgani uchun men faqat ikkita yutuqdan foydalanardim va men taxtamga zarar etkazishni xohlamadim!

Yuqoridagi sxemaga rioya qiling va uni non taxtasida ishlashga harakat qiling. Agar uyingizda osiloskop bo'lmasa, siz Arduino -ga ulanishingiz va uni chizishingiz mumkin, lekin kuchlanish arduino yoki mikrokontroller toleransidan yuqori emasligiga ishonch hosil qiling.

Sxema non taxtasida sinovdan o'tkazildi va LED va foto tranzistor bo'ylab barmoq qo'yilganda chiqishning o'zgarishi kuzatildi. Keyin men videoda ko'rsatilmagan taxtani birga lehimlashga qaror qildim.

2 -qadam: Signalni qayta ishlash kodi va server aloqalari

Image
Image
Signalni qayta ishlash kodi va server aloqalari
Signalni qayta ishlash kodi va server aloqalari

Men Arduino IDE -ni ESP8266 -da ishlatishga qaror qildim, chunki uni ishlatish juda oson. Signal tuzilganda, u hali ham shovqinli edi, shuning uchun men uni o'nta namunali FIR harakatlanuvchi o'rtacha filtri bilan tozalashga qaror qildim. Men "silliqlash" deb nomlangan Arduino dasturining misolini o'zgartirdim, signal chastotasini o'lchash usulini topish uchun biroz tajriba o'tkazdim. Yurakning to'rt xil puls turiga ega bo'lishi va PPG signallarining xarakteristikasi tufayli pulslar har xil uzunlik va amplituda edi. Men ma'lum bir o'rtacha qiymatni tanladim, bu signal har bir puls uchun har doim tayanch nuqtasi sifatida o'tadi. Signalning qiyaligi qachon ijobiy yoki salbiy ekanligini aniqlash uchun halqa buferidan foydalanardim. Bu ikkalasining kombinatsiyasi menga signal ijobiy bo'lgan va ma'lum bir qiymatga teng bo'lgan pulslar orasidagi davrni hisoblash imkonini berdi.

Dastur juda aniq bo'lmagan BPM ishlab chiqardi, uni aslida ishlatib bo'lmaydi. Qo'shimcha yinelemelerle yaxshi dastur ishlab chiqish mumkin edi, lekin vaqt cheklanganligi uchun bu variant emas edi. Kodni quyidagi havolada topish mumkin.

ESP8266 uchun dasturiy ta'minot

3 -qadam: Server va ma'lumotlar aloqasi

Server va ma'lumotlar aloqasi
Server va ma'lumotlar aloqasi

Men ma'lumotni saqlash uchun Firebase -dan foydalanishga qaror qildim, chunki bu bepul xizmat va uni mobil ilovalarda ishlatish juda oson. ESP8266 bilan Firebase uchun rasmiy API yo'q, lekin men Arduino kutubxonasi juda yaxshi ishlaganini topdim.

ESP8266WiFi.h kutubxonasida SSID va parol bilan yo'riqchiga ulanish imkonini beruvchi dastur mavjud. Bu ma'lumotni yuborish uchun taxtani Internetga ulash uchun ishlatilgan.

Ma'lumotni saqlash oson bajarilgan bo'lsa -da, HTTP POST so'rovi orqali push -bildirishnomalarni yuborishda hali ham bir qancha muammolar mavjud. Men Google bulutli xabarlar va ESP8266 uchun HTTP kutubxonasi orqali eski usulni ishlatgan Github -da izoh topdim. Bu usulni mening Github kodimdan ko'rish mumkin.

Firebase -da men loyiha yaratdim va dasturiy ta'minotdagi API va ro'yxatdan o'tish kalitlarini ishlatdim. Firebase bulutli xabarlar ilovasi foydalanuvchiga push -bildirishnomalarni yuborish uchun ishlatilgan. Aloqa tekshirilganda, ma'lumotlar ESP8266 ishlayotganda ma'lumotlar bazasida ko'rish mumkin edi.

4 -qadam: Android ilovasi

Android ilovasi
Android ilovasi

Android -ning juda oddiy ilovasi ikkita ish bilan yaratilgan. Birinchi harakat foydalanuvchini Firebase API yordamida imzoladi yoki ro'yxatdan o'tkazdi. Ma'lumotlar varag'ini o'rganib chiqdim va Firebase -ni mobil ilova bilan qanday ishlatishni o'rgatdim. Foydalanuvchi ma'lumotlarini real vaqt rejimida tinglovchini ko'rsatadigan asosiy faoliyat, shuning uchun foydalanuvchining BPM o'zgarishida sezilarli kechikish bo'lmagan. Push xabarnomalari yuqorida aytib o'tilgan Firebase bulutli xabarlar yordamida amalga oshirildi. Buni qanday amalga oshirish kerakligi haqida Firebase ma'lumotlar jadvalida juda ko'p foydali ma'lumotlar mavjud va ilovani Firebase veb -saytidagi boshqaruv panelidan xabarlar yuborish orqali sinab ko'rish mumkin.

Faoliyat uchun barcha kodlar va bulutli xabar almashish usullarini mening Github omboridan topishingiz mumkin.

5 -qadam: Xulosa

Foydalanuvchining BPM o'lchash bilan bog'liq ba'zi katta muammolar bor edi. Qiymatlar juda xilma -xil bo'lib, foydalanuvchining sog'lig'ini aniqlash uchun ishlatilmadi. Bu ESP8266 -da o'rnatilgan signalni qayta ishlash kodiga tushdi. Qo'shimcha tadqiqotlardan so'ng, men bilardimki, yurakda turli davrli to'rt xil puls bor, shuning uchun dasturiy ta'minot noto'g'ri ekanligi ajablanarli emas. Bunga qarshi kurashish usuli - o'rtacha to'rtta pulsni massivdan olish va yurakning bu to'rt pulsdagi davrini hisoblash.

Qolganlari funktsional edi, lekin bu ob'ektning mumkin yoki yo'qligini bilish uchun men yaratmoqchi bo'lgan juda eksperimental qurilma. Push -bildirishnomalarni yuborish uchun ishlatilgan eski kod tez orada yaroqsiz bo'lib qoladi, shuning uchun agar siz buni 2018 yil oxirida yoki kech o'qigan bo'lsangiz, boshqa usul kerak bo'ladi. Bu muammo faqat ESP bilan sodir bo'ladi, lekin agar siz buni WiFi -ga ega Arduino -da amalga oshirmoqchi bo'lsangiz, muammo bo'lmaydi.

Agar sizda biron bir savol yoki muammo bo'lsa, iltimos, Instructables -da menga xabar yuboring.

Tavsiya: