- Komponen yang Diperlukan
- MAX30205 dengan Arduino - Diagram Litar
- Memadan Arduino dengan Sensor Suhu Badan MAX30205
- Pengaturcaraan MAX30205 dengan Arduino
- Arduino Meter Suhu Badan - Ujian
Untuk aplikasi perubatan atau klinikal, mengukur suhu badan manusia adalah parameter penting untuk menentukan keadaan kesihatan mana-mana individu. Namun, terdapat banyak cara untuk merasakan suhu tetapi tidak semuanya mempunyai ketepatan untuk memenuhi spesifikasi termometri klinikal. Sensor suhu MAX30205 direka khas untuk aplikasi ini. Perhatikan bahawa sensor ini bukan sensor suhu tanpa sentuh, jika anda mencari pengukuran suhu IR tanpa sentuh, periksa MLX90614 Thermometer yang kami rancang sebelumnya.
Dalam projek ini, kami akan menghubungkan sensor suhu badan manusia MAX30205 yang dapat dihubungkan dengan mudah dengan jalur kecergasan atau dapat digunakan untuk tujuan perubatan. Kami akan menggunakan Arduino Nano sebagai unit pengawal mikro utama dan juga menggunakan paparan 7-Segmen untuk menunjukkan suhu yang dirasakan di Fahrenheit. Setelah anda mengetahui bagaimana menggunakan sensor, anda boleh menggunakannya di mana sahaja aplikasi pilihan anda, anda juga dapat melihat projek Arduino Smartwatch ini yang digabungkan dengan MAX30205 dapat digunakan untuk memantau suhu individu.
Komponen yang Diperlukan
- Arduino NANO
- 7-Seg memaparkan katod biasa - 3pcs
- 74HC595 - 3 keping
- Perintang 680R - 24pcs
- Papan modul MAX30205
- Bekalan kuasa 5V
- Papan roti
- Banyak wayar cangkuk
- Arduino IDE
- Kabel USB mikro
MAX30205 dengan Arduino - Diagram Litar
Gambarajah litar lengkap untuk menghubungkan Arduino dengan sensor Suhu Badan MAX30205 ditunjukkan di bawah. Litarnya sangat mudah, tetapi kerana kami telah menggunakan paparan 7 segmen, ia kelihatan agak rumit. Paparan 7-Segmen dengan Arduino adalah kaedah terbaik untuk menampilkan nilai anda yang besar dan cerah dengan kos yang sangat rendah. Tetapi anda juga boleh memaparkan nilai-nilai ini pada OLED atau LCD jika anda mahu.
Arduino Nano dihubungkan dengan tiga 74HC595. Tiga 74HC595 dilampirkan bersama untuk menyimpan pin output tambahan dari Arduino Nano untuk menyambungkan tiga paparan 7-Seg. Kami sebelumnya telah menggunakan 74HC595 dengan Arduino dalam banyak projek lain seperti Arduino Clock, LED Board Display, Arduino snake game, dll untuk beberapa nama.
Papan modul MAX30205 memerlukan perintang penarik tambahan kerana berkomunikasi dengan protokol I2C. Walau bagaimanapun, beberapa papan modul tidak memerlukan penarikan tambahan kerana perintang penarik sudah diberikan di dalam modul. Oleh itu, seseorang perlu mengesahkan sama ada papan modul mempunyai perintang penarik dalaman atau memerlukan penambahan luaran. Papan yang digunakan dalam projek ini sudah mempunyai perintang penarik terbina dalam papan modul.
Memadan Arduino dengan Sensor Suhu Badan MAX30205
Sensor yang digunakan di sini adalah MAX30205 dari gabungan maksim. Sensor suhu MAX30205 mengukur suhu dengan tepat dengan Ketepatan 0.1 ° C (37 ° C hingga 39 ° C). Sensor berfungsi dengan protokol I2C.
Papan modul boleh berfungsi dengan 5 atau 3.3V. Walau bagaimanapun, papan dikonfigurasi untuk digunakan dengan voltan operasi 5V. Ini juga termasuk pergeseran tahap logik, kerana sensor itu sendiri mendukung maksimum 3.3V sebagai tujuan yang berkaitan dengan kuasa atau komunikasi data.
Pada output, tiga register shift 74HC595, 8-bit digunakan untuk menghubungkan tiga paparan 7-Segmen dengan Arduino NANO. Gambarajah pin boleh ditunjukkan pada gambar di bawah-
Huraian pin 74HC595 dapat dilihat pada jadual di bawah-
QA hingga QH adalah pin output data yang dihubungkan dengan paparan 7-Seg. Oleh kerana tiga 74HC595 dilampirkan bersama-sama, pin input Data (PIN14) dari register shift pertama akan dihubungkan dengan Arduino NANO dan pin output data Serial akan memberikan data tersebut ke register shift berikutnya. Sambungan data bersiri ini akan dilanjutkan hingga 74HC595 ketiga.
Pengaturcaraan MAX30205 dengan Arduino
Program lengkap untuk tutorial ini terdapat di bahagian bawah halaman ini. Penjelasan mengenai kod ini adalah seperti berikut. Pertama, kami memasukkan fail header perpustakaan Arduino I2C standard.
#sertakan
Garis di atas akan merangkumi perpustakaan Arduino yang disumbangkan dari protocentral. Perpustakaan ini mempunyai fungsi penting untuk berkomunikasi dengan sensor MAX30205. Perpustakaan diambil dari pautan GitHub di bawah-
https://github.com/protocentral/ProtoCentral_MAX30205
Setelah mengimport perpustakaan, kami menentukan data objek MAX30205 seperti yang ditunjukkan di bawah-
#sertakan "Protocentral_MAX30205.h" MAX30205 tempSensor;
Dua baris seterusnya adalah penting untuk menetapkan parameter. Garis di bawah akan memberikan suhu di Fahrenheit jika ditetapkan. Untuk menunjukkan hasilnya dalam Celsius, garisnya harus ditetapkan sebagai salah.
const bool fahrenheittemp = benar; // Saya menunjukkan suhu di Fahrenheit, Jika anda mahu menunjukkan suhu dalam Celsius, maka buat pemboleh ubah ini salah.
Garis bawah perlu dikonfigurasi jika paparan segmen jenis katod biasa 7 digunakan dalam perkakasan. Jadikannya salah sekiranya anod biasa digunakan.
const bool commonCathode = benar; // Saya menggunakan bahagian Cathode 7 biasa jika anda menggunakan Anode biasa, kemudian ubah nilainya menjadi palsu. const byte digit_pattern = {// 74HC595 Sambungan Outpin dengan paparan 7 bahagian. // Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 // abcdefg DP 0b11111100, // 0 0b01100000, // 1 0b11011010, // 2 0b11110010, // 3 0b01100110, // 4 0b10110110, // 5 0b10111110, // 6 0b11100000, // 7 0b11111110, // 8 0b11110110, // 9 0b11101110, // A 0b00111110, // b 0b00011010, // C 0b01111010, // d 0b10011110, // E 0b10001110, // F 0b00000001 //. };
Susunan di atas digunakan untuk menyimpan corak digit untuk paparan 7-Segmen.
Dalam fungsi persediaan, setelah menetapkan mod pin 74HC595 pin, protokol I2C dan bacaan sensor suhu diinisialisasi.
batal persediaan () {// letakkan kod persediaan anda di sini, untuk dijalankan sekali: // tetapkan port bersiri pada 9600 Serial.begin (9600); kelewatan (1000); // tetapkan 74HC595 Control pin sebagai output pinMode (latchPin, OUTPUT); // ST_CP dari 74HC595 pinMode (clkPin, OUTPUT); // SH_CP dari 74HC595 pinMode (dtPin, OUTPUT); // DS of 74HC595 // memulakan I2C Libs Wire.begin (); // mulai suhu MAX30205 dibaca dalam mod sambung, mod aktif tempSensor.begin (); }
Dalam gelung, suhu dibaca oleh fungsi tempSensor.getTemperature () dan disimpan dalam pemboleh ubah apungan bernama temp . Selepas itu, jika mod suhu Fahrenheit dipilih, data ditukar dari Celsius ke Fahrenheit. Kemudian, tiga digit dari data suhu deria yang ditukar kemudian dipisahkan menjadi tiga digit individu. Untuk melakukan ini, garis kod di bawah digunakan-
// saperate 3 digit dari suhu semasa (seperti jika suhu = 31.23c,) int dispDigit1 = (int) temp / 10; // digit1 3 int dispDigit2 = (int) temp% 10; // digit2 1 int dispDigit3 = (temp * 10) - ((int) temp * 10); // digit3 2
Sekarang, tiga digit yang dipisahkan dihantar ke paparan 7 segmen menggunakan register shift 74HC595. Sejak LSB pertama kali menunjukkan ke dalam paparan segmen 7 ketiga melalui 74HC595 ketiga, digit ke-3 pertama kali dihantar. Untuk melakukan ini, pin terkunci ditarik rendah dan data diserahkan ke 74HC595 oleh fungsi shiftOut ();
Dengan cara yang sama, digit kedua dan pertama juga dihantar ke 74HC595 masing-masing, sehingga tinggal dua paparan 7 segmen. Setelah mengirim semua data, pin kait dilepaskan dan ditarik tinggi untuk mengesahkan berakhirnya penghantaran data. Kod masing-masing dapat dilihat di bawah -
// paparkan digit menjadi paparan 3, 7 bahagian. digitalWrite (latchPin, RENDAH); jika (commonCathode == true) {shiftOut (dtPin, clkPin, LSBFIRST, digit_pattern); shiftOut (dtPin, clkPin, LSBFIRST, digit_pattern-digit_pattern); // 1. (Digit + DP) shiftOut (dtPin, clkPin, LSBFIRST, digit_pattern); } lain {shiftOut (dtPin, clkPin, LSBFIRST, ~ (digit_pattern)); shiftOut (dtPin, clkPin, LSBFIRST, ~ (digit_pattern-digit_pattern)); // 1. (Digit + DP) shiftOut (dtPin, clkPin, LSBFIRST, ~ (digit_pattern)); } digitalWrite (latchPin, TINGGI);
Arduino Meter Suhu Badan - Ujian
Litar ini dibina dalam dua set papan roti seperti yang anda lihat di bawah. Apabila kita meletakkan jari pada sensor, suhu dirasakan dan output ditunjukkan ke paparan segmen 7, di sini nilainya adalah 92.1 * F.
Penyelesaian projek yang lengkap dapat dilihat dalam video yang dipautkan di bawah. Semoga anda seronok membina projek dan mempelajari sesuatu yang berguna. Sekiranya anda mempunyai sebarang pertanyaan, tinggalkan di bahagian komen di bawah atau gunakan forum kami.