Mündəricat:
- Addım 1: Dövrə
- Addım 2: Siqnal İşləmə Kodu və Server Əlaqələri
- Addım 3: Server və Məlumat Rabitəsi
- Addım 4: Android Tətbiqi
- Addım 5: Nəticə
Video: IOT Nəbz Monitoru (ESP8266 və Android Tətbiqi): 5 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
Son il layihəmin bir hissəsi olaraq ürək dərəcənizi izləyəcək, məlumatlarınızı bir serverdə saxlayan və nəbzinizin anormal olduğu zaman bildirişlə sizə xəbər verəcək bir cihaz dizayn etmək istədim. Bu layihənin arxasındakı fikir, istifadəçiyə ürək problemi yaşadıqlarını bildirən, lakin real vaxt məlumatlarından istifadə etməyin yolunu anlaya bilməyən fit-bit proqramı qurmağa çalışdığım zaman gəldi. Layihənin dörd əsas hissəsi var. ürək döyüntüsünü ölçmək üçün fiziki dövrə, siqnal işləmə kodlu bir ESP8266 Wi-Fi modulu, kodu saxlamaq üçün server və nəbzin göstərilməsi üçün Android tətbiqi də daxil olmaqla.
Fiziki dövrəni izah edən bir videoya yuxarıda baxıla bilər. Layihənin bütün kodlarını Github -da tapa bilərsiniz.
Addım 1: Dövrə
Ürək döyüntüsünü ölçməyin iki əsas üsulu var, amma bu layihə üçün dərinin ilk bir neçə təbəqəsində qırılan infraqırmızı və ya qırmızı işıq mənbəyi istifadə edən fotopletismoqrafiyadan (PPG) istifadə etmək qərarına gəldim. Fotoşəkil sensoru, işığın intensivliyindəki dəyişikliyi ölçmək üçün istifadə olunur (qan damardan keçərkən). PPG siqnalları inanılmaz dərəcədə səs -küylüdür, buna görə tələb olunan xüsusi tezlikləri süzmək üçün bir bant keçid filtrindən istifadə etdim. İnsan ürəyi 1 ilə 1,6 Hz aralığında döyünür. İstifadə etdiyim op-amp lm324 idi ki, mənim üçün mövcud olan bütün op-amperlərin ən yaxşı gerilim-ofsetinə malik idi. Bu layihəni yenidən yaradırsınızsa, dəqiq bir op-amp daha yaxşı bir seçim olar.
Yalnız iki qazanc istifadə edildi, çünki ESP8266 -dakı maksimum gərginlik tolerantlığı 3.3v -dir və lövhəmə zərər vermək istəmədim!
Yuxarıdakı dövrəni izləyin və çörək taxtasında işləməsinə çalışın. Evdə bir osiloskopunuz yoxdursa, çıxışı Arduino -ya qoşub planlaya bilərsiniz, ancaq gərginliyin arduino və ya mikro nəzarətçinin tolerantlığından yüksək olmadığından əmin olun.
Dövrə bir çörək taxtasında sınaqdan keçirildi və LED və foto tranzistoruna bir barmaq qoyulduqda çıxışda dəyişiklik müşahidə edildi. Sonra videoda göstərilməyən lövhəni birlikdə lehimləmək qərarına gəldim.
Addım 2: Siqnal İşləmə Kodu və Server Əlaqələri
İstifadəsi çox asan olduğu üçün ESP8266 -da Arduino IDE -dən istifadə etmək qərarına gəldim. Siqnal qurulduqda hələ də çox səs-küylü idi, buna görə də nümunə sayı on olan FIR hərəkətli orta filtrlə təmizləməyə qərar verdim. Bunu etmək üçün "hamarlaşdırma" adlı bir Arduino proqramını dəyişdirdim. Siqnalın tezliyini ölçmək üçün bir az təcrübə etdim. Nəbzlər, ürəyin dörd fərqli nəbz növünə və PPG siqnallarının xüsusiyyətlərinə görə fərqli uzunluq və amplituda idi. Siqnalın hər bir nəbz üçün istinad nöqtəsi olaraq keçdiyi məlum bir orta dəyəri seçdim. Siqnalın yamacının pozitiv və ya mənfi olduğunu müəyyən etmək üçün halqa tamponundan istifadə etdim. Bu ikisinin birləşməsi siqnalın pozitiv olduğu və müəyyən bir dəyərə bərabər olduğu zaman pulslar arasındakı dövrü hesablamağa imkan verdi.
Proqram, əslində istifadə edilə bilməyəcək qədər qeyri -dəqiq BPM istehsal etdi. Əlavə təkrarlamalarla daha yaxşı bir proqram tərtib edilə bilərdi, ancaq vaxt məhdudiyyəti səbəbindən bu bir seçim deyildi. Kodu aşağıdakı linkdə tapa bilərsiniz.
Proqram ESP8266
Addım 3: Server və Məlumat Rabitəsi
Məlumat saxlamaq üçün Firebase -dən istifadə etmək qərarına gəldim, çünki bu pulsuz bir xidmətdir və mobil tətbiqlərdə istifadə etmək çox asandır. ESP8266 ilə Firebase üçün rəsmi bir API yoxdur, ancaq Arduino kitabxanasının çox yaxşı işlədiyini gördüm.
ESP8266WiFi.h kitabxanasında SSID və Şifrə ilə bir yönlendiriciyə qoşulmağa imkan verən bir nümunə proqram var. Bu, məlumatları göndərmək üçün lövhəni internetə bağlamaq üçün istifadə edilmişdir.
Məlumatların saxlanılması asanlaşdırılsa da, push bildirişlərinin HTTP POST sorğusu vasitəsilə göndərilməsində hələ də bir sıra problemlər var. Google bulud mesajlaşması və ESP8266 üçün HTTP kitabxanası vasitəsilə bunu etmək üçün köhnə bir metoddan istifadə edən Github haqqında bir şərh tapdım. Bu metodu Github'ımdakı kodda görmək olar.
Firebase -də bir layihə yaratdım və proqramdakı API və qeydiyyat açarlarından istifadə etdim. İstifadəçiyə push bildirişləri göndərmək üçün firebase bulud mesajlaşması tətbiqlə birlikdə istifadə edildi. Rabitə test edildikdə, ESP8266 işləyərkən məlumatları verilənlər bazasında görmək olardı.
Addım 4: Android Tətbiqi
Çox sadə bir Android tətbiqi iki fəaliyyətlə hazırlanmışdır. İlk fəaliyyət, istifadəçini Firebase API istifadə edərək imzaladı və ya qeyd etdi. Məlumat cədvəlini araşdırdım və Firebase -in mobil tətbiq ilə necə istifadə olunacağına dair müxtəlif dərsliklər tapdım. İstifadəçinin məlumat istifadəçisini real vaxt hadisə dinləyicisi olaraq göstərən əsas fəaliyyət, istifadəçinin BPM dəyişikliklərində nəzərəçarpacaq bir gecikmə olmamışdır. Push bildirişləri əvvəllər bəhs edilən Firebase bulud mesajlaşması vasitəsi ilə edildi. Bunun necə həyata keçiriləcəyinə dair Firebase məlumat cədvəlində bir çox faydalı məlumat var və tətbiqin Firebase veb saytındakı tablosundan bildiriş göndərməklə sınaqdan keçirilə bilər.
Fəaliyyətlərin və bulud mesajlaşma metodlarının bütün kodlarını Github Repozitoriyamda tapa bilərsiniz.
Addım 5: Nəticə
İstifadəçinin BPM -nin ölçülməsi ilə bağlı bəzi böyük problemlər var idi. Dəyərlər çox fərqli idi və bir istifadəçinin sağlamlığını təyin etmək üçün istifadə edilə bilməzdi. Bu, ESP8266 -da tətbiq olunan siqnal işləmə koduna qədər azaldı. Əlavə araşdırmalardan sonra öyrəndim ki, bir ürəyin müxtəlif dövrlərə malik dörd fərqli nəbzi var, buna görə də proqramın qeyri -dəqiq olması təəccüblü deyil. Mübarizənin bir yolu, bir sıra içərisində ortalama dörd nəbzi almaq və bu dörd nəbz üzərində ürək dövrünü hesablamaq olardı.
Sistemin qalan hissəsi işlək idi, amma bu obyektin mümkün olub olmadığını görmək üçün qurmaq istədiyim çox təcrübəli bir cihazdır. Push bildirişləri göndərmək üçün istifadə olunan köhnə kod tezliklə istifadəyə yaramayacaq, buna görə də bunu 2018 -ci ilin sonlarında və ya gec oxuyursanız başqa bir üsul tələb olunacaq. Bu problem yalnız ESP ilə ortaya çıxsa da, bunu WiFi qabiliyyətli bir Arduino üzərində tətbiq etmək istəsəniz heç bir problem olmayacaq.
Hər hansı bir sualınız və ya probleminiz varsa, mənə Instructables üzərindən yaza bilərsiniz.
Tövsiyə:
Arduino istifadə edərək ürək döyüntüsü sensoru (nəbz monitoru): 3 addım
Arduino (Heart Rate Monitor) istifadə edərək ürək döyüntüsü sensoru: nəbz sensoru, nəbzini, yəni ürək döyüntüsünün sürətini ölçmək üçün istifadə olunan elektron cihazdır. Bədən istiliyinin, ürək dərəcəsinin və qan təzyiqinin monitorinqi sağlamlığımızı qorumaq üçün etdiyimiz əsas şeylərdir
DIY Nəbz Monitoru (logger): 4 addım
DIY Nəbz Nəzarətçisi (logger): Bu layihədə sizə bir kommersiya ağıllı saatının nəbzinizi necə ölçdüyünü və izlədiyini göstərəcəyəm, sonra da eyni şəkildə edə biləcəyiniz əlavə ilə eyni şeyi edə biləcək bir DIY dövrəsinin necə yaradılacağını sizə göstərəcəyəm. nəbz məlumatlarını saxlamaq
Arduino Nəbz Monitoru: 5 addım
Arduino Nəbz Nəzarətçisi: Hər kəsə salam, bu əllə idarə olunan Arduino nəbz monitorunu hazırladım
EKQ və Nəbz Monitoru: 6 addım
EKQ və Ürək Hızı Monitoru: EKQ olaraq da adlandırılan elektrokardioqram, insanın ürəyinin elektrik fəaliyyətini aşkar edən və qeyd edən bir testdir. Ürək döyüntüsünü və ürəyin hər bir hissəsindən keçən elektrik impulslarının gücünü və vaxtını təyin edə bilir
Sadə EKQ Qeyd Dövrü və LabVIEW Nəbz Monitoru: 5 addım
Sadə EKQ Qeyd Dövrü və LabVIEW Nəbz Monitoru: " Bu tibbi bir cihaz deyil. Bu yalnız simulyasiya edilmiş siqnallardan istifadə edərək təhsil məqsədləri üçündür. Bu dövrəni real EKQ ölçmələri üçün istifadə edirsinizsə, zəhmət olmasa dövrənin və dövrə-cihaz əlaqələrinin düzgün izolyasiyadan istifadə etdiyinə əmin olun