Talaan ng mga Nilalaman:

Temperatura Sensor para sa Arduino Inilapat para sa COVID 19: 12 Mga Hakbang (na may Mga Larawan)
Temperatura Sensor para sa Arduino Inilapat para sa COVID 19: 12 Mga Hakbang (na may Mga Larawan)

Video: Temperatura Sensor para sa Arduino Inilapat para sa COVID 19: 12 Mga Hakbang (na may Mga Larawan)

Video: Temperatura Sensor para sa Arduino Inilapat para sa COVID 19: 12 Mga Hakbang (na may Mga Larawan)
Video: SKRIPSI AWARDS 2020 - Ruang 2 Sesi 2 2024, Disyembre
Anonim
Temperatura Sensor para sa Arduino Inilapat para sa COVID 19
Temperatura Sensor para sa Arduino Inilapat para sa COVID 19

Ang sensor ng temperatura para sa Arduino ay isang pangunahing elemento kapag nais naming masukat ang temperatura ng isang processor ng katawan ng tao.

Ang sensor ng temperatura na may Arduino ay dapat makipag-ugnay o malapit upang matanggap at masukat ang antas ng init. Iyon ay kung paano gumagana ang mga thermometers.

Ang mga aparatong ito ay lubhang ginagamit upang sukatin ang temperatura ng katawan ng mga taong may sakit, dahil ang temperatura ay isa sa mga unang kadahilanan na nagbabago sa katawan ng tao kapag mayroong isang abnormalidad o sakit.

Ang isa sa mga sakit na nagbabago ng temperatura ng katawan ng tao ay COVID 19. Samakatuwid, ipinakita namin ang mga pangunahing sintomas:

Pagod sa Ubo Pinagkakahirapan sa paghinga (Malubhang kaso) Ang Fever Fever ay isang sintomas na ang pangunahing katangian ay ang pagtaas ng temperatura ng katawan. Sa sakit na ito, kailangan nating patuloy na subaybayan ang mga sintomas na ito.

Sa gayon, bubuo kami ng isang proyekto upang subaybayan ang temperatura at iimbak ang data na ito sa isang memory card sa pamamagitan ng isang JLCPCB Datalogger na gumagamit ng isang sensor ng temperatura na may Arduino.

Samakatuwid, sa artikulong ito matututunan mo:

  • Paano ang isang JLCPCB Datalogger na may temperatura sensor na may Arduino?
  • Paano gumagana ang temperatura sensor sa Arduino.
  • Paano gumagana ang sensor ng temperatura ng DS18B20 sa Arduino
  • Gumamit ng mga pindutan na may maraming mga pag-andar.

Susunod, ipapakita namin sa iyo kung paano mo bubuoin ang iyong JLCPCB Datalogger gamit ang sensor ng temperatura ng Arduino.

Mga gamit

Arduino UNO

JLCPCB Printed Circuit Board

DS18B20 Temperatura Sensor

Arduino Nano R3

Mga jumper

LCD Display 16 x 2

Pushbutton switch

Resistor 1kR

SD Card Module para sa Arduino

Hakbang 1: Konstruksyon ng JLCPCB Datalogger Na May Temperatura Sensor Sa Arduino

Ang pagtatayo ng JLCPCB Datalogger Na May Temperatura Sensor Sa Arduino
Ang pagtatayo ng JLCPCB Datalogger Na May Temperatura Sensor Sa Arduino

Tulad ng naunang nabanggit, ang proyekto ay binubuo ng paglikha ng isang JLCPCB Datalogger na may Temperature Sensor na may Arduino, at sa pamamagitan ng data na ito, masusubaybayan namin ang temperatura ng pasyente na ginagamot.

Kaya, ang circuit ay ipinapakita sa Larawan sa itaas.

Samakatuwid, tulad ng nakikita mo, ang circuit na ito ay may DS18B20 temperatura sensor na may Arduino, na responsable para sa pagsukat ng pagbabasa ng temperatura ng pasyente.

Bilang karagdagan, mananagot ang Arduino Nano para sa pagkolekta ng data na ito at iimbak ito sa memory card ng SD Card Module.

Ang bawat impormasyon ay mai-save sa kani-kanilang oras, na mababasa mula sa RTC Module DS1307.

Kaya, para ma-save ang data ng sensor ng temperatura na may Arduino, dapat isagawa ng gumagamit ang proseso sa pamamagitan ng Control Menu gamit ang 16x2 LCD.

Hakbang 2:

Larawan
Larawan

Ang bawat pindutan ay responsable para sa pagkontrol ng isang pagpipilian, tulad ng ipinakita sa LCD screen 16x2 sa Larawan 2.

Ang bawat pagpipilian ay responsable para sa pagsasagawa ng isang pag-andar sa system, tulad ng ipinakita sa ibaba.

  • Ang Opsyon M ay responsable para sa pagsisimula ng pagsukat at pagtatala ng data sa Memory Card.
  • Ang Opsyon H ay responsable para sa pag-aayos ng mga oras ng system.
  • Ginagamit ang Opsyon O / P upang kumpirmahin ang pagpasok ng data sa system o upang i-pause ang pagsulat ng data sa memory card.

Upang maunawaan ang proseso ng pagkontrol ng system, ibibigay namin ang code sa ibaba at talakayin ang sunud-sunod na control system ng JLCPCB Datalogger na may Temperature Sensor na may Arduino.

# isama // // Library na may lahat ng pagpapaandar ng DS18B20 Sensor

#include #include // Biblioteca I2C do LCD 16x2 #include // Biblioteca de Comunicacao I2C #include // OneWire Library for DS18B20 Sensor #include #include LiquidCrystal_I2C lcd (0x27, 16, 2); // Configurando o endereco do LCD 16x2 para 0x27 #define ONE_WIRE_BUS 8 // Digital Pin to connect the DS18B20 Sensor // Define uma instancia do oneWire para comunicacao com o sensor OneWire oneWire (ONE_WIRE_BUS); Mga sensor ng DallasTemperature (& oneWire); DeviceAddress sensor1; I-file ang myFile; #define Buttonmeasure 2 #define Buttonadjusthour 3 #define Buttonok 4 bool sukat = 0, adjusthour = 0, ok = 0; bool size_state = 0, adjusthour_state = 0, ok_state = 0; bool size_process = 0, adjust_process = 0; byte actualMin = 0, nakaraangMin = 0; byte actualHour = 0, nakaraangHour = 0; byte minUpdate = 0; int pinoSS = 10; // Pin 53 para Mega / Pin 10 para sa UNO int DataTime [7]; void updateHour () {DS1307.getDate (DataTime); kung (DataTime [5]! = minUpdate) {sprintf (beses, "% 02d:% 02d", DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.print (""); lcd.setCursor (5, 0); lcd.print (beses); minUpdate = DataTime [5]; }} void updateTemp () {DS1307.getDate (DataTime); kung (DataTime [5]! = minUpdate) {sprintf (beses, "% 02d:% 02d", DataTime [4], DataTime [5]); lcd.clear (); lcd.setCursor (5, 0); lcd.print (beses); lcd.setCursor (0, 1); lcd.print ("Temperatura:"); lcd.setCursor (14, 1); sensors.requestTemperature (); float TempSensor = sensors.getTempCByIndex (0); lcd.print (TempSensor); minUpdate = DataTime [5]; }} void setup () {Serial.begin (9600); DS1307.begin (); sensor. simula (); pinMode (pinoSS, OUTPUT); // Declara pinoSS como saída Wire.begin (); // Inicializacao da Comunicacao I2C lcd.init (); // Inicializacao gawin LCD lcd.backlight (); lcd.setCursor (3, 0); lcd.print ("Temp System"); lcd.setCursor (3, 1); lcd.print ("Datalogger"); pagkaantala (2000); // Localiza e mostra enderecos dos sensores Serial.println ("Localizando sensores DS18B20…"); Serial.print (matagumpay na "Lokalisasyon ng Sensor!"); Serial.print (sensors.getDeviceCount (), DEC); Serial.println ("Sensor"); kung (SD.begin ()) {// Inicializa o SD Card Serial.println ("SD Card pronto para uso."); // Imprime na tela} else {Serial.println ("Falha na inicialização do SD Card."); bumalik; } DS1307.getDate (DataTime); lcd.clear (); sprintf (beses, "% 02d:% 02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (beses); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O / P"); } void loop () {updateHour (); // Ang button ng Pagbasa ay nagsasaad ng panukalang = digitalRead (Buttonmeasure); adjusthour = digitalRead (Buttonadjusthour); ok = digitalRead (Buttonok); kung (sukatin == 0 && sukatin_state == 1) {sukatin_state = 0; } kung (sukatin == 1 && sukatin_state == 0 && sukatin_proseso == 0) {sukat_process = 1; sukatin_state = 1; kung (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!"); } iba pa {Serial.println ("Criou o arquivo!"); myFile = SD.open ("temp.txt", FILE_WRITE); // Cria / Abre arquivo.txt myFile.close (); } pagkaantala (500); myFile.print ("Oras:"); myFile.println ("Temperatura"); DS1307.getDate (DataTime); actualMin = nakaraangMin = DataTime [5]; sprintf (beses, "% 02d:% 02d", DataTime [4], DataTime [5]); lcd.clear (); lcd.setCursor (5, 0); lcd.print (beses); lcd.setCursor (0, 1); lcd.print ("Temperatura:"); lcd.setCursor (14, 1); sensors.requestTemperature (); float TempSensor = sensors.getTempCByIndex (0); lcd.print (TempSensor); } kung (adjusthour == 0 && adjusthour_state == 1) {adjusthour_state = 0; } kung (adjusthour == 1 && adjusthour_state == 0 && measure_process == 0) {adjust_process = 1; } // -------------------------------------------- --- Proseso ng Pagsukat ---- ---------------- kung (sukatin_process == 1) {updateTemp (); byte contMin = 0, contHour = 0; DS1307.getDate (DataTime); actualMin = DataTime [5]; // ----------------- --------- Bilangin ang Mga Minuto ------------------------------------ ------------------- kung (actualMin! = nakaraangMin) {contMin ++; nakaraangMin = aktwal naMin; } kung (contMin == 5) {sprintf (beses, "% 02d:% 02d", DataTime [4], DataTime [5]); sensors.requestTemperature (); float TempSensor = sensors.getTempCByIndex (0); myFile.print (beses); myFile.println (TempSensor); contMin = 0; } // -------------------------------------------- ------------ Bilangin ang Mga Oras ------------------------------------ ----------------- kung (aktwal na Oras! = nakaraangHour) {contHour ++; nakaraangHour = aktwal na Oras; } kung (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print ("Tapos na"); lcd.setCursor (5, 1); lcd.print ("Proseso"); sukatin_process = 0; contHour = 0; } // -----------------Condition upang ihinto ang datalogger ---- kung (ok == 1) {myFile.close (); lcd.clear (); lcd.setCursor (6, 0); lcd.print ("Itinigil"); lcd.setCursor (5, 1); lcd.print ("Proseso"); sukatin_process = 0; pagkaantala (2000); lcd.clear (); DS1307.getDate (DataTime); sprintf (beses, "% 02d:% 02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (beses); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O / P"); }} // ----------------- ------- Ayusin ang Mga Oras ------------------------------------- ----------------- // Ayusin ang Oras kung (adjust_process == 1) {lcd.clear (); DS1307.getDate (DataTime); lcd.setCursor (0, 0); lcd.print ("Ayusin ang Oras:"); sprintf (beses, "% 02d:% 02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (beses); // Hour Adjust gawin {sukat = digitalRead (Buttonmeasure); adjusthour = digitalRead (Buttonadjusthour); ok = digitalRead (Buttonok); kung (sukatin == 0 && sukatin_state == 1) {sukatin_state = 0; } kung (sukatin == 1 && sukatin_state == 0) {DataTime [4] ++; kung (DataTime [4]> 23) {DataTime [4] = 0; } sukatin_state = 1; sprintf (beses, "% 02d:% 02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (beses); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); } kung (adjusthour == 0 && adjusthour_state == 1) {adjusthour_state = 0; } kung (adjusthour == 1 && adjusthour_state == 0) {DataTime [5] ++; kung (DataTime [5]> 59) {DataTime [5] = 0; } sprintf (beses, "% 02d:% 02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (beses); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); adjusthour_state = 1; } kung (ok == 1) {lcd.clear (); DS1307.getDate (DataTime); sprintf (beses, "% 02d:% 02d", DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.print (beses); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O"); adjust_process = 0; }} habang (ok! = 1); } // -------------------------------------------- ------- Tapusin ang Pag-ayos ng Oras ---- -------------------}

Una, tinukoy namin ang lahat ng mga aklatan para sa pagkontrol sa mga module at pagdedeklara ng mga variable na ginamit kapag pinaprograma ang JLCPCB Datalogger na may isang sensor ng temperatura para sa Arduino. Ang bloke ng code ay ipinapakita sa ibaba.

Hakbang 3:

# isama // // Library na may lahat ng pagpapaandar ng DS18B20 Sensor

#include #include // Biblioteca I2C do LCD 16x2 #include // Biblioteca de Comunicacao I2C #include // OneWire Library for DS18B20 Sensor #include #include LiquidCrystal_I2C lcd (0x27, 16, 2); // Configurando o endereco do LCD 16x2 para 0x27 #define ONE_WIRE_BUS 8 // Digital Pin to connect the DS18B20 Sensor // Define uma instancia do oneWire para comunicacao com o sensor OneWire oneWire (ONE_WIRE_BUS); Mga sensor ng DallasTemperature (& oneWire); DeviceAddress sensor1; I-file ang myFile; #define Buttonmeasure 2 #define Buttonadjusthour 3 #define Buttonok 4 bool sukat = 0, adjusthour = 0, ok = 0; bool size_state = 0, adjusthour_state = 0, ok_state = 0; bool size_process = 0, adjust_process = 0; byte actualMin = 0, nakaraangMin = 0; byte actualHour = 0, nakaraangHour = 0; byte minUpdate = 0; int pinoSS = 10; // Pin 53 para Mega / Pin 10 para sa UNO int DataTime [7];

Sa paglaon, mayroon kaming walang bisa na pag-andar ng pag-setup. Ang pagpapaandar na ito ay ginagamit upang mai-configure ang mga pin at pagsisimula ng aparato, tulad ng ipinakita sa ibaba.

walang bisa ang pag-setup ()

{Serial.begin (9600); DS1307.begin (); sensor. simula (); pinMode (pinoSS, OUTPUT); // Declara pinoSS como saída Wire.begin (); // Inicializacao da Comunicacao I2C lcd.init (); // Inicializacao gawin LCD lcd.backlight (); lcd.setCursor (3, 0); lcd.print ("Temp System"); lcd.setCursor (3, 1); lcd.print ("Datalogger"); pagkaantala (2000); // Localiza e mostra enderecos dos sensores Serial.println ("Localizando sensores DS18B20…"); Serial.print (matagumpay na "Lokalisasyon ng Sensor!"); Serial.print (sensors.getDeviceCount (), DEC); Serial.println ("Sensor"); kung (SD.begin ()) {// Inicializa o SD Card Serial.println ("SD Card pronto para uso."); // Imprime na tela} else {Serial.println ("Falha na inicialização do SD Card."); bumalik; } DS1307.getDate (DataTime); lcd.clear (); sprintf (beses, "% 02d:% 02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (beses); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O / P"); }

Una, ang serial komunikasyon, ang real-time na orasan at ang sensor ng temperatura para sa Arduino DS18B20 ay sinimulan. Pagkatapos ng pagsisimula at pagsubok sa mga aparato, ang mensahe na may mga pagpipilian sa menu ay naka-print sa 16x2 LCD screen. Ang screen na ito ay ipinapakita sa Larawan 1.

Hakbang 4:

Pagkatapos nito, binabasa ng system ang mga oras at ina-update ang halaga sa pamamagitan ng pagtawag sa pag-andar ng pag-update. Sa gayon, ang pagpapaandar na ito ay may layunin ng paglalahad ng oras-oras na halaga bawat minuto. Ang block ng function code ay ipinapakita sa ibaba.

walang bisa ang pag-update ng Oras ()

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

Hakbang 5:

Larawan
Larawan

Bilang karagdagan sa pag-update ng mga oras, ang gumagamit ay maaaring pumili ng isa sa tatlong mga pindutan upang subaybayan ang pasyente na may isang sensor ng temperatura na may Arduino. Ang circuit ay ipinapakita sa Larawan sa itaas.

Hakbang 6: Menu ng Kontrol ng JLCPCB Datalogger

Menu ng Pagkontrol ng JLCPCB Datalogger
Menu ng Pagkontrol ng JLCPCB Datalogger

Una, dapat suriin at ayusin ng gumagamit ang mga oras ng system. Ginagawa ang prosesong ito kapag pinindot ang pangalawang pindutan.

Kapag pinindot ang pindutan, dapat lumitaw ang sumusunod na screen, na ipinapakita sa Larawan sa itaas.

Hakbang 7:

Larawan
Larawan

Mula sa screen na ito, magagawang ipasok ng gumagamit ang mga halaga ng oras at minuto mula sa mga pindutan na konektado sa mga digital na pin 2 at 3 ng Arduino. Ang mga pindutan ay ipinapakita sa Larawan sa itaas.

Ang bahagi ng code para sa pagkontrol sa mga oras ay ipinapakita sa ibaba.

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

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

Kapag ang pindutan ng oras ay pinindot at ang variable na sukatan ng_process ay nakatakda sa 0, ang kondisyon ay magiging totoo at ang variable na adjust_process ay itatakda sa 1. Ginagamit ang variable na panukalang_process upang ipahiwatig na sinusubaybayan ng system ang temperatura. Kapag ang halaga nito ay 0, papayagan ng system ang gumagamit na ipasok ang menu ng setting ng oras. Samakatuwid, pagkatapos makatanggap ang variable ng adjust_process ng halagang 1, papasok ang system sa kundisyon ng pagsasaayos ng oras. Ang code block na ito ay ipinapakita sa ibaba.

// ----------------- ----- Ayusin ang Mga Oras ------------------------------------------- --------------------

// Ayusin ang Oras kung (adjust_process == 1) {lcd.clear (); DS1307.getDate (DataTime); lcd.setCursor (0, 0); lcd.print ("Ayusin ang Oras:"); sprintf (beses, "% 02d:% 02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (beses); // Hour Adjust gawin {sukat = digitalRead (Buttonmeasure); adjusthour = digitalRead (Buttonadjusthour); ok = digitalRead (Buttonok); kung (sukatin == 0 && sukatin_state == 1) {sukatin_state = 0; } kung (sukatin == 1 && sukatin_state == 0) {DataTime [4] ++; kung (DataTime [4]> 23) {DataTime [4] = 0; } sukatin_state = 1; sprintf (beses, "% 02d:% 02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (beses); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); } kung (adjusthour == 0 && adjusthour_state == 1) {adjusthour_state = 0; } kung (adjusthour == 1 && adjusthour_state == 0) {DataTime [5] ++; kung (DataTime [5]> 59) {DataTime [5] = 0; } sprintf (beses, "% 02d:% 02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (beses); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); adjusthour_state = 1; } kung (ok == 1) {lcd.clear (); DS1307.getDate (DataTime); sprintf (beses, "% 02d:% 02d", DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.print (beses); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O"); adjust_process = 0; }} habang (ok! = 1); }

Sa kondisyong ito, ipapakita ng system ang mensahe na ipinakita sa Larawan 4 at pagkatapos ay maghintay para sa mga halaga na ayusin sa loob ng habang loop. Kapag ang pag-aayos ng oras, ang mga pindutan na ito ay binago ang kanilang mga pag-andar, iyon ay, ang mga ito ay multifunction.

Pinapayagan kang gumamit ng isang pindutan para sa higit sa isang pagpapaandar at mabawasan ang pagiging kumplikado ng system.

Sa ganitong paraan, ayusin ng gumagamit ang halaga ng mga oras at minuto at pagkatapos ay i-save ang data sa system kapag pinindot ang pindutan ng Ok.

Tulad ng nakikita mo, babasahin ng system ang 3 mga pindutan, tulad ng ipinakita sa ibaba.

sukatin = digitalRead (Buttonmeasure);

adjusthour = digitalRead (Buttonadjusthour); ok = digitalRead (Buttonok);

Tandaan na ang pindutan ng pagsukat (Buttonmeasure) ay binago ang pagpapaandar nito. Gagamitin ito ngayon upang ayusin ang mga halaga ng oras, tulad ng ipinakita sa ibaba. Ang mga sumusunod na dalawang kundisyon ay pareho at ginagamit upang ayusin ang mga oras at minuto, tulad ng ipinakita sa itaas.

kung (sukatin == 0 && sukatin_state == 1)

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

Samakatuwid, sa tuwing pinipindot ang isa sa dalawang mga pindutan, ang halaga ng mga posisyon na 4 at 5 ng DataTime vector ay mababago at pangalawa, ang mga halagang ito ay mai-save sa memorya ng DS1307.

Matapos ang mga pagsasaayos, dapat mag-click ang gumagamit sa pindutang Ok, upang matapos ang proseso. Kapag nangyari ang kaganapang ito, isasagawa ng system ang mga sumusunod na linya ng code.

kung (ok == 1)

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

Ipapasok nito ang kundisyon sa itaas at ipapakita ang mensahe ng oras at ang Opsyon Menu sa gumagamit.

Panghuli, dapat simulan ng gumagamit ang proseso ng pagsubaybay ng pasyente sa pamamagitan ng sensor ng temperatura gamit ang Arduino JLCPCB Datalogger.

Upang magawa ito, dapat pindutin ng gumagamit ang pindutan ng pagsukat, na konektado sa digital pin 2.

Pagkatapos, isasagawa ng system ang pagbabasa gamit ang sensor ng temperatura para sa Arduino at i-save ito sa memory card. Ang rehiyon ng circuit ay ipinapakita sa Larawan sa itaas.

Hakbang 8:

Larawan
Larawan

Samakatuwid, kapag pinindot ang pindutan, ang sumusunod na bahagi ng code ay papatayin.

kung (sukatin == 0 && sukatin_state == 1)

{sukat_state = 0; } kung (sukatin == 1 && sukatin_state == 0 && sukatin_proseso == 0) {sukat_process = 1; sukatin_state = 1; kung (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!"); } iba pa {Serial.println ("Criou o arquivo!"); myFile = SD.open ("temp.txt", FILE_WRITE); // Cria / Abre arquivo.txt myFile.close (); } pagkaantala (500); myFile.print ("Oras:"); myFile.println ("Temperatura"); DS1307.getDate (DataTime); actualMin = nakaraangMin = DataTime [5]; sprintf (beses, "% 02d:% 02d", DataTime [4], DataTime [5]); lcd.clear (); lcd.setCursor (5, 0); lcd.print (beses); lcd.setCursor (0, 1); lcd.print ("Temperatura:"); lcd.setCursor (14, 1); sensors.requestTemperature (); float TempSensor = sensors.getTempCByIndex (0); lcd.print (TempSensor); }

Sa bahagi ng code sa itaas, magtatalaga ang system ng isang halaga na 1 sa variable na sukat_proseso. Ito ay responsable para sa pagpapahintulot sa data na mai-save sa SD Card.

Bilang karagdagan, susuriin ng system kung mayroon o hindi ang isang file ng teksto na may isang log ng data. Kung mayroong isang file, tatanggalin ng system at lilikha ng bago upang maiimbak ang data.

Pagkatapos nito, lilikha ito ng dalawang haligi: isa para sa oras at isa para sa temperatura sa loob ng text file.

Pagkatapos nito, ipapakita nito ang mga oras at temperatura sa LCD screen, tulad ng ipinakita sa Larawan sa itaas.

Pagkatapos nito, isasagawa ng daloy ng code ang sumusunod na bloke ng programa.

kung (sukatin_process == 1)

{updateTemp (); byte contMin = 0, contHour = 0; DS1307.getDate (DataTime); actualMin = DataTime [5]; // ----------------- --------- Bilangin ang Mga Minuto ------------------------------------ ------------------- kung (actualMin! = nakaraangMin) {contMin ++; nakaraangMin = aktwal naMin; } kung (contMin == 5) {sprintf (beses, "% 02d:% 02d", DataTime [4], DataTime [5]); sensors.requestTemperature (); float TempSensor = sensors.getTempCByIndex (0); myFile.print (beses); myFile.println (TempSensor); contMin = 0; } // -------------------------------------------- ------------ Bilangin ang Mga Oras ------------------------------------ ----------------- kung (aktwal na Oras! = nakaraangHour) {contHour ++; nakaraangHour = aktwal na Oras; } kung (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print ("Tapos na"); lcd.setCursor (5, 1); lcd.print ("Proseso"); sukatin_process = 0; contHour = 0; } // -----------------Condition upang ihinto ang datalogger -----

Una, ang pagpapaandar na updateTemp () ay papatayin. Ito ay katulad ng pag-andar ng updateHour (); gayunpaman, ipinapakita nito ang temperatura bawat 1 minuto.

Pagkatapos nito, kokolektahin ng system ang data ng oras mula sa Real-Time Clock at iimbak ang kasalukuyang halaga ng minuto sa variable na kasalukuyangMin.

Pagkatapos, susuriin nito kung ang min variable ay binago, ayon sa kundisyon na ipinakita sa ibaba

kung (actualMin! = nakaraangMin)

{contMin ++; nakaraangMin = aktwal naMin; }

Samakatuwid, kung ang kasalukuyang variable ng minuto ay naiiba mula sa nakaraang halaga, nangangahulugan ito na ang isang pagbabago sa halaga ay naganap. Sa ganitong paraan, magiging totoo ang kondisyon at tataas ang halaga ng bilang ng minuto (contMin) at ang kasalukuyang halaga itatalaga sa variable na nakaraangMin, upang maiimbak ang dating halaga.

Samakatuwid, kapag ang halaga ng bilang na ito ay katumbas ng 5, nangangahulugan ito na 5 minuto ang lumipas at ang system ay dapat magsagawa ng isang bagong pagbabasa ng temperatura at i-save ang oras at halaga ng temperatura sa file ng SD Card log.

kung (contMin == 5)

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

Sa ganitong paraan, mauulit ang prosesong ito hanggang sa maabot ang halaga ng 5 oras ng pagsubaybay sa temperatura ng pasyente gamit ang sensor ng temperatura na may Arduino.

Ang bahagi ng code ay ipinapakita sa ibaba at katulad sa bilang ng minuto, na ipinakita sa itaas.

// ----------------- ----------- Bilangin ang Mga Oras ------------------------------------ ---------------------

kung (actualHour! = nakaraangHour) {contHour ++; nakaraangHour = aktwal na Oras; } kung (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print ("Tapos na"); lcd.setCursor (5, 1); lcd.print ("Proseso"); sukatin_process = 0; contHour = 0; }

Matapos maabot ang 5 oras ng pagsubaybay, isasara ng system ang file ng log at ipapakita ang mensahe na "Tapos na Proseso" sa gumagamit.

Bilang karagdagan, maaaring pindutin ng gumagamit ang pindutan ng Ok / I-pause upang ihinto ang pag-record ng data. Kapag nangyari ito, ang sumusunod na code block ay papatayin.

// -----------------Condition to itigil ang datalogger ---

kung (ok == 1) {myFile.close (); lcd.clear (); lcd.setCursor (6, 0); lcd.print ("Itinigil"); lcd.setCursor (5, 1); lcd.print ("Proseso"); sukatin_process = 0; pagkaantala (2000); lcd.clear (); DS1307.getDate (DataTime); sprintf (beses, "% 02d:% 02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (beses); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O / P"); }

Hakbang 9:

Larawan
Larawan

Pagkatapos, isasara ng system ang file at ipapakita ang mensahe na "Itinigil na Proseso", tulad ng ipinakita sa Larawan 8.

Hakbang 10:

Larawan
Larawan

Pagkatapos nito, mai-print ng system ang time screen at mga pagpipilian sa menu, tulad ng ipinakita sa Larawan 9.

Hakbang 11: Pag-access sa Data ng Module ng SD Card Sa Arduino

Pag-access sa Data ng Module ng SD Card Sa Arduino
Pag-access sa Data ng Module ng SD Card Sa Arduino

Matapos ang proseso ng pagsubaybay sa JLCPCB Datalogger na may temperatura sensor na may Arduino, kinakailangan upang alisin ang memory card at i-access ang data sa computer.

Upang matingnan at pag-aralan ang data na may mas mahusay na kalidad, i-export / kopyahin ang lahat ng impormasyon ng file ng teksto sa Excel. Pagkatapos nito, maaari kang magbalangkas ng mga graph at pag-aralan ang mga nakuha na resulta.

Hakbang 12: Konklusyon

Ang JLCPCB Datalogger na may isang sensor ng temperatura na may Arduino ay nagbibigay-daan sa amin, bilang karagdagan sa pagsukat ng temperatura, upang maitala ang impormasyon sa pag-uugali sa temperatura ng pasyente sa loob ng isang panahon.

Sa mga nakaimbak na data, posible na pag-aralan at unawain kung paano kumilos ang temperatura ng pasyente na nahawahan ng COVID 19.

Bilang karagdagan, posible na suriin ang antas ng temperatura at iugnay ang halaga nito sa aplikasyon ng ilang uri ng gamot.

Samakatuwid, sa pamamagitan ng data na ito, ang JLCPCB Datalogger na may sensor ng temperatura para sa Arduino ay naglalayong tulungan ang mga doktor at nars sa pag-aaral ng pag-uugali ng mga pasyente.

Panghuli, nagpapasalamat kami sa kumpanya na JLCPCB para sa pagsuporta sa pagpapaunlad ng proyekto at inaasahan naming magagamit mo ito

Ang lahat ng mga file ay maaaring ma-download at malayang magamit ng anumang gumagamit.

Inirerekumendang: