Isi kandungan:
- Langkah 1: Litar
- Langkah 2: Kod Pemprosesan Isyarat dan Komunikasi Pelayan
- Langkah 3: Pelayan dan Komunikasi Data
- Langkah 4: Aplikasi Android
- Langkah 5: Kesimpulannya
Video: Monitor Denyut Jantung IOT (ESP8266 dan Aplikasi Android): 5 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:11
Sebagai sebahagian daripada projek tahun terakhir saya, saya ingin merancang peranti yang akan memantau degupan jantung anda, menyimpan data anda di pelayan dan memberitahu anda melalui pemberitahuan ketika degup jantung anda tidak normal. Idea di sebalik projek ini muncul ketika saya cuba membina aplikasi fit-bit yang memberitahu pengguna ketika mereka mengalami masalah jantung tetapi saya tidak dapat mengetahui cara menggunakan maklumat masa nyata. Projek ini mempunyai empat bahagian utama termasuk rangkaian fizikal untuk mengukur degup jantung, modul Wi-Fi ESP8266 dengan kod pemprosesan isyarat, pelayan untuk menyimpan kod dan aplikasi Android untuk memaparkan kadar denyutan jantung.
Video yang memperincikan litar fizikal dapat dilihat di atas. Semua kod untuk projek boleh didapati di Github saya.
Langkah 1: Litar
Terdapat dua kaedah utama untuk mengukur degup jantung tetapi untuk projek ini saya memutuskan untuk menggunakan photoplethysmography (PPG) yang menggunakan sumber cahaya inframerah atau merah yang dibiaskan melalui beberapa lapisan kulit pertama. Sensor foto digunakan untuk mengukur perubahan intensiti cahaya (ketika darah mengalir melalui kapal). Isyarat PPG sangat bising jadi saya menggunakan penapis lulus jalur untuk menyaring frekuensi tertentu yang diperlukan. Jantung manusia berdegup antara frekuensi 1 dan 1.6 Hz. Op-amp yang saya gunakan adalah lm324 yang mempunyai offset voltan terbaik dari semua op-amp yang tersedia untuk saya. Sekiranya anda membuat projek ini, op-amp ketepatan akan menjadi pilihan yang lebih baik.
Keuntungan hanya dua digunakan kerana toleransi voltan maksimum pada ESP8266 adalah 3.3v dan saya tidak mahu merosakkan papan saya!
Ikuti litar di atas dan cubalah membuatnya berfungsi di papan roti. Sekiranya anda tidak mempunyai osiloskop di rumah, anda boleh memasukkan output ke Arduino dan memplotnya tetapi pastikan voltan tidak lebih tinggi daripada toleransi arduino atau mikrokontroler.
Litar ini diuji pada papan roti dan perubahan output diperhatikan ketika jari diletakkan di seberang LED dan transistor foto. Saya kemudian memutuskan untuk menyatukan papan itu bersama-sama yang tidak ditunjukkan dalam video.
Langkah 2: Kod Pemprosesan Isyarat dan Komunikasi Pelayan
Saya memutuskan untuk menggunakan Arduino IDE pada ESP8266 kerana sangat senang digunakan. Semasa isyarat dipancangkan, ia masih sangat bising, jadi saya memutuskan untuk membersihkannya dengan penapis purata bergerak FIR dengan jumlah sampel sepuluh. Saya mengubah suai contoh program Arduino yang disebut "melicinkan" untuk melakukan ini. Saya sedikit bereksperimen untuk mencari cara mengukur kekerapan isyarat. Nadi mempunyai panjang dan amplitud yang berbeza kerana jantung mempunyai empat jenis denyutan yang berbeza dan ciri-ciri isyarat PPG. Saya memilih nilai tengah yang diketahui bahawa isyarat selalu dilintasi sebagai titik rujukan bagi setiap nadi. Saya menggunakan penyangga dering untuk menentukan bila cerun isyarat positif atau negatif. Kombinasi kedua-duanya membolehkan saya mengira jangka masa antara denyutan ketika isyarat positif dan sama dengan nilai tertentu.
Perisian menghasilkan BPM yang agak tidak tepat yang sebenarnya tidak dapat digunakan. Dengan iterasi tambahan, program yang lebih baik dapat dirancang tetapi kerana kekangan masa ini bukan pilihan. Kodnya boleh didapati di pautan di bawah.
Perisian ESP8266
Langkah 3: Pelayan dan Komunikasi Data
Saya memutuskan untuk menggunakan Firebase untuk menyimpan data kerana ia adalah perkhidmatan percuma dan sangat mudah digunakan dengan aplikasi mudah alih. Tidak ada API rasmi untuk Firebase dengan ESP8266 tetapi saya dapati perpustakaan Arduino berfungsi dengan baik.
Terdapat contoh program yang boleh didapati di perpustakaan ESP8266WiFi.h yang membolehkan anda menyambung ke penghala dengan SSID dan Kata Laluan. Ini digunakan untuk menghubungkan papan ke internet sehingga data dapat dikirim.
Walaupun menyimpan data dengan mudah dilakukan masih ada sejumlah masalah dengan mengirim pemberitahuan push melalui permintaan HTTP POST. Saya menemui komen di Github yang menggunakan kaedah lama untuk melakukan ini melalui pemesejan awan Google dan pustaka HTTP untuk ESP8266. Kaedah ini dapat dilihat dalam kod di Github saya.
Di Firebase saya membuat projek dan menggunakan API dan kunci pendaftaran dalam perisian. Pemesejan awan firebase digunakan dengan aplikasi untuk mengirim pemberitahuan push kepada pengguna. Ketika komunikasi diuji data dapat dilihat dalam pangkalan data ketika ESP8266 sedang berjalan.
Langkah 4: Aplikasi Android
Aplikasi Android yang sangat asas dirancang dengan dua aktiviti. Aktiviti pertama menandatangani pengguna atau mendaftarkannya menggunakan Firebase API. Saya meneliti lembar data dan menemui pelbagai tutorial mengenai cara menggunakan Firebase dengan aplikasi mudah alih. Aktiviti utama yang memperlihatkan pengguna data pengguna sebagai pendengar peristiwa masa nyata sehingga tidak ada kelewatan yang nyata dalam perubahan pada BPM pengguna. Pemberitahuan push dilakukan menggunakan pemesejan awan Firebase yang telah disebutkan sebelumnya. Terdapat banyak maklumat berguna di lembar data Firebase mengenai cara melaksanakannya dan aplikasi dapat diuji dengan mengirimkan pemberitahuan dari papan pemuka di laman web Firebase.
Semua kod untuk aktiviti dan kaedah untuk pemesejan awan boleh didapati di Github Repository saya.
Langkah 5: Kesimpulannya
Terdapat beberapa masalah utama dengan mengukur BPM pengguna. Nilai sangat berbeza dan tidak dapat digunakan untuk menentukan kesihatan pengguna. Ini berkembang menjadi kod pemprosesan isyarat yang dilaksanakan pada ESP8266. Setelah membuat penyelidikan tambahan, saya mendapat tahu bahawa jantung mempunyai empat denyutan yang berbeza dengan jangka masa yang berbeza sehingga tidak hairanlah perisian tersebut tidak tepat. Cara memerangi ini adalah dengan mengambil rata-rata empat denyutan dalam satu array dan mengira tempoh jantung selama empat denyutan tersebut.
Sistem selebihnya berfungsi tetapi ini adalah alat yang sangat eksperimental yang ingin saya bina untuk melihat apakah objek itu mungkin. Kod lama yang digunakan untuk menghantar pemberitahuan push tidak akan dapat digunakan lagi jadi jika anda membaca ini pada akhir 2018 atau lewat kaedah yang lain diperlukan. Masalah ini hanya berlaku dengan ESP, jadi jika anda ingin menerapkannya pada Arduino yang berkemampuan WiFi, ia tidak menjadi masalah.
Sekiranya anda mempunyai pertanyaan atau masalah, sila hantarkan saya kepada Instructables.
Disyorkan:
Sensor Denyutan Jantung Menggunakan Arduino (Monitor Denyut Jantung): 3 Langkah
Sensor Denyutan Jantung Menggunakan Arduino (Monitor Denyut Jantung): Sensor Denyut Jantung adalah alat elektronik yang digunakan untuk mengukur kadar denyutan jantung iaitu kecepatan degupan jantung. Memantau suhu badan, degup jantung dan tekanan darah adalah perkara asas yang kita lakukan untuk memastikan kita sihat.Peringkat jantung dapat
Mengukur Denyut Jantung Anda Ada di Hujung Jari Anda: Pendekatan Photoplethysmography untuk Menentukan Denyut Jantung: 7 Langkah
Mengukur Denyut Jantung Anda Ada di Hujung Jari Anda: Pendekatan Photoplethysmography untuk Menentukan Denyut Jantung: Fotoplethysmograph (PPG) adalah teknik optik sederhana dan murah yang sering digunakan untuk mengesan perubahan jumlah darah di lapisan tisu mikrovaskular. Ia kebanyakannya digunakan secara tidak invasif untuk membuat pengukuran pada permukaan kulit, biasanya
ECG dan Monitor Denyut Jantung: 6 Langkah
ECG dan Monitor Denyut Jantung: Elektrokardiogram, juga disebut ECG, adalah ujian yang mengesan dan merekodkan aktiviti elektrik jantung manusia. Ia mengesan kadar denyutan jantung dan kekuatan serta masa impuls elektrik yang melewati setiap bahagian jantung, yang dapat
Litar Rakaman ECG Ringkas dan Monitor Denyut Jantung LabVIEW: 5 Langkah
Litar Rakaman ECG Ringkas dan Monitor Denyut Jantung LabVIEW: " Ini bukan alat perubatan. Ini untuk tujuan pendidikan hanya menggunakan isyarat simulasi. Sekiranya menggunakan litar ini untuk pengukuran ECG sebenar, pastikan rangkaian dan sambungan litar-ke-instrumen menggunakan pengasingan yang betul
ECG Digital dan Monitor Denyut Jantung: 8 Langkah
EKG Digital dan Monitor Denyut Jantung: PEMBERITAHUAN: Ini bukan alat perubatan. Ini untuk tujuan pendidikan hanya menggunakan isyarat simulasi. Sekiranya menggunakan litar ini untuk pengukuran ECG sebenar, pastikan litar dan sambungan litar ke instrumen menggunakan kuasa bateri dan