INHOUDSOPGAWE:

Temperatuursensor vir Arduino toegepas op COVID 19: 12 stappe (met foto's)
Temperatuursensor vir Arduino toegepas op COVID 19: 12 stappe (met foto's)

Video: Temperatuursensor vir Arduino toegepas op COVID 19: 12 stappe (met foto's)

Video: Temperatuursensor vir Arduino toegepas op COVID 19: 12 stappe (met foto's)
Video: Non-Contact Long Range MLX90614-DCI Temperature Sensor with Arduino 2024, November
Anonim
Temperatuursensor vir Arduino Toepas vir COVID 19
Temperatuursensor vir Arduino Toepas vir COVID 19

Die temperatuursensor vir Arduino is 'n fundamentele element wanneer ons die temperatuur van 'n verwerker van die menslike liggaam wil meet.

Die temperatuursensor met Arduino moet in aanraking wees of naby wees om die hittevlak te ontvang en te meet. Dit is hoe termometers werk.

Hierdie toestelle word uiters gebruik om die liggaamstemperatuur van siek mense te meet, aangesien die temperatuur een van die eerste faktore is wat in die menslike liggaam verander as daar 'n abnormaliteit of siekte is.

Een van die siektes wat die temperatuur van die menslike liggaam verander, is COVID 19. Daarom bied ons die belangrikste simptome aan:

Hoes Moegheid Asemhalingsprobleme (Ernstige gevalle) Koors Koors is 'n simptoom waarvan die belangrikste kenmerk 'n toename in liggaamstemperatuur is. In hierdie siekte moet ons hierdie simptome voortdurend monitor.

Ons sal dus 'n projek ontwikkel om die temperatuur te monitor en hierdie data op 'n geheue kaart te stoor deur 'n JLCPCB Datalogger met behulp van 'n temperatuursensor met Arduino.

Daarom leer u in hierdie artikel:

  • Hoe werk 'n JLCPCB -datalogger met 'n temperatuursensor met Arduino?
  • Hoe werk die temperatuursensor met Arduino.
  • Hoe werk die DS18B20 temperatuursensor met Arduino
  • Gebruik knoppies met verskeie funksies.

Vervolgens sal ons u wys hoe u u JLCPCB -datalogger sal ontwikkel met behulp van die Arduino -temperatuursensor.

Voorrade

Arduino UNO

JLCPCB -printplaat

DS18B20 Temperatuursensor

Arduino Nano R3

Springers

LCD -skerm 16 x 2

Drukknopskakelaar

Weerstand 1kR

SD -kaartmodule vir Arduino

Stap 1: Bou van die JLCPCB -datalogger met temperatuursensor met Arduino

Konstruksie van die JLCPCB -datalogger met temperatuursensor met Arduino
Konstruksie van die JLCPCB -datalogger met temperatuursensor met Arduino

Soos voorheen genoem, bestaan die projek uit die opstel van 'n JLCPCB -datalogger met temperatuursensor met Arduino, en deur middel van hierdie data kan ons die temperatuur van die pasiënt wat behandel word, monitor.

Die stroombaan word dus in die figuur hierbo getoon.

Soos u kan sien, het hierdie kring dus 'n DS18B20 temperatuursensor met Arduino, wat verantwoordelik is vir die meting van die temperatuur van die pasiënt.

Boonop is die Arduino Nano verantwoordelik vir die versameling van hierdie data en om dit op die geheue kaart van die SD -kaartmodule te stoor.

Elke inligting word gestoor met sy tyd, wat uit die RTC -module DS1307 gelees sal word.

Om die data van die temperatuursensor met Arduino te stoor, moet die gebruiker die proses via die bedieningsmenu met die 16x2 LCD uitvoer.

Stap 2:

Beeld
Beeld

Elke knoppie is verantwoordelik vir die beheer van 'n opsie, soos aangedui op die LCD -skerm 16x2 in figuur 2.

Elke opsie is verantwoordelik vir die uitvoering van 'n funksie in die stelsel, soos hieronder getoon.

  • Opsie M is verantwoordelik om die meting en opname van data op die geheue kaart te begin.
  • Opsie H is verantwoordelik vir die aanpassing van die stelselure.
  • Opsie O/P word gebruik om die invoer van data in die stelsel te bevestig of om die skryf van data na die geheue kaart te onderbreek.

Om die stelselbeheerproses te verstaan, sal ons die onderstaande kode verskaf en die stap-vir-stap beheerstelsel van die JLCPCB-datalogger met temperatuursensor met Arduino bespreek.

#include // Biblioteek met alle funksies van die DS18B20 -sensor

#include #include // Biblioteca I2C tot LCD 16x2 #include // Biblioteca de Comunicacao I2C #include // OneWire Library for DS18B20 Sensor #include #include LiquidCrystal_I2C lcd (0x27, 16, 2); // Configurando o endereco for LCD 16x2 for 0x27 #define ONE_WIRE_BUS 8 // Digital Pin to connect the DS18B20 Sensor // Define uma instancia do oneWire for comunicacao com of sensor OneWire oneWire (ONE_WIRE_BUS); DallasTemperatuur sensors (& oneWire); DeviceAddress -sensor1; Lê myFile; #define Buttonmeasure 2 #define Buttonadjusthour 3 #define Buttonok 4 bool measure = 0, adjusthour = 0, ok = 0; bool measure_state = 0, adjusthour_state = 0, ok_state = 0; bool meet_proses = 0, aanpas_proses = 0; byte actualMin = 0, previousMin = 0; byte actualHour = 0, previousHour = 0; byte minUpdate = 0; int pinoSS = 10; // Pin 53 vir Mega / Pin 10 vir UNO int DataTime [7]; ongeldig updateHour () {DS1307.getDate (DataTime); if (DataTime [5]! = minUpdate) {sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.print (""); lcd.setCursor (5, 0); lcd.print (tye); minUpdate = DataTime [5]; }} ongeldig updateTemp () {DS1307.getDate (DataTime); if (DataTime [5]! = minUpdate) {sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); lcd.clear (); lcd.setCursor (5, 0); lcd.print (tye); lcd.setCursor (0, 1); lcd.print ("Temperatuur:"); lcd.setCursor (14, 1); sensors.versoekTemperature (); float TempSensor = sensors.getTempCByIndex (0); lcd.print (TempSensor); minUpdate = DataTime [5]; }} ongeldige opstelling () {Serial.begin (9600); DS1307.begin (); sensors.begin (); pinMode (pinoSS, OUTPUT); // Declara pinoSS como saída Wire.begin (); // Inicializacao da Comunicacao I2C lcd.init (); // Inisialisasie vir LCD lcd.backlight (); lcd.setCursor (3, 0); lcd.print ("Temp System"); lcd.setCursor (3, 1); lcd.print ("Datalogger"); vertraging (2000); // Localiza e mostra enderecos dos sensores Serial.println ("Localizando sensores DS18B20 …"); Serial.print ("Sensorlokalisering suksesvol!"); Serial.print (sensors.getDeviceCount (), DEC); Serial.println ("Sensor"); if (SD.begin ()) {// Inicializa of SD Card Serial.println ("SD Card pronto para uso."); // Imprime na tela} else {Serial.println ("Inskrywing vir SD -kaart."); terugkeer; } DS1307.getDate (DataTime); lcd.clear (); sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (tye); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); } leemte -lus () {updateHour (); // Lees knoppie state meet = digitalRead (knoppie maat); adjusthour = digitalRead (Buttonadjusthour); ok = digitalRead (Buttonok); as (meet == 0 && meet_staat == 1) {maat_staat = 0; } as (meet == 1 && meet_staat == 0 && maat_verwerking == 0) {maat_verwerking = 1; meet_staat = 1; as (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!"); } anders {Serial.println ("Criou o arquivo!"); myFile = SD.open ("temp.txt", FILE_WRITE); // Cria / Abre arquivo.txt myFile.close (); } vertraging (500); myFile.print ("Uur:"); myFile.println ("temperatuur"); DS1307.getDate (DataTime); actualMin = previousMin = DataTime [5]; sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.clear (); lcd.setCursor (5, 0); lcd.print (tye); lcd.setCursor (0, 1); lcd.print ("Temperatuur:"); lcd.setCursor (14, 1); sensors.versoekTemperature (); float TempSensor = sensors.getTempCByIndex (0); lcd.print (TempSensor); } as (adjusthour == 0 && adjusthour_state == 1) {adjusthour_state = 0; } as (adjusthour == 1 && adjusthour_state == 0 && measure_process == 0) {adjust_process = 1; } // ----------------------------------------------- --- Meetproses --------------------------------------------- -------------- if (Measure_process == 1) {updateTemp (); byte contMin = 0, contHour = 0; DS1307.getDate (DataTime); actualMin = DataTime [5]; // ------------------------------------------------ --------- Tel minute --------------------------------------- ------------------- if (actualMin! = previousMin) {contMin ++; previousMin = actualMin; } if (contMin == 5) {sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); sensors.versoekTemperature (); float TempSensor = sensors.getTempCByIndex (0); myFile.print (tye); myFile.println (TempSensor); contMin = 0; } // ----------------------------------------------- ------------ Tel ure ------------------------------------ ---------------------- if (actualHour! = previousHour) {contHour ++; vorige uur = werklike uur; } as (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print ("klaar"); lcd.setCursor (5, 1); lcd.print ("Proses"); meetproses = 0; kontuur = 0; } // ---------------------------------------------- toestand om die datalogger te stop ---------------------------------------------- ---- as (ok == 1) {myFile.close (); lcd.clear (); lcd.setCursor (6, 0); lcd.print ("gestop"); lcd.setCursor (5, 1); lcd.print ("Proses"); meetproses = 0; vertraging (2000); lcd.clear (); DS1307.getDate (DataTime); sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (tye); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); }} // ---------------------------------------------- ------- Pas ure aan ----------------------------------------- ---------------------- // Pas uur aan as (aanpassingsproses == 1) {lcd.clear (); DS1307.getDate (DataTime); lcd.setCursor (0, 0); lcd.print ("Uur aanpas:"); sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (tye); // Uuraanpassing doen {meet = digitalRead (knoppermaatreël); adjusthour = digitalRead (Buttonadjusthour); ok = digitalRead (Buttonok); as (meet == 0 && meet_staat == 1) {meet_staat = 0; } as (meet == 1 && meet_staat == 0) {DataTime [4] ++; as (DataTime [4]> 23) {DataTime [4] = 0; } meet_staat = 1; sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (tye); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); } as (adjusthour == 0 && adjusthour_state == 1) {adjusthour_state = 0; } as (adjusthour == 1 && adjusthour_state == 0) {DataTime [5] ++; as (DataTime [5]> 59) {DataTime [5] = 0; } sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (tye); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); adjusthour_state = 1; } as (ok == 1) {lcd.clear (); DS1307.getDate (DataTime); sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.print (tye); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O"); aanpas_proses = 0; }} terwyl (ok! = 1); } // ----------------------------------------------- ------- Beëindig uurtyd ---------------------------------------- -------------------}

Eerstens definieer ons al die biblioteke vir die beheer van die modules en die verklaring van veranderlikes wat gebruik word by die programmering van die JLCPCB Datalogger met 'n temperatuursensor vir Arduino. Die kodeblok word hieronder getoon.

Stap 3:

#include // Biblioteek met alle funksies van die DS18B20 -sensor

#include #include // Biblioteca I2C tot LCD 16x2 #include // Biblioteca de Comunicacao I2C #include // OneWire Library for DS18B20 Sensor #include #include LiquidCrystal_I2C lcd (0x27, 16, 2); // Configurando o endereco for LCD 16x2 for 0x27 #define ONE_WIRE_BUS 8 // Digital Pin to connect the DS18B20 Sensor // Define uma instancia do oneWire for comunicacao com of sensor OneWire oneWire (ONE_WIRE_BUS); DallasTemperatuur sensors (& oneWire); DeviceAddress -sensor1; Lê myFile; #define Buttonmeasure 2 #define Buttonadjusthour 3 #define Buttonok 4 bool measure = 0, adjusthour = 0, ok = 0; bool meet_staat = 0, adjusthour_state = 0, ok_staat = 0; bool meet_proses = 0, aanpas_proses = 0; byte actualMin = 0, previousMin = 0; byte actualHour = 0, previousHour = 0; byte minUpdate = 0; int pinoSS = 10; // Pin 53 vir Mega / Pin 10 vir UNO int DataTime [7];

Hierna het ons die leemte -opstelfunksie. Hierdie funksie word gebruik om die penne en die inisialisering van toestelle op te stel, soos hieronder getoon.

leemte opstelling ()

{Serial.begin (9600); DS1307.begin (); sensors.begin (); pinMode (pinoSS, OUTPUT); // Declara pinoSS como saída Wire.begin (); // Inicializacao da Comunicacao I2C lcd.init (); // Inisialisasie vir LCD lcd.backlight (); lcd.setCursor (3, 0); lcd.print ("Temp System"); lcd.setCursor (3, 1); lcd.print ("Datalogger"); vertraging (2000); // Localiza e mostra enderecos dos sensores Serial.println ("Localizando sensores DS18B20 …"); Serial.print ("Sensorlokalisering suksesvol!"); Serial.print (sensors.getDeviceCount (), DEC); Serial.println ("Sensor"); if (SD.begin ()) {// Inicializa of SD Card Serial.println ("SD Card pronto para uso."); // Imprime na tela} else {Serial.println ("Inskrywing vir SD -kaart."); terugkeer; } DS1307.getDate (DataTime); lcd.clear (); sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (tye); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); }

Eerstens is begin met die seriële kommunikasie, die intydse klok en die temperatuursensor vir die Arduino DS18B20. Nadat die toestelle geïnitialiseer en getoets is, is die boodskap met die spyskaartopsies op die 16x2 LCD-skerm gedruk. Hierdie skerm word in figuur 1 getoon.

Stap 4:

Daarna lees die stelsel die ure en werk die waarde op deur die updateHour -funksie te bel. Hierdie funksie het dus ten doel om elke uur die uurwaarde voor te stel. Die funksiekodeblok word hieronder getoon.

leegte updateHour ()

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

Stap 5:

Beeld
Beeld

Benewens die opdatering van die ure, kan die gebruiker een van die drie knoppies kies om die pasiënt te monitor met 'n temperatuursensor met Arduino. Die stroombaan word in die figuur hierbo getoon.

Stap 6: JLCPCB Datalogger -kontrolemenu

JLCPCB Datalogger -kontrolemenu
JLCPCB Datalogger -kontrolemenu

Eerstens moet die gebruiker die stelselure nagaan en aanpas. Hierdie proses word uitgevoer as die tweede knoppie ingedruk word.

As u op die knoppie druk, moet die volgende skerm verskyn, wat in die figuur hierbo getoon word.

Stap 7:

Beeld
Beeld

Vanaf hierdie skerm kan die gebruiker die uur- en minuutwaardes invoer vanaf die knoppies wat op die digitale penne 2 en 3 van die Arduino gekoppel is. Die knoppies word in die figuur hierbo getoon.

Die kode gedeelte vir die beheer van die ure word hieronder getoon.

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

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

As die ure se knoppie ingedruk word en die meetproses -veranderlike op 0 gestel is, sal die toestand waar wees en die veranderlike van die aanpassingsproses op 1. Die veranderlike van maat_proses word gebruik om aan te dui dat die stelsel temperatuur monitor. As die waarde daarvan 0 is, sal die stelsel die gebruiker toelaat om die spyskaart vir tydinstellings te betree. Nadat die veranderlike aanpassingsproses 'n waarde van 1 ontvang het, sal die stelsel die tydaanpassingstoestand invoer. Hierdie kodeblok word hieronder getoon.

// ------------------------------------------------ ----- Pas ure aan ------------------------------------------- --------------------

// Pas Uur aan as (aanpassingsproses == 1) {lcd.clear (); DS1307.getDate (DataTime); lcd.setCursor (0, 0); lcd.print ("Uur aanpas:"); sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (tye); // Uuraanpassing doen {meet = digitalRead (knoppermaatreël); adjusthour = digitalRead (Buttonadjusthour); ok = digitalRead (Buttonok); as (meet == 0 && meet_staat == 1) {maat_staat = 0; } as (meet == 1 && meet_staat == 0) {DataTime [4] ++; as (DataTime [4]> 23) {DataTime [4] = 0; } meet_staat = 1; sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (tye); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); } as (adjusthour == 0 && adjusthour_state == 1) {adjusthour_state = 0; } if (adjusthour == 1 && adjusthour_state == 0) {DataTime [5] ++; as (DataTime [5]> 59) {DataTime [5] = 0; } sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (tye); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); adjusthour_state = 1; } as (ok == 1) {lcd.clear (); DS1307.getDate (DataTime); sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.print (tye); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O"); aanpas_proses = 0; }} terwyl (ok! = 1); }

In hierdie toestand sal die stelsel die boodskap in Figuur 4 vertoon en dan wag totdat die waardes intern in die while -lus aangepas word.

Hiermee kan u 'n knoppie vir meer as een funksie gebruik en die kompleksiteit van die stelsel verminder.

Op hierdie manier pas die gebruiker die waarde van die ure en minute aan en stoor dan die data in die stelsel as die OK -knoppie ingedruk word.

Soos u kan sien, sal die stelsel die 3 knoppies lees, soos hieronder getoon.

meet = digitalRead (knoppiemaat);

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

Let daarop dat die maatknoppie (knoppermaatreël) sy funksie verander het. Dit sal nou gebruik word om die uurwaardes aan te pas, soos hieronder getoon. Die volgende twee toestande is soortgelyk en word gebruik om die ure en minute aan te pas, soos hierbo getoon.

as (meet == 0 && meet_staat == 1)

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

Elke keer dat een van die twee knoppies gedruk word, word die waarde van posisies 4 en 5 van die DataTime -vektor verander, en tweedens word hierdie waardes in die DS1307 -geheue gestoor.

Na die aanpassings, moet die gebruiker op die Ok -knoppie klik om die proses te voltooi. As hierdie gebeurtenis plaasvind, voer die stelsel die volgende reëls kode uit.

as (ok == 1)

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

Dit sal die bogenoemde toestand invoer en die uurboodskap en die keusemenu aan die gebruiker voorgee.

Laastens moet die gebruiker die pasiëntmoniteringsproses begin deur middel van die temperatuursensor met Arduino JLCPCB Datalogger.

Om dit te kan doen, moet die gebruiker op die metingsknoppie druk wat op die digitale pen 2 gekoppel is.

Dan sal die stelsel die meting met die temperatuursensor vir Arduino lees en dit op die geheue kaart stoor. Die kringgebied word in die figuur hierbo getoon.

Stap 8:

Beeld
Beeld

As die knoppie gedruk word, word die volgende gedeelte van die kode dus uitgevoer.

as (meet == 0 && meet_staat == 1)

{maatstaf = 0; } as (meet == 1 && meet_staat == 0 && maat_verwerking == 0) {maat_verwerking = 1; meet_staat = 1; as (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!"); } anders {Serial.println ("Criou o arquivo!"); myFile = SD.open ("temp.txt", FILE_WRITE); // Cria / Abre arquivo.txt myFile.close (); } vertraging (500); myFile.print ("Uur:"); myFile.println ("temperatuur"); DS1307.getDate (DataTime); actualMin = previousMin = DataTime [5]; sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.clear (); lcd.setCursor (5, 0); lcd.print (tye); lcd.setCursor (0, 1); lcd.print ("Temperatuur:"); lcd.setCursor (14, 1); sensors.versoekTemperature (); float TempSensor = sensors.getTempCByIndex (0); lcd.print (TempSensor); }

In die kode hierbo, sal die stelsel 'n waarde van 1 toewys aan die veranderlike van meet_proses. Dit is verantwoordelik om toe te laat dat die data op die SD -kaart gestoor word.

Daarbenewens sal die stelsel kyk of daar 'n tekslêer met 'n datalogboek bestaan of nie. As daar 'n lêer is, sal die stelsel verwyder en 'n nuwe een skep om die data te stoor.

Daarna skep dit twee kolomme: een vir die ure en een vir die temperatuur in die tekslêer.

Daarna sal die ure en temperatuur op die LCD -skerm vertoon word, soos in figuur hierbo getoon.

Daarna sal die kodevloei die volgende programblok uitvoer.

as (meetproses == 1)

{updateTemp (); byte contMin = 0, contHour = 0; DS1307.getDate (DataTime); actualMin = DataTime [5]; // ------------------------------------------------ --------- Tel minute --------------------------------------- ------------------- if (actualMin! = previousMin) {contMin ++; previousMin = actualMin; } if (contMin == 5) {sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); sensors.versoekTemperature (); float TempSensor = sensors.getTempCByIndex (0); myFile.print (tye); myFile.println (TempSensor); contMin = 0; } // ----------------------------------------------- ------------ Tel ure ------------------------------------ ---------------------- if (actualHour! = previousHour) {contHour ++; vorige uur = werklike uur; } as (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print ("klaar"); lcd.setCursor (5, 1); lcd.print ("Proses"); meetproses = 0; kontuur = 0; } // ---------------------------------------------- toestand om die datalogger te stop -----

Die funksie updateTemp () word eers uitgevoer. Dit is soortgelyk aan die updateHour () -funksie; dit wys egter elke 1 minuut die temperatuur.

Daarna sal die stelsel die tyddata van die Real-Time Clock versamel en die huidige minuutwaarde in die currentMin-veranderlike stoor.

Dan sal dit kontroleer of die min veranderlike verander is volgens die toestand hieronder

as (actualMin! = vorigeMin)

{kontMin ++; previousMin = actualMin; }

As die huidige minuutveranderlike dus verskil van die vorige waarde, beteken dit dat 'n verandering in die waarde plaasgevind het. Op hierdie manier sal die toestand waar wees en die waarde van die minuuttelling verhoog (contMin) en die huidige waarde sal aan die veranderlike previousMin toegewys word om die vorige waarde daarvan te stoor.

As die waarde van hierdie telling dus gelyk is aan 5, beteken dit dat 5 minute verloop het en die stelsel 'n nuwe temperatuurlesing moet uitvoer en die uur- en temperatuurwaarde moet stoor in die SD -kaartloglêer.

as (contMin == 5)

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

Op hierdie manier word hierdie proses herhaal totdat die waarde van 5 uur van die monitering van die pasiënt se temperatuur bereik is met die temperatuursensor met Arduino.

Die kode gedeelte word hieronder getoon en is soortgelyk aan die minuut telling, wat hierbo aangebied is.

// ------------------------------------------------ ----------- Telure ------------------------------------- ---------------------

if (actualHour! = previousHour) {contHour ++; vorige uur = werklike uur; } as (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print ("klaar"); lcd.setCursor (5, 1); lcd.print ("Proses"); meetproses = 0; kontuur = 0; }

Nadat die monitor 5 uur lank gemonitor is, sal die stelsel die loglêer toemaak en die boodskap "Voltooide proses" aan die gebruiker voorgee.

Daarbenewens kan die gebruiker op die Ok/Pause -knoppie druk om die opname van data te stop. As dit gebeur, word die volgende kodeblok uitgevoer.

// ---------------------------------------------- Voorwaarde aan stop die datalogger ----------------------------------------------- ---

as (ok == 1) {myFile.close (); lcd.clear (); lcd.setCursor (6, 0); lcd.print ("gestop"); lcd.setCursor (5, 1); lcd.print ("Proses"); meetproses = 0; vertraging (2000); lcd.clear (); DS1307.getDate (DataTime); sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (tye); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); }

Stap 9:

Beeld
Beeld

Dan sal die stelsel die lêer toemaak en die boodskap "Gestopte proses", soos getoon in figuur 8, aanbied.

Stap 10:

Beeld
Beeld

Daarna sal die stelsel die tydskerm en kieslysopsies afdruk, soos in figuur 9 getoon word.

Stap 11: Toegang tot SD -kaartmodule -data met Arduino

Toegang tot SD -kaartmodule -data met Arduino
Toegang tot SD -kaartmodule -data met Arduino

Na die monitering van die JLCPCB Datalogger met die temperatuursensor met Arduino, is dit nodig om die geheue kaart te verwyder en toegang tot die data op die rekenaar te verkry.

Om die data met 'n beter kwaliteit te sien en te ontleed, moet u alle inligting van die tekslêer uitvoer / kopieer na Excel, waarna u grafieke kan teken en die resultate kan ontleed.

Stap 12: Gevolgtrekking

Met die JLCPCB -datalogger met 'n temperatuursensor met Arduino kan ons, benewens die temperatuurmeting, ook inligting oor die temperatuurgedrag van die pasiënt oor 'n tydperk opneem.

Met hierdie gestoorde data is dit moontlik om te analiseer en te verstaan hoe die temperatuur van die pasiënt wat deur COVID 19 besmet is, optree.

Daarbenewens is dit moontlik om die temperatuurvlak te evalueer en die waarde daarvan te assosieer met die toediening van 'n soort medikasie.

Daarom wil die JLCPCB -datalogger met temperatuursensor vir Arduino deur middel van hierdie data dokters en verpleegsters help om die gedrag van pasiënte te bestudeer.

Ten slotte bedank ons die onderneming JLCPCB vir die ondersteuning van die ontwikkeling van die projek en hoop dat u dit kan gebruik

Alle lêers kan deur enige gebruiker gratis afgelaai en gebruik word.

Aanbeveel: