Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Konstruksjon av JLCPCB Datalogger med temperatursensor med Arduino
- Steg 2:
- Trinn 3:
- Trinn 4:
- Trinn 5:
- Trinn 6: JLCPCB Datalogger -kontrollmeny
- Trinn 7:
- Trinn 8:
- Trinn 9:
- Trinn 10:
- Trinn 11: Få tilgang til SD -kortmoduldata med Arduino
- Trinn 12: Konklusjon
Video: Temperatursensor for Arduino Gjelder for COVID 19: 12 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
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
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:
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:
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
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:
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:
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:
Deretter vil systemet lukke filen og presentere meldingen "Stoppet prosess", som vist i figur 8.
Trinn 10:
Etter det vil systemet skrive ut tidsskjermen og menyalternativene, som vist i figur 9.
Trinn 11: 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:
IoT temperatursensor med ESP8266: 6 trinn (med bilder)
IoT Temperatursensor Med ESP8266: Jeg ble inspirert til å lage en temperatursensor som jeg kan overvåke over wifi. Dette prosjektet er ikke nytt, men jeg liker ideen om å ha et mellomlag for sikkerhet og ikke å måtte åpne porten i ruteren til IoT -enheten din. Grunnideen vil allo
Arduino -basert digital temperatursensor: 5 trinn (med bilder)
Arduino -basert digital temperatursensor: Temperatursensorer er en virkelig vanlig ting i disse dager, men de fleste av dem er ekstremt kompliserte å lage eller ekstremt dyre å kjøpe for. Dette prosjektet gir deg en Arduino -basert digital temperatursensor som ikke bare er billig og veldig enkel til m
SENSOR SUHU DENGAN LCD DAN LED (lager temperatursensor med LCD og LED): 6 trinn (med bilder)
SENSOR SUHU DENGAN LCD DAN LED (Making Temperature Sensor With LCD and LED): hai, saya Devi Rivaldi mahasiswa UNIVERSITAS NUSA PUTRA dari Indonesia, di sini saya akan berbagi cara membuat sensor suhu menggunakan Arduino den Output ke LCD dan LED. Ini adalah pembaca suhu dengan desain saya sendiri, dengan sensor ini anda
Automatiser en vifte ved hjelp av MESH -temperatursensor: 4 trinn (med bilder)
Automatiser en vifte ved hjelp av MESH temperatursensor: Er du lei av å slå på viften " På " og "Av"? Hva om viften din var automatisert og tilpassbar basert på dine favoritt temperaturinnstillinger? Vi har bygget en automatisk vifte ved hjelp av MESH Temperature & Fuktighet, Wemo og
Temperatursensor / værstasjon: 9 trinn (med bilder)
Temperatursensor / værstasjon: Lag en værstasjon eller temperaturmonitor ved hjelp av den veldig kule digitale temperatursensoren DS1820.Jeg bruker dette oppsettet til å overvåke et serverrom, og som en værstasjon.Dette prosjektet består av: Et Dallas 1-tråds bussnettverk Grensesnitt mellom RS- 232 og