Daftar Isi:

Sensor Suhu untuk Arduino Diterapkan untuk COVID 19: 12 Langkah (dengan Gambar)
Sensor Suhu untuk Arduino Diterapkan untuk COVID 19: 12 Langkah (dengan Gambar)

Video: Sensor Suhu untuk Arduino Diterapkan untuk COVID 19: 12 Langkah (dengan Gambar)

Video: Sensor Suhu untuk Arduino Diterapkan untuk COVID 19: 12 Langkah (dengan Gambar)
Video: DIY Temperature Thermal Gun | MLX90614 Contactless Infrared Temperature Sensor with Arduino 2024, November
Anonim
Sensor Suhu untuk Arduino Diterapkan untuk COVID 19
Sensor Suhu untuk Arduino Diterapkan untuk COVID 19

Sensor suhu untuk Arduino adalah elemen mendasar ketika kita ingin mengukur suhu prosesor tubuh manusia.

Sensor suhu dengan Arduino harus bersentuhan atau dekat untuk menerima dan mengukur tingkat panas. Begitulah cara kerja termometer.

Alat ini sangat digunakan untuk mengukur suhu tubuh orang sakit, karena suhu adalah salah satu faktor pertama yang berubah dalam tubuh manusia ketika ada kelainan atau penyakit.

Salah satu penyakit yang mengubah suhu tubuh manusia adalah COVID 19. Oleh karena itu, kami sajikan gejala utamanya:

Batuk Kelelahan Kesulitan bernapas (kasus berat) Demam Demam merupakan gejala yang ciri utamanya adalah peningkatan suhu tubuh. Pada penyakit ini, kita perlu terus memantau gejala-gejala tersebut.

Oleh karena itu, kami akan mengembangkan proyek untuk memantau suhu dan menyimpan data ini pada kartu memori melalui JLCPCB Datalogger menggunakan sensor suhu dengan Arduino.

Oleh karena itu, dalam artikel ini Anda akan mempelajari:

  • Bagaimana JLCPCB Datalogger dengan sensor suhu dengan Arduino?
  • Cara kerja sensor suhu dengan Arduino.
  • Bagaimana cara kerja sensor suhu DS18B20 dengan Arduino
  • Gunakan tombol dengan banyak fungsi.

Selanjutnya, kami akan menunjukkan kepada Anda bagaimana Anda akan mengembangkan Datalogger JLCPCB Anda menggunakan sensor suhu Arduino.

Perlengkapan

Arduino UNO

Papan Sirkuit Cetak JLCPCB

Sensor Suhu DS18B20

Arduino Nano R3

jumper

Layar LCD 16 x 2

Sakelar tombol tekan

Resistor 1kR

Modul Kartu SD untuk Arduino

Langkah 1: Konstruksi Datalogger JLCPCB Dengan Sensor Suhu Dengan Arduino

Konstruksi Datalogger JLCPCB Dengan Sensor Suhu Dengan Arduino
Konstruksi Datalogger JLCPCB Dengan Sensor Suhu Dengan Arduino

Seperti disebutkan sebelumnya, proyek ini terdiri dari pembuatan Datalogger JLCPCB dengan Sensor Suhu dengan Arduino, dan melalui data ini, kita dapat memantau suhu pasien yang dirawat.

Dengan demikian, rangkaian ditunjukkan pada Gambar di atas.

Oleh karena itu, seperti yang Anda lihat, sirkuit ini memiliki sensor suhu DS18B20 dengan Arduino, yang bertanggung jawab untuk mengukur pembacaan suhu pasien.

Selain itu, Arduino Nano akan bertanggung jawab untuk mengumpulkan data ini dan menyimpannya di kartu memori Modul Kartu SD.

Setiap informasi akan disimpan dengan waktunya masing-masing, yang akan dibaca dari Modul RTC DS1307.

Dengan demikian, untuk menyimpan data sensor suhu dengan Arduino, pengguna harus melakukan proses melalui Menu Kontrol dengan LCD 16x2.

Langkah 2:

Gambar
Gambar

Setiap tombol bertanggung jawab untuk mengendalikan sebuah pilihan, seperti yang ditunjukkan pada layar LCD 16x2 pada Gambar 2.

Setiap opsi bertanggung jawab untuk melakukan fungsi dalam sistem, seperti yang ditunjukkan di bawah ini.

  • Opsi M bertanggung jawab untuk memulai pengukuran dan perekaman data pada Kartu Memori.
  • Opsi H bertanggung jawab untuk menyesuaikan jam sistem.
  • Opsi O/P digunakan untuk mengkonfirmasi entri data dalam sistem atau untuk menjeda penulisan data ke kartu memori.

Untuk memahami proses kontrol sistem, kami akan memberikan kode di bawah ini dan membahas sistem kontrol langkah demi langkah Datalogger JLCPCB dengan Sensor Suhu dengan Arduino.

#include //Perpustakaan dengan semua fungsi Sensor DS18B20

#include #include //Biblioteca I2C do LCD 16x2 #include //Biblioteca de Comunicacao I2C #include //Library OneWire untuk Sensor DS18B20 #include #include LiquidCrystal_I2C lcd (0x27, 16, 2); // Mengkonfigurasi untuk melakukan LCD 16x2 untuk 0x27 #menentukan ONE_WIRE_BUS 8 //Pin Digital untuk menghubungkan Sensor DS18B20 //Menentukan semua instancia untuk melakukan oneWire untuk komunikasi dengan sensor OneWire oneWire(ONE_WIRE_BUS); Sensor suhu Dallas(&oneWire); Sensor Alamat Perangkat1; File file saya; #define Buttonmeasure 2 #define Buttonadjusthour 3 #define Buttonok 4 ukuran bool = 0, adjusthour = 0, ok = 0; bool measure_state = 0, adjusthour_state = 0, ok_state = 0; bool measure_process = 0, adjust_process = 0; byte aktualMin = 0, sebelumnyaMin = 0; byte jam aktual = 0, jam sebelumnya = 0; byte minUpdate = 0; int pinoSS = 10; // Pin 53 untuk Mega / Pin 10 untuk UNO int DataTime[7]; void updateHour() { DS1307.getDate(DataTime); if(DataTime[5] != minUpdate) { sprintf(kali, "%02d:%02d", DataTime[4], DataTime[5]); lcd.setCursor(0, 0); lcd.print(""); lcd.setCursor(5, 0); lcd.print(kali); minUpdate = DataTime[5]; } } void updateTemp() { DS1307.getDate(DataTime); if(DataTime[5] != minUpdate) { sprintf(kali, "%02d:%02d", DataTime[4], DataTime[5]); lcd.clear(); lcd.setCursor(5, 0); lcd.print(kali); lcd.setCursor(0, 1); lcd.print("Suhu: "); lcd.setCursor(14, 1); sensor.requestTemperatures(); float TempSensor = sensor.getTempCByIndex(0); lcd.print(Sensor Suhu); minUpdate = DataTime[5]; } } void setup() { Serial.begin(9600); DS1307.mulai(); sensor.mulai(); pinMode(pinoSS, OUTPUT); // Deklarasi pinoSS como saída Wire.begin(); //Inicializacao da Comunicacao I2C lcd.init(); //Inisialisasi lakukan LCD lcd.backlight(); lcd.setCursor(3, 0); lcd.print("Sistem Suhu"); lcd.setCursor(3, 1); lcd.print("Datalogger"); penundaan(2000); // Localiza e mostra enderecos dos sensores Serial.println("Localizando sensores DS18B20…"); Serial.print("Lokalisasi Sensor berhasil!"); Serial.print(sensors.getDeviceCount(), DEC); Serial.println("Sensor"); if(SD.begin()) { // Inisialisasi o SD Card Serial.println("SD Card pronto para uso."); // Imprime na tela } else { Serial.println("Falha na inicialização do SD Card."); kembali; } DS1307.getDate(DataTime); lcd.clear(); sprintf(kali, "%02d:%02d", DataTime[4], DataTime[5]); lcd.setCursor(5, 0); lcd.print(kali); lcd.setCursor(0, 1); lcd.print("1-M 2-H 3-O/P"); } void loop() { updateHour(); //Membaca status tombol measure = digitalRead(Buttonmeasure); adjusthour = digitalRead(Tombol sesuaikan jam); ok = digitalRead(Tombol); if(ukuran == 0 && ukuran_status == 1) { ukuran_status = 0; } if(ukuran == 1 && ukuran_status == 0 && ukuran_proses == 0) { ukuran_proses = 1; ukuran_status = 1; if (SD.exists("temp.txt")) { Serial.println("Apagou o arquivo anterior!"); SD.remove("temp.txt"); myFile = SD.open("temp.txt", FILE_WRITE); // Cria / Abre arquivo.txt Serial.println("Criou o arquivo!"); } else { Serial.println("Criou o arquivo!"); myFile = SD.open("temp.txt", FILE_WRITE); // Cria / Abre arquivo.txt myFile.close(); } penundaan (500); myFile.print("Jam: "); myFile.println("Suhu"); DS1307.getDate(Waktu Data); aktualMin = sebelumnyaMin = DataTime[5]; sprintf(kali, "%02d:%02d", DataTime[4], DataTime[5]); lcd.clear(); lcd.setCursor(5, 0); lcd.print(kali); lcd.setCursor(0, 1); lcd.print("Suhu: "); lcd.setCursor(14, 1); sensor.requestTemperatures(); float TempSensor = sensor.getTempCByIndex(0); lcd.print(Sensor Suhu); } if(adjusthour == 0 && adjusthour_state == 1) { adjusthour_state = 0; } if(adjusthour == 1 && adjusthour_state == 0 && measure_process == 0) { adjust_process = 1; } //----------------------------------------------- ---Proses Pengukuran---------------------------------------------- -------------- if(measure_process == 1) { updateTemp(); byte contMin = 0, contHour = 0; DS1307.getDate(Waktu Data); aktualMin = DataTime[5]; //------------------------------------------------ --------- Hitung Menit--------------------------------------- ------------------- if(actualMin != PreviousMin) { contMin++; sebelumnyaMin = aktualMin; } if(contMin == 5) { sprintf(kali, "%02d:%02d ", DataTime[4], DataTime[5]); sensor.requestTemperatures(); float TempSensor = sensor.getTempCByIndex(0); myFile.print(kali); myFile.println(TempSensor); contMin = 0; } //----------------------------------------------- ------------ Hitung Jam ------------------------------------ ---------------------- if(ActualHour != PreviousHour) { contHour++; jam sebelumnya = jam aktual; } if(contHour == 5) { myFile.close(); lcd.clear(); lcd.setCursor(5, 0); lcd.print("Selesai"); lcd.setCursor(5, 1); lcd.print("Proses"); ukuran_proses = 0; conHour = 0; } //----------------------------------------------Kondisi untuk menghentikan datalogger--------------------------------------------- ---- if(ok == 1) { myFile.close(); lcd.clear(); lcd.setCursor(6, 0); lcd.print("Berhenti"); lcd.setCursor(5, 1); lcd.print("Proses"); ukuran_proses = 0; penundaan(2000); lcd.clear(); DS1307.getDate(Waktu Data); sprintf(kali, "%02d:%02d", DataTime[4], DataTime[5]); lcd.setCursor(5, 0); lcd.print(kali); lcd.setCursor(0, 1); lcd.print("1-M 2-H 3-O/P"); } } //---------------------------------------------- ------- Sesuaikan Jam ----------------------------------------- ---------------------- //Sesuaikan Jam if(adjust_process == 1) { lcd.clear(); DS1307.getDate(Waktu Data); lcd.setCursor(0, 0); lcd.print("Sesuaikan Jam:"); sprintf(kali, "%02d:%02d", DataTime[4], DataTime[5]); lcd.setCursor(5, 1); lcd.print(kali); //Jam Menyesuaikan melakukan { mengukur = digitalRead(Buttonmeasure); adjusthour = digitalRead(Tombol sesuaikan jam); ok = digitalRead(Tombol); if(ukuran == 0 && ukuran_status == 1) { ukuran_status = 0; } if(ukuran == 1 && ukuran_status == 0) { DataTime[4]++; if(DataTime[4] > 23) { DataTime[4] = 0; } ukuran_status = 1; sprintf(kali, "%02d:%02d", DataTime[4], DataTime[5]); lcd.setCursor(5, 1); lcd.print(kali); DS1307.setDate(DataTime[0], DataTime[1], DataTime[2], DataTime[3], DataTime[4], DataTime[5], 00); } if(adjusthour == 0 && adjusthour_state == 1) { adjusthour_state = 0; } if(adjusthour == 1 && adjusthour_state == 0) { DataTime[5]++; if(DataTime[5] > 59) { DataTime[5] = 0; } sprintf(kali, "%02d:%02d", DataTime[4], DataTime[5]); lcd.setCursor(5, 1); lcd.print(kali); DS1307.setDate(DataTime[0], DataTime[1], DataTime[2], DataTime[3], DataTime[4], DataTime[5], 00); adjusthour_state = 1; } if(ok == 1) { lcd.clear(); DS1307.getDate(Waktu Data); sprintf(kali, "%02d:%02d", DataTime[4], DataTime[5]); lcd.setCursor(0, 0); lcd.print(kali); lcd.setCursor(0, 1); lcd.print("1-M 2-H 3-O"); sesuaikan_proses = 0; } }sementara(ok != 1); } //----------------------------------------------- ------- Selesai Menyesuaikan Jam---------------------------------------- ------------------- }

Pertama, kami mendefinisikan semua perpustakaan untuk mengontrol modul dan mendeklarasikan variabel yang digunakan saat memprogram Datalogger JLCPCB dengan sensor suhu untuk Arduino. Blok kode ditunjukkan di bawah ini.

Langkah 3:

#include //Perpustakaan dengan semua fungsi Sensor DS18B20

#include #include //Biblioteca I2C do LCD 16x2 #include //Biblioteca de Comunicacao I2C #include //Library OneWire untuk Sensor DS18B20 #include #include LiquidCrystal_I2C lcd (0x27, 16, 2); // Mengkonfigurasi untuk melakukan LCD 16x2 untuk 0x27 #menentukan ONE_WIRE_BUS 8 //Pin Digital untuk menghubungkan Sensor DS18B20 //Menentukan semua instancia untuk melakukan oneWire untuk komunikasi dengan sensor OneWire oneWire(ONE_WIRE_BUS); Sensor suhu Dallas(&oneWire); Sensor Alamat Perangkat1; File file saya; #define Buttonmeasure 2 #define Buttonadjusthour 3 #define Buttonok 4 ukuran bool = 0, adjusthour = 0, ok = 0; bool measure_state = 0, adjusthour_state = 0, ok_state = 0; bool measure_process = 0, adjust_process = 0; byte aktualMin = 0, sebelumnyaMin = 0; byte jam aktual = 0, jam sebelumnya = 0; byte minUpdate = 0; int pinoSS = 10; // Pin 53 untuk Mega / Pin 10 untuk UNO int DataTime[7];

Selanjutnya, kami memiliki fungsi pengaturan batal. Fungsi ini digunakan untuk mengkonfigurasi pin dan inisialisasi perangkat, seperti yang ditunjukkan di bawah ini.

batalkan pengaturan()

{ Serial.begin(9600); DS1307.mulai(); sensor.mulai(); pinMode(pinoSS, OUTPUT); // Deklarasi pinoSS como saída Wire.begin(); //Inicializacao da Comunicacao I2C lcd.init(); //Inisialisasi lakukan LCD lcd.backlight(); lcd.setCursor(3, 0); lcd.print("Sistem Suhu"); lcd.setCursor(3, 1); lcd.print("Datalogger"); penundaan(2000); // Localiza e mostra enderecos dos sensores Serial.println("Localizando sensores DS18B20…"); Serial.print("Lokalisasi Sensor berhasil!"); Serial.print(sensors.getDeviceCount(), DEC); Serial.println("Sensor"); if(SD.begin()) { // Inisialisasi o SD Card Serial.println("SD Card pronto para uso."); // Imprime na tela } else { Serial.println("Falha na inicialização do SD Card."); kembali; } DS1307.getDate(DataTime); lcd.clear(); sprintf(kali, "%02d:%02d", DataTime[4], DataTime[5]); lcd.setCursor(5, 0); lcd.print(kali); lcd.setCursor(0, 1); lcd.print("1-M 2-H 3-O/P"); }

Pertama, komunikasi serial, jam waktu nyata dan sensor suhu untuk Arduino DS18B20 dimulai. Setelah menginisialisasi dan menguji perangkat, pesan dengan opsi menu dicetak pada layar LCD 16x2. Layar ini ditunjukkan pada Gambar 1.

Langkah 4:

Setelah itu, sistem membaca jam dan memperbarui nilainya dengan memanggil fungsi updateHour. Jadi, fungsi ini bertujuan untuk menyajikan nilai per jam setiap menit. Blok kode fungsi ditunjukkan di bawah ini.

batalkan updateHour()

{ DS1307.getDate(DataTime); if(DataTime[5] != minUpdate) { sprintf(kali, "%02d:%02d", DataTime[4], DataTime[5]); lcd.setCursor(0, 0); lcd.print(""); lcd.setCursor(5, 0); lcd.print(kali); minUpdate = DataTime[5]; } }

Langkah 5:

Gambar
Gambar

Selain memperbarui jam, pengguna dapat memilih salah satu dari tiga tombol untuk memantau pasien dengan sensor suhu dengan Arduino. Rangkaian ditunjukkan pada Gambar di atas.

Langkah 6: Menu Kontrol Datalogger JLCPCB

Menu Kontrol Datalogger JLCPCB
Menu Kontrol Datalogger JLCPCB

Pertama, pengguna harus memeriksa dan menyesuaikan jam sistem. Proses ini dilakukan ketika tombol kedua ditekan.

Ketika tombol ditekan, layar berikut akan muncul, yang ditunjukkan pada Gambar di atas.

Langkah 7:

Gambar
Gambar

Dari layar ini, pengguna akan dapat memasukkan nilai jam dan menit dari tombol yang terhubung ke pin digital 2 dan 3 Arduino. Tombol-tombol tersebut ditunjukkan pada Gambar di atas.

Bagian kode untuk mengontrol jam ditunjukkan di bawah ini.

if(adjusthour == 0 && adjusthour_state == 1)

{ adjusthour_state = 0; } if(adjusthour == 1 && adjusthour_state == 0 && measure_process == 0) { adjust_process = 1; }

Ketika tombol jam ditekan dan variabel measure_process disetel ke 0, kondisinya akan benar dan variabel adjust_process akan disetel ke 1. Variabel measure_process digunakan untuk memberi sinyal bahwa sistem sedang memantau suhu. Ketika nilainya 0, sistem akan mengizinkan pengguna untuk masuk ke menu pengaturan waktu. Oleh karena itu, setelah variabel adjust_process menerima nilai 1, sistem akan memasuki kondisi penyesuaian waktu. Blok kode ini ditunjukkan di bawah ini.

//------------------------------------------------ -----Sesuaikan Jam------------------------------------------- --------------------

//Sesuaikan Jam if(sesuaikan_proses == 1) { lcd.clear(); DS1307.getDate(Waktu Data); lcd.setCursor(0, 0); lcd.print("Sesuaikan Jam:"); sprintf(kali, "%02d:%02d", DataTime[4], DataTime[5]); lcd.setCursor(5, 1); lcd.print(kali); //Jam Menyesuaikan melakukan { mengukur = digitalRead(Buttonmeasure); adjusthour = digitalRead(Tombol sesuaikan jam); ok = digitalRead(Tombol); if(ukuran == 0 && ukuran_status == 1) { ukuran_status = 0; } if(ukuran == 1 && ukuran_status == 0) { DataTime[4]++; if(DataTime[4] > 23) { DataTime[4] = 0; } ukuran_status = 1; sprintf(kali, "%02d:%02d", DataTime[4], DataTime[5]); lcd.setCursor(5, 1); lcd.print(kali); DS1307.setDate(DataTime[0], DataTime[1], DataTime[2], DataTime[3], DataTime[4], DataTime[5], 00); } if(adjusthour == 0 && adjusthour_state == 1) { adjusthour_state = 0; } if(adjusthour == 1 && adjusthour_state == 0) { DataTime[5]++; if(DataTime[5] > 59) { DataTime[5] = 0; } sprintf(kali, "%02d:%02d", DataTime[4], DataTime[5]); lcd.setCursor(5, 1); lcd.print(kali); DS1307.setDate(DataTime[0], DataTime[1], DataTime[2], DataTime[3], DataTime[4], DataTime[5], 00); adjusthour_state = 1; } if(ok == 1) { lcd.clear(); DS1307.getDate(Waktu Data); sprintf(kali, "%02d:%02d", DataTime[4], DataTime[5]); lcd.setCursor(0, 0); lcd.print(kali); lcd.setCursor(0, 1); lcd.print("1-M 2-H 3-O"); sesuaikan_proses = 0; } }sementara(ok != 1); }

Dalam kondisi ini, sistem akan menampilkan pesan yang ditunjukkan pada Gambar 4 dan kemudian menunggu nilai untuk menyesuaikan secara internal di loop sementara. Saat mengatur jam, tombol-tombol ini berubah fungsinya, yaitu multifungsi.

Ini memungkinkan Anda menggunakan tombol untuk lebih dari satu fungsi dan mengurangi kerumitan sistem.

Dengan cara ini, pengguna akan menyesuaikan nilai jam dan menit dan kemudian menyimpan data dalam sistem ketika tombol Ok ditekan.

Seperti yang Anda lihat, sistem akan membaca 3 tombol, seperti yang ditunjukkan di bawah ini.

ukuran = digitalRead(Pengukuran Tombol);

adjusthour = digitalRead(Tombol sesuaikan jam); ok = digitalRead(Tombol);

Perhatikan bahwa tombol pengukur (Buttonmeasure) telah berubah fungsinya. Sekarang akan digunakan untuk menyesuaikan nilai jam, seperti yang ditunjukkan di bawah ini. Dua kondisi berikut serupa dan digunakan untuk menyesuaikan jam dan menit, seperti yang ditunjukkan di atas.

if(ukuran == 0 && ukuran_status == 1)

{ ukuran_status = 0; } if(ukuran == 1 && ukuran_status == 0) { DataTime[4]++; if(DataTime[4] > 23) { DataTime[4] = 0; } ukuran_status = 1; sprintf(kali, "%02d:%02d", DataTime[4], DataTime[5]); lcd.setCursor(5, 1); lcd.print(kali); DS1307.setDate(DataTime[0], DataTime[1], DataTime[2], DataTime[3], DataTime[4], DataTime[5], 00); } if(adjusthour == 0 && adjusthour_state == 1) { adjusthour_state = 0; } if(adjusthour == 1 && adjusthour_state == 0) { DataTime[5]++; if(DataTime[5] > 59) { DataTime[5] = 0; } sprintf(kali, "%02d:%02d", DataTime[4], DataTime[5]); lcd.setCursor(5, 1); lcd.print(kali); DS1307.setDate(DataTime[0], DataTime[1], DataTime[2], DataTime[3], DataTime[4], DataTime[5], 00); adjusthour_state = 1; }

Oleh karena itu, setiap kali salah satu dari dua tombol ditekan, nilai posisi 4 dan 5 dari vektor DataTime akan diubah dan kedua, nilai-nilai ini akan disimpan dalam memori DS1307.

Setelah penyesuaian, pengguna harus mengklik tombol Ok, untuk menyelesaikan proses. Ketika peristiwa ini terjadi, sistem akan mengeksekusi baris kode berikut.

jika (baik == 1)

{ lcd.clear(); DS1307.getDate(Waktu Data); sprintf(kali, "%02d:%02d", DataTime[4], DataTime[5]); lcd.setCursor(0, 0); lcd.print(kali); lcd.setCursor(0, 1); lcd.print("1-M 2-H 3-O"); sesuaikan_proses = 0; }

Ini akan memasuki kondisi di atas dan menyajikan pesan jam dan Menu Opsi kepada pengguna.

Terakhir, pengguna harus memulai proses pemantauan pasien melalui sensor suhu dengan Arduino JLCPCB Datalogger.

Untuk melakukan ini, pengguna harus menekan tombol pengukuran, yang terhubung ke pin digital 2.

Kemudian, sistem akan melakukan pembacaan dengan sensor suhu untuk Arduino dan menyimpannya di kartu memori. Wilayah sirkuit ditunjukkan pada Gambar di atas.

Langkah 8:

Gambar
Gambar

Oleh karena itu, ketika tombol ditekan, bagian kode berikut akan dieksekusi.

if(ukuran == 0 && ukuran_status == 1)

{ ukuran_status = 0; } if(ukuran == 1 && ukuran_status == 0 && ukuran_proses == 0) { ukuran_proses = 1; ukuran_status = 1; if (SD.exists("temp.txt")) { Serial.println("Apagou o arquivo anterior!"); SD.remove("temp.txt"); myFile = SD.open("temp.txt", FILE_WRITE); // Cria / Abre arquivo.txt Serial.println("Criou o arquivo!"); } else { Serial.println("Criou o arquivo!"); myFile = SD.open("temp.txt", FILE_WRITE); // Cria / Abre arquivo.txt myFile.close(); } penundaan (500); myFile.print("Jam: "); myFile.println("Suhu"); DS1307.getDate(Waktu Data); aktualMin = sebelumnyaMin = DataTime[5]; sprintf(kali, "%02d:%02d", DataTime[4], DataTime[5]); lcd.clear(); lcd.setCursor(5, 0); lcd.print(kali); lcd.setCursor(0, 1); lcd.print("Suhu: "); lcd.setCursor(14, 1); sensor.requestTemperatures(); float TempSensor = sensor.getTempCByIndex(0); lcd.print(Sensor Suhu); }

Pada bagian kode di atas, sistem akan memberikan nilai 1 ke variabel measure_process. Ini bertanggung jawab untuk memungkinkan data disimpan di Kartu SD.

Selain itu, sistem akan memeriksa apakah file teks dengan data log ada atau tidak. Jika ada file, sistem akan menghapus dan membuat yang baru untuk menyimpan data.

Setelah itu, akan dibuat dua kolom: satu untuk jam dan satu untuk suhu di dalam file teks.

Setelah itu akan ditampilkan jam dan suhu pada layar LCD, seperti terlihat pada Gambar di atas.

Setelah itu, aliran kode akan mengeksekusi blok program berikut.

jika(ukuran_proses == 1)

{ updateTemp(); byte contMin = 0, contHour = 0; DS1307.getDate(Waktu Data); aktualMin = DataTime[5]; //------------------------------------------------ --------- Hitung Menit--------------------------------------- ------------------- if(actualMin != PreviousMin) { contMin++; sebelumnyaMin = aktualMin; } if(contMin == 5) { sprintf(kali, "%02d:%02d ", DataTime[4], DataTime[5]); sensor.requestTemperatures(); float TempSensor = sensor.getTempCByIndex(0); myFile.print(kali); myFile.println(TempSensor); contMin = 0; } //----------------------------------------------- ------------ Hitung Jam ------------------------------------ ---------------------- if(ActualHour != PreviousHour) { contHour++; jam sebelumnya = jam aktual; } if(contHour == 5) { myFile.close(); lcd.clear(); lcd.setCursor(5, 0); lcd.print("Selesai"); lcd.setCursor(5, 1); lcd.print("Proses"); ukuran_proses = 0; conHour = 0; } //----------------------------------------------Kondisi untuk menghentikan pencatat data-----

Pertama, fungsi updateTemp() akan dijalankan. Ini mirip dengan fungsi updateHour(); namun, ini menampilkan suhu setiap 1 menit.

Setelah itu, sistem akan mengumpulkan data waktu dari Jam Real-Time dan menyimpan nilai menit saat ini dalam variabel CurrentMin.

Kemudian, ia akan memeriksa apakah variabel min telah diubah, sesuai dengan kondisi yang disajikan di bawah ini

if(Min aktual != Min sebelumnya)

{ contMin++; sebelumnyaMin = aktualMin; }

Oleh karena itu, jika variabel menit saat ini berbeda dengan nilai sebelumnya, berarti telah terjadi perubahan nilai. Dengan cara ini, kondisi akan menjadi benar dan nilai hitungan menit akan meningkat (contMin) dan nilai saat ini akan ditugaskan ke variabel sebelumnyaMin, untuk menyimpan nilai sebelumnya.

Oleh karena itu, ketika nilai hitungan ini sama dengan 5, itu berarti 5 menit telah berlalu dan sistem harus melakukan pembacaan suhu baru dan menyimpan nilai jam dan suhu di file log SD Card.

jika(contMin == 5)

{ sprintf(kali, "%02d:%02d", DataTime[4], DataTime[5]); sensor.requestTemperatures(); float TempSensor = sensor.getTempCByIndex(0); myFile.print(kali); myFile.println(TempSensor); contMin = 0; }

Dengan cara ini, proses ini akan berulang hingga mencapai nilai 5 jam pemantauan suhu pasien dengan sensor suhu dengan Arduino.

Bagian kode ditunjukkan di bawah ini dan mirip dengan hitungan menit, yang disajikan di atas.

//------------------------------------------------ ----------- Hitung Jam------------------------------------- ----------

if(jam aktual != jam sebelumnya) { contHour++; jam sebelumnya = jam aktual; } if(contHour == 5) { myFile.close(); lcd.clear(); lcd.setCursor(5, 0); lcd.print("Selesai"); lcd.setCursor(5, 1); lcd.print("Proses"); ukuran_proses = 0; conHour = 0; }

Setelah mencapai 5 jam pemantauan, sistem akan menutup file log dan menampilkan pesan "Proses Selesai" kepada pengguna.

Selain itu, pengguna dapat menekan tombol Ok/Pause untuk menghentikan perekaman data. Ketika ini terjadi, blok kode berikut akan dieksekusi.

//--------------------------------------------------------- Kondisi untuk hentikan datalogger------------------------------------------------ ---

if(ok == 1) { myFile.close(); lcd.clear(); lcd.setCursor(6, 0); lcd.print("Berhenti"); lcd.setCursor(5, 1); lcd.print("Proses"); ukuran_proses = 0; penundaan(2000); lcd.clear(); DS1307.getDate(Waktu Data); sprintf(kali, "%02d:%02d", DataTime[4], DataTime[5]); lcd.setCursor(5, 0); lcd.print(kali); lcd.setCursor(0, 1); lcd.print("1-M 2-H 3-O/P"); }

Langkah 9:

Gambar
Gambar

Kemudian sistem akan menutup file tersebut dan menampilkan pesan “Stoped Process”, seperti terlihat pada Gambar 8.

Langkah 10:

Gambar
Gambar

Setelah itu, sistem akan mencetak tampilan waktu dan pilihan menu, seperti terlihat pada Gambar 9.

Langkah 11: Mengakses Data Modul Kartu SD Dengan Arduino

Mengakses Data Modul Kartu SD Dengan Arduino
Mengakses Data Modul Kartu SD Dengan Arduino

Setelah proses monitoring JLCPCB Datalogger dengan sensor suhu dengan Arduino, maka perlu melepas kartu memori dan mengakses data di komputer.

Untuk melihat dan menganalisis data dengan kualitas yang lebih baik, ekspor / salin semua informasi file teks ke Excel. Setelah itu, Anda dapat memplot grafik dan menganalisis hasil yang diperoleh.

Langkah 12: Kesimpulan

Datalogger JLCPCB dengan sensor suhu dengan Arduino memungkinkan kita, selain mengukur suhu, merekam informasi tentang perilaku suhu pasien selama periode waktu tertentu.

Dengan data yang tersimpan ini, dimungkinkan untuk menganalisis dan memahami bagaimana suhu pasien yang terinfeksi COVID 19 berperilaku.

Selain itu, dimungkinkan untuk mengevaluasi tingkat suhu dan mengaitkan nilainya dengan penerapan beberapa jenis obat.

Oleh karena itu, melalui data tersebut, JLCPCB Datalogger dengan sensor suhu untuk Arduino bertujuan untuk membantu dokter dan perawat dalam mempelajari perilaku pasien.

Akhirnya, kami berterima kasih kepada perusahaan JLCPCB yang telah mendukung pengembangan proyek dan berharap Anda dapat menggunakannya

Semua file dapat diunduh dan digunakan secara bebas oleh pengguna mana pun.

Direkomendasikan: