Innholdsfortegnelse:

Temperatursensor for Arduino Gjelder for COVID 19: 12 trinn (med bilder)
Temperatursensor for Arduino Gjelder for COVID 19: 12 trinn (med bilder)

Video: Temperatursensor for Arduino Gjelder for COVID 19: 12 trinn (med bilder)

Video: Temperatursensor for Arduino Gjelder for COVID 19: 12 trinn (med bilder)
Video: Measuring Temperature with Arduino - 5 Sensors 2024, November
Anonim
Temperatursensor for Arduino Gjelder for COVID 19
Temperatursensor for Arduino Gjelder for COVID 19

Temperatursensoren for Arduino er et grunnleggende element når vi vil måle temperaturen til en prosessor i menneskekroppen.

Temperatursensoren med Arduino må være i kontakt eller i nærheten for å motta og måle varmenivået. Slik fungerer termometre.

Disse enhetene er ekstremt brukte til å måle kroppstemperaturen til syke mennesker, da temperaturen er en av de første faktorene som endres i menneskekroppen når det er en abnormitet eller sykdom.

En av sykdommene som endrer temperaturen i menneskekroppen er COVID 19. Derfor presenterer vi hovedsymptomene:

Hoste tretthet Pustevansker (alvorlige tilfeller) Feber Feber er et symptom hvis hovedkarakteristikk er økning i kroppstemperatur. I denne sykdommen må vi hele tiden overvåke disse symptomene.

Dermed vil vi utvikle et prosjekt for å overvåke temperaturen og lagre disse dataene på et minnekort gjennom en JLCPCB Datalogger ved hjelp av en temperatursensor med Arduino.

Derfor vil du i denne artikkelen lære:

  • Hvordan fungerer en JLCPCB Datalogger med temperatursensor med Arduino?
  • Hvordan fungerer temperatursensoren med Arduino.
  • Hvordan fungerer DS18B20 temperatursensor med Arduino
  • Bruk knapper med flere funksjoner.

Deretter viser vi deg hvordan du vil utvikle din JLCPCB Datalogger ved hjelp av Arduino temperatursensor.

Rekvisita

Arduino UNO

JLCPCB kretskort

DS18B20 Temperatursensor

Arduino Nano R3

Gensere

LCD -skjerm 16 x 2

Trykknappbryter

Motstand 1kR

SD -kortmodul for Arduino

Trinn 1: Konstruksjon av JLCPCB Datalogger med temperatursensor med Arduino

Konstruksjon av JLCPCB Datalogger med temperatursensor med Arduino
Konstruksjon av JLCPCB Datalogger med temperatursensor med Arduino

Som tidligere nevnt består prosjektet av å lage en JLCPCB Datalogger med temperatursensor med Arduino, og gjennom disse dataene kan vi overvåke temperaturen til pasienten som behandles.

Således er kretsen vist i figuren ovenfor.

Derfor, som du kan se, har denne kretsen en DS18B20 temperatursensor med Arduino, som er ansvarlig for å måle pasientens temperaturavlesning.

I tillegg vil Arduino Nano være ansvarlig for å samle inn disse dataene og lagre dem på SD -kortmodulens minnekort.

Hver informasjon blir lagret med sin respektive tid, som vil bli lest fra RTC -modulen DS1307.

For at dataene til temperatursensoren med Arduino skal lagres, må brukeren utføre prosessen gjennom kontrollmenyen med 16x2 LCD.

Steg 2:

Bilde
Bilde

Hver knapp er ansvarlig for å kontrollere et alternativ, som vist på LCD -skjermen 16x2 i figur 2.

Hvert alternativ er ansvarlig for å utføre en funksjon i systemet, som vist nedenfor.

  • Alternativ M er ansvarlig for å starte måling og registrering av data på minnekortet.
  • Alternativ H er ansvarlig for å justere systemtidene.
  • Alternativ O/P brukes til å bekrefte datainføring i systemet eller for å sette skriving av data til minnekortet på pause.

For å forstå systemkontrollprosessen, vil vi gi koden nedenfor og diskutere trinn-for-trinn-kontrollsystemet til JLCPCB Datalogger med temperatursensor med Arduino.

#include // Bibliotek med alle funksjonene til DS18B20 -sensoren

#include #include // Biblioteca I2C til 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 for 0x27 #define ONE_WIRE_BUS 8 // Digital Pin for tilkobling av DS18B20 -sensoren // Define uma instancia do oneWire for comunicacao com o sensor OneWire oneWire (ONE_WIRE_BUS); DallasTemperatursensorer (& oneWire); DeviceAddress -sensor1; Fil 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 måle_prosess = 0, juster_prosess = 0; byte actualMin = 0, previousMin = 0; byte actualHour = 0, previousHour = 0; byte minUpdate = 0; int pinoSS = 10; // Pin 53 for Mega / Pin 10 for UNO int DataTime [7]; ugid 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 (ganger); minUpdate = DataTime [5]; }} ugyldig updateTemp () {DS1307.getDate (DataTime); if (DataTime [5]! = minUpdate) {sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); lcd.clear (); lcd.setCursor (5, 0); lcd.print (ganger); lcd.setCursor (0, 1); lcd.print ("Temperatur:"); lcd.setCursor (14, 1); sensors.requestTemperatures (); float TempSensor = sensorer.getTempCByIndex (0); lcd.print (TempSensor); minUpdate = DataTime [5]; }} ugyldig oppsett () {Serial.begin (9600); DS1307.begin (); sensorer.begynner (); pinMode (pinoSS, OUTPUT); // Declara pinoSS como saída Wire.begin (); // Inicializacao da Comunicacao I2C lcd.init (); // Inicializacao do LCD lcd.backlight (); lcd.setCursor (3, 0); lcd.print ("Temp System"); lcd.setCursor (3, 1); lcd.print ("Datalogger"); forsinkelse (2000); // Localiza e mostra enderecos dos sensores Serial.println ("Localizando sensores DS18B20…"); Serial.print ("Sensorlokalisering vellykket!"); Serial.print (sensors.getDeviceCount (), DEC); Serial.println ("Sensor"); if (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."); komme tilbake; } DS1307.getDate (DataTime); lcd.clear (); sprintf (ganger, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (ganger); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); } void loop () {updateHour (); // Leseknapptilstander måler = digitalRead (Knappemål); adjusthour = digitalRead (Buttonadjusthour); ok = digitalRead (Buttonok); hvis (måle == 0 && måle_stat == 1) {måle_stat = 0; } hvis (måle == 1 && måle_stat == 0 && måle_prosess == 0) {måle_prosess = 1; måle_stat = 1; hvis (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!"); } annet {Serial.println ("Criou o arquivo!"); myFile = SD.open ("temp.txt", FILE_WRITE); // Cria / Abre arquivo.txt myFile.close (); } forsinkelse (500); myFile.print ("Time:"); myFile.println ("Temperatur"); DS1307.getDate (DataTime); actualMin = previousMin = DataTime [5]; sprintf (ganger, "%02d:%02d", DataTime [4], DataTime [5]); lcd.clear (); lcd.setCursor (5, 0); lcd.print (ganger); lcd.setCursor (0, 1); lcd.print ("Temperatur:"); lcd.setCursor (14, 1); sensors.requestTemperatures (); float TempSensor = sensorer.getTempCByIndex (0); lcd.print (TempSensor); } if (adjusthour == 0 && adjusthour_state == 1) {adjusthour_state = 0; } if (adjusthour == 1 && adjusthour_state == 0 && measure_process == 0) {adjust_process = 1; } // ----------------------------------------------- --- Måleprosess --------------------------------------------- -------------- if (measure_process == 1) {updateTemp (); byte contMin = 0, contHour = 0; DS1307.getDate (DataTime); actualMin = DataTime [5]; // ------------------------------------------------ --------- Antall minutter --------------------------------------- ------------------- if (actualMin! = previousMin) {contMin ++; previousMin = actualMin; } if (contMin == 5) {sprintf (ganger, "%02d:%02d", DataTime [4], DataTime [5]); sensors.requestTemperatures (); float TempSensor = sensorer.getTempCByIndex (0); myFile.print (ganger); myFile.println (TempSensor); contMin = 0; } // ----------------------------------------------- ------------ Tell timer ------------------------------------ ---------------------- if (actualHour! = previousHour) {contHour ++; previousHour = actualHour; } if (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print ("Ferdig"); lcd.setCursor (5, 1); lcd.print ("Prosess"); måleprosess = 0; contHour = 0; } //----------------------------------------------Tilstand for å stoppe dataloggeren ---------------------------------------------- ---- hvis (ok == 1) {myFile.close (); lcd.clear (); lcd.setCursor (6, 0); lcd.print ("Stoppet"); lcd.setCursor (5, 1); lcd.print ("Prosess"); måleprosess = 0; forsinkelse (2000); lcd.clear (); DS1307.getDate (DataTime); sprintf (ganger, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (ganger); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); }} // ---------------------------------------------- ------- Juster timer ----------------------------------------- ---------------------- // Juster time hvis (adjust_process == 1) {lcd.clear (); DS1307.getDate (DataTime); lcd.setCursor (0, 0); lcd.print ("Juster time:"); sprintf (ganger, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (ganger); // Tidsjustering gjør {measure = digitalRead (Knappemål); adjusthour = digitalRead (Buttonadjusthour); ok = digitalRead (Buttonok); hvis (måle == 0 && måle_stat == 1) {måle_stat = 0; } if (måle == 1 && måle_stat == 0) {DataTime [4] ++; hvis (DataTime [4]> 23) {DataTime [4] = 0; } måle_stat = 1; sprintf (ganger, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (ganger); 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] ++; hvis (DataTime [5]> 59) {DataTime [5] = 0; } sprintf (ganger, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (ganger); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); adjusthour_state = 1; } hvis (ok == 1) {lcd.clear (); DS1307.getDate (DataTime); sprintf (ganger, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.print (ganger); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O"); juster_prosess = 0; }} mens (ok! = 1); } // ----------------------------------------------- ------- Sluttjusteringstid ---------------------------------------- -------------------}

Først definerer vi alle bibliotekene for å kontrollere modulene og deklarere variabler som brukes ved programmering av JLCPCB Datalogger med en temperatursensor for Arduino. Kodeblokken er vist nedenfor.

Trinn 3:

#include // Bibliotek med alle funksjonene til DS18B20 -sensoren

#include #include // Biblioteca I2C til 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 for comunicacao com o sensor OneWire oneWire (ONE_WIRE_BUS); DallasTemperatursensorer (& oneWire); DeviceAddress -sensor1; Fil 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 måle_prosess = 0, juster_prosess = 0; byte actualMin = 0, previousMin = 0; byte actualHour = 0, previousHour = 0; byte minUpdate = 0; int pinoSS = 10; // Pin 53 for Mega / Pin 10 for UNO int DataTime [7];

Heretter har vi funksjonen for oppsett av tomrom. Denne funksjonen brukes til å konfigurere pinnene og initialisering av enheten, som vist nedenfor.

ugyldig oppsett ()

{Serial.begin (9600); DS1307.begin (); sensorer.begynner (); pinMode (pinoSS, OUTPUT); // Declara pinoSS como saída Wire.begin (); // Inicializacao da Comunicacao I2C lcd.init (); // Inicializacao do LCD lcd.backlight (); lcd.setCursor (3, 0); lcd.print ("Temp System"); lcd.setCursor (3, 1); lcd.print ("Datalogger"); forsinkelse (2000); // Localiza e mostra enderecos dos sensores Serial.println ("Localizando sensores DS18B20…"); Serial.print ("Sensorlokalisering vellykket!"); Serial.print (sensors.getDeviceCount (), DEC); Serial.println ("Sensor"); if (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."); komme tilbake; } DS1307.getDate (DataTime); lcd.clear (); sprintf (ganger, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (ganger); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); }

Først ble seriekommunikasjonen, sanntidsklokken og temperatursensoren for Arduino DS18B20 startet. Etter initialisering og testing av enhetene ble meldingen med menyalternativene skrevet ut på 16x2 LCD-skjermen. Denne skjermen er vist i figur 1.

Trinn 4:

Etter det leser systemet timene og oppdaterer verdien ved å ringe til updateHour -funksjonen. Dermed har denne funksjonen formålet med å presentere timeverdien hvert minutt. Funksjonskodeblokken vises nedenfor.

ugid 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 (ganger); minUpdate = DataTime [5]; }}

Trinn 5:

Bilde
Bilde

I tillegg til å oppdatere timene, kan brukeren velge en av de tre knappene for å overvåke pasienten med en temperatursensor med Arduino. Kretsen er vist i figuren ovenfor.

Trinn 6: JLCPCB Datalogger -kontrollmeny

JLCPCB Datalogger -kontrollmeny
JLCPCB Datalogger -kontrollmeny

Først må brukeren sjekke og justere systemtidene. Denne prosessen utføres når du trykker på den andre knappen.

Når du trykker på knappen, skal følgende skjermbilde vises, som er vist i figuren ovenfor.

Trinn 7:

Bilde
Bilde

Fra denne skjermen vil brukeren kunne angi time- og minuttverdier fra knappene som er koblet til digitale pins 2 og 3 på Arduino. Knappene er vist i figuren ovenfor.

Kodedelen for å kontrollere timene er vist nedenfor.

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

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

Når du trykker på timeknappen og måleprosessvariabelen er satt til 0, vil tilstanden være sann og variabelen justeringsprosess settes til 1. Variabelen måleprosess brukes til å signalisere at systemet overvåker temperaturen. Når verdien er 0, lar systemet brukeren gå inn i tidsinnstillingsmenyen. Derfor, etter at justeringsprosessvariabelen mottar verdien 1, vil systemet angi tidsjusteringsbetingelsen. Denne kodeblokken er vist nedenfor.

// ------------------------------------------------ ----- Juster timer ------------------------------------------- --------------------

// Juster time hvis (juster_prosess == 1) {lcd.clear (); DS1307.getDate (DataTime); lcd.setCursor (0, 0); lcd.print ("Juster time:"); sprintf (ganger, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (ganger); // Tidsjustering gjør {measure = digitalRead (Knappemål); adjusthour = digitalRead (Buttonadjusthour); ok = digitalRead (Buttonok); hvis (måle == 0 && måle_stat == 1) {måle_stat = 0; } hvis (måle == 1 && måle_stat == 0) {DataTime [4] ++; hvis (DataTime [4]> 23) {DataTime [4] = 0; } måle_stat = 1; sprintf (ganger, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (ganger); 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] ++; hvis (DataTime [5]> 59) {DataTime [5] = 0; } sprintf (ganger, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (ganger); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); adjusthour_state = 1; } hvis (ok == 1) {lcd.clear (); DS1307.getDate (DataTime); sprintf (ganger, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.print (ganger); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O"); juster_prosess = 0; }} mens (ok! = 1); }

I denne tilstanden vil systemet vise meldingen vist i figur 4 og deretter vente på at verdiene justeres internt i mens -sløyfen. Når du justerer timene, har disse knappene sine funksjoner endret, det vil si at de er multifunksjonelle.

Dette lar deg bruke en knapp for mer enn én funksjon og redusere kompleksiteten i systemet.

På denne måten vil brukeren justere verdien av timer og minutter og deretter lagre dataene i systemet når du trykker på OK -knappen.

Som du kan se, vil systemet lese de 3 knappene, som vist nedenfor.

measure = digitalRead (Knappemål);

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

Vær oppmerksom på at måleknappen (knappemål) har endret funksjonen. Den vil nå bli brukt til å justere timeverdiene, som vist nedenfor. De følgende to forholdene er like og brukes til å justere timer og minutter, som vist ovenfor.

hvis (måle == 0 && måle_stat == 1)

{måle_stat = 0; } hvis (måle == 1 && måle_stat == 0) {DataTime [4] ++; hvis (DataTime [4]> 23) {DataTime [4] = 0; } måle_stat = 1; sprintf (ganger, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (ganger); 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] ++; hvis (DataTime [5]> 59) {DataTime [5] = 0; } sprintf (ganger, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (ganger); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); adjusthour_state = 1; }

Hver gang en av de to knappene trykkes, vil derfor verdien av posisjonene 4 og 5 i DataTime -vektoren bli endret, og for det andre vil disse verdiene bli lagret i DS1307 -minnet.

Etter justeringene må brukeren klikke på OK -knappen for å fullføre prosessen. Når denne hendelsen skjer, vil systemet utføre følgende kodelinjer.

hvis (ok == 1)

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

Den angir tilstanden ovenfor og presenterer timemeldingen og alternativmenyen for brukeren.

Til slutt må brukeren starte pasientovervåkningsprosessen gjennom temperatursensoren med Arduino JLCPCB Datalogger.

For å gjøre dette må brukeren trykke på måleknappen, som er koblet til digital pin 2.

Deretter vil systemet utføre avlesningen med temperatursensoren for Arduino og lagre den på minnekortet. Kretsområdet er vist i figuren ovenfor.

Trinn 8:

Bilde
Bilde

Derfor, når knappen trykkes, vil følgende del av koden bli utført.

hvis (måle == 0 && måle_stat == 1)

{måle_stat = 0; } hvis (måle == 1 && måle_stat == 0 && måle_prosess == 0) {måle_prosess = 1; måle_stat = 1; hvis (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!"); } annet {Serial.println ("Criou o arquivo!"); myFile = SD.open ("temp.txt", FILE_WRITE); // Cria / Abre arquivo.txt myFile.close (); } forsinkelse (500); myFile.print ("Time:"); myFile.println ("Temperatur"); DS1307.getDate (DataTime); actualMin = previousMin = DataTime [5]; sprintf (ganger, "%02d:%02d", DataTime [4], DataTime [5]); lcd.clear (); lcd.setCursor (5, 0); lcd.print (ganger); lcd.setCursor (0, 1); lcd.print ("Temperatur:"); lcd.setCursor (14, 1); sensors.requestTemperatures (); float TempSensor = sensorer.getTempCByIndex (0); lcd.print (TempSensor); }

I kodedelen ovenfor vil systemet tilordne verdien 1 til variabelen måleprosess. Det er ansvarlig for at dataene kan lagres på SD -kortet.

I tillegg vil systemet kontrollere om det finnes en tekstfil med en datalogg. Hvis det er en fil, vil systemet slette og opprette en ny for å lagre dataene.

Etter det vil det opprette to kolonner: en for timene og en for temperaturen inne i tekstfilen.

Etter det vil det vise timer og temperatur på LCD -skjermen, som vist i figuren ovenfor.

Etter det vil kodeflyten utføre følgende programblokk.

hvis (måleprosess == 1)

{updateTemp (); byte contMin = 0, contHour = 0; DS1307.getDate (DataTime); actualMin = DataTime [5]; // ------------------------------------------------ --------- Antall minutter --------------------------------------- ------------------- if (actualMin! = previousMin) {contMin ++; previousMin = actualMin; } if (contMin == 5) {sprintf (ganger, "%02d:%02d", DataTime [4], DataTime [5]); sensors.requestTemperatures (); float TempSensor = sensorer.getTempCByIndex (0); myFile.print (ganger); myFile.println (TempSensor); contMin = 0; } // ----------------------------------------------- ------------ Tell timer ------------------------------------ ---------------------- if (actualHour! = previousHour) {contHour ++; previousHour = actualHour; } if (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print ("Ferdig"); lcd.setCursor (5, 1); lcd.print ("Prosess"); måleprosess = 0; contHour = 0; } //----------------------------------------------Tilstand å stoppe dataloggeren -----

Først vil updateTemp () -funksjonen bli utført. Den ligner funksjonen updateHour (); den viser imidlertid temperaturen hvert 1. minutt.

Etter det vil systemet samle tidsdataene fra sanntidsklokken og lagre gjeldende minuttverdi i currentMin-variabelen.

Deretter vil den sjekke om min -variabelen er endret, i henhold til tilstanden nedenfor

hvis (actualMin! = previousMin)

{contMin ++; previousMin = actualMin; }

Derfor, hvis den nåværende minuttvariabelen er forskjellig fra den forrige verdien, betyr det at det har skjedd en endring i verdien. På denne måten vil tilstanden være sann og verdien av minuttallet økes (contMin) og gjeldende verdi vil bli tilordnet variabelen previousMin, for å lagre den forrige verdien.

Derfor, når verdien av denne tellingen er lik 5, betyr det at det har gått 5 minutter, og systemet må utføre en ny temperaturavlesning og lagre time- og temperaturverdien i SD -kortloggfilen.

hvis (contMin == 5)

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

På denne måten vil denne prosessen gjentas inntil verdien på 5 timer overvåkes pasientens temperatur med temperatursensoren med Arduino.

Kodedelen er vist nedenfor og ligner minutttellingen, som ble presentert ovenfor.

// ------------------------------------------------ ----------- Tell timer ------------------------------------- ---------------------

if (actualHour! = previousHour) {contHour ++; previousHour = actualHour; } if (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print ("Ferdig"); lcd.setCursor (5, 1); lcd.print ("Prosess"); måleprosess = 0; contHour = 0; }

Etter å ha nådd 5 timers overvåking, vil systemet lukke loggfilen og presentere meldingen "Ferdig prosess" for brukeren.

I tillegg kan brukeren trykke på OK/Pause -knappen for å stoppe registrering av data. Når dette skjer, blir følgende kodeblokk utført.

// ---------------------------------------------- Tilstand til stopp dataloggeren ----------------------------------------------- ---

hvis (ok == 1) {myFile.close (); lcd.clear (); lcd.setCursor (6, 0); lcd.print ("Stoppet"); lcd.setCursor (5, 1); lcd.print ("Prosess"); måleprosess = 0; forsinkelse (2000); lcd.clear (); DS1307.getDate (DataTime); sprintf (ganger, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (ganger); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); }

Trinn 9:

Bilde
Bilde

Deretter vil systemet lukke filen og presentere meldingen "Stoppet prosess", som vist i figur 8.

Trinn 10:

Bilde
Bilde

Etter det vil systemet skrive ut tidsskjermen og menyalternativene, som vist i figur 9.

Trinn 11: Få tilgang til SD -kortmoduldata med Arduino

Få tilgang til SD -kortmoduldata med Arduino
Få tilgang til SD -kortmoduldata med Arduino

Etter prosessen med å overvåke JLCPCB Datalogger med temperatursensoren med Arduino, er det nødvendig å fjerne minnekortet og få tilgang til dataene på datamaskinen.

For å se og analysere dataene med bedre kvalitet, eksporterer / kopierer du all informasjon om tekstfilen til Excel. Etter det kan du plotte grafer og analysere resultatene som er oppnådd.

Trinn 12: Konklusjon

JLCPCB Datalogger med temperatursensor med Arduino lar oss, i tillegg til å måle temperaturen, registrere informasjon om pasientens temperaturatferd over en periode.

Med disse lagrede dataene er det mulig å analysere og forstå hvordan temperaturen til pasienten smittet av COVID 19 oppfører seg.

I tillegg er det mulig å evaluere temperaturnivået og knytte verdien til bruk av noen form for medisinering.

Derfor, gjennom disse dataene, har JLCPCB Datalogger med temperatursensor for Arduino som mål å hjelpe leger og sykepleiere i studiet av pasienters oppførsel.

Til slutt takker vi selskapet JLCPCB for å støtte utviklingen av prosjektet og håper at du kan bruke det

Alle filer kan lastes ned og brukes fritt av enhver bruker.

Anbefalt: