Obsah:

Snímač teploty pre Arduino aplikovaný na COVID 19: 12 krokov (s obrázkami)
Snímač teploty pre Arduino aplikovaný na COVID 19: 12 krokov (s obrázkami)

Video: Snímač teploty pre Arduino aplikovaný na COVID 19: 12 krokov (s obrázkami)

Video: Snímač teploty pre Arduino aplikovaný na COVID 19: 12 krokov (s obrázkami)
Video: ELF/EMBARC Bronchiectasis conference 2023 with subtitles 2024, November
Anonim
Snímač teploty pre Arduino aplikovaný na COVID 19
Snímač teploty pre Arduino aplikovaný na COVID 19

Snímač teploty pre Arduino je základným prvkom, keď chceme merať teplotu procesora v ľudskom tele.

Teplotný snímač s Arduino musí byť v kontakte alebo v blízkosti, aby mohol prijímať a merať úroveň tepla. Tak fungujú teplomery.

Tieto zariadenia sa mimoriadne používajú na meranie telesnej teploty chorých ľudí, pretože teplota je jedným z prvých faktorov, ktoré sa v ľudskom tele menia, keď dochádza k abnormalitám alebo chorobám.

Jednou z chorôb, ktoré menia teplotu v ľudskom tele, je COVID 19. Preto uvádzame hlavné príznaky:

Kašeľ Únava Ťažké dýchanie (Závažné prípady) Horúčka Horúčka je symptóm, ktorého hlavnou charakteristikou je zvýšenie telesnej teploty. Pri tejto chorobe musíme tieto príznaky neustále sledovať.

Preto vyvinieme projekt na monitorovanie teploty a uloženie týchto údajov na pamäťovú kartu prostredníctvom JLCPCB Datalogger pomocou teplotného senzora s Arduino.

V tomto článku sa preto dozviete:

  • Ako funguje datalogger JLCPCB so snímačom teploty s Arduino?
  • Ako funguje snímač teploty s Arduino.
  • Ako funguje snímač teploty DS18B20 s Arduino
  • Používajte tlačidlá s viacerými funkciami.

Ďalej vám ukážeme, ako budete vyvíjať svoj datalogger JLCPCB pomocou teplotného senzora Arduino.

Zásoby

Arduino UNO

Doska s plošnými spojmi JLCPCB

Snímač teploty DS18B20

Arduino Nano R3

Svetre

LCD displej 16 x 2

Tlačidlový spínač

Rezistor 1kR

Modul karty SD pre Arduino

Krok 1: Konštrukcia záznamníka JLCPCB so snímačom teploty s Arduino

Konštrukcia záznamníka údajov JLCPCB so snímačom teploty s Arduino
Konštrukcia záznamníka údajov JLCPCB so snímačom teploty s Arduino

Ako už bolo spomenuté, projekt pozostáva z vytvorenia záznamníka údajov JLCPCB so snímačom teploty s Arduino a prostredníctvom týchto údajov môžeme monitorovať teplotu liečeného pacienta.

Obvod je teda znázornený na obrázku vyššie.

Preto, ako vidíte, tento obvod má teplotný senzor DS18B20 s Arduino, ktorý je zodpovedný za meranie teploty pacienta.

Arduino Nano bude navyše zodpovedný za zber týchto údajov a ich ukladanie na pamäťovú kartu modulu SD Card.

Každá informácia bude uložená s príslušným časom, ktorý bude načítaný z modulu RTC DS1307.

Aby boli údaje teplotného senzora s Arduino uložené, používateľ musí tento proces vykonať pomocou ponuky Control Menu s displejom 16x2 LCD.

Krok 2:

Obrázok
Obrázok

Každé tlačidlo je zodpovedné za ovládanie možnosti, ako je znázornené na obrazovke LCD 16x2 na obrázku 2.

Každá možnosť je zodpovedná za výkon funkcie v systéme, ako je uvedené nižšie.

  • Možnosť M je zodpovedná za spustenie merania a zaznamenávania údajov na pamäťovú kartu.
  • Možnosť H je zodpovedná za úpravu systémových hodín.
  • Možnosť O/P sa používa na potvrdenie zadania údajov do systému alebo na pozastavenie zápisu údajov na pamäťovú kartu.

Aby sme pochopili proces riadenia systému, poskytneme nižšie uvedený kód a prediskutujeme podrobný riadiaci systém záznamníka údajov JLCPCB so snímačom teploty s Arduino.

#include // Knižnica so všetkými funkciami senzora DS18B20

#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); // Konfigurácia koncových zariadení do LCD 16x2 para 0x27 #define ONE_WIRE_BUS 8 // Digitálny pin na pripojenie snímača DS18B20 // Definujte viac ako jeden kábel pre jeden snímač pre kábel OneWire oneWire (ONE_WIRE_BUS); Senzory teploty Dallas (& oneWire); Senzor adresy zariadenia1; Súbor myFile; #define Buttonmeasure 2 #define Buttonadjusthour 3 #define Buttonok 4 bool opatrenia = 0, adjusthour = 0, ok = 0; bool measure_state = 0, adjusthour_state = 0, ok_state = 0; bool measure_process = 0, adjust_process = 0; byte actualMin = 0, previousMin = 0; byte actualHour = 0, previousHour = 0; byte minUpdate = 0; int pinoSS = 10; // Pin 53 para Mega / Pin 10 para UNO int DataTime [7]; void 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 (časy); minUpdate = DataTime [5]; }} void updateTemp () {DS1307.getDate (DataTime); if (DataTime [5]! = minUpdate) {sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); lcd.clear (); lcd.setCursor (5, 0); lcd.print (časy); lcd.setCursor (0, 1); lcd.print ("Teplota:"); lcd.setCursor (14, 1); senzory.requestTeploty (); float TempSensor = sensor.getTempCByIndex (0); lcd.print (TempSensor); minUpdate = DataTime [5]; }} neplatné nastavenie () {Serial.begin (9600); DS1307.begin (); senzory.begin (); pinMode (pinoSS, VÝSTUP); // Declara pinoSS como saída Wire.begin (); // Inicializacao da Comunicacao I2C lcd.init (); // Inicializacao do LCD lcd.backlight (); lcd.setCursor (3, 0); lcd.print („dočasný systém“); lcd.setCursor (3, 1); lcd.print ("Datalogger"); oneskorenie (2000); // Lokalizácia a väčšina snímačov adries Serial.println ("Lokalizačné senzory DS18B20 …"); Serial.print („Lokalizácia senzora bola úspešná!“); Serial.print (sensor.getDeviceCount (), DEC); Serial.println ("senzor"); if (SD.begin ()) {// Inicializa o SD Card Serial.println ("SD karta pronto para uso."); // Imprime na tela} else {Serial.println ("Falcon na inicialização do SD Card."); návrat; } DS1307.getDate (DataTime); lcd.clear (); sprintf (časy, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (časy); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); } void loop () {updateHour (); // Čítanie stavov tlačidiel opatrenia = digitalRead (Buttonmeasure); adjusthour = digitalRead (Buttonadjusthour); ok = digitalRead (Buttonok); if (opatrenia == 0 && opatrenia_stavu == 1) {opatrenia_stavu = 0; } if (opatrenia == 1 && opatrenia_stavu == 0 && opatrenia_proces == 0) {opatrenia_proces = 1; scale_state = 1; if (SD.exists ("temp.txt")) {Serial.println ("Apagou o arquivo anterior!"); SD.remove ("temp.txt"); myFile = SD.open ("temp.txt", FILE_WRITE); // Cria / Abre arquivo.txt Serial.println ("Criou o arquivo!"); } else {Serial.println ("Criou o arquivo!"); myFile = SD.open ("temp.txt", FILE_WRITE); // Cria / Abre arquivo.txt myFile.close (); } oneskorenie (500); myFile.print ("Hodina:"); myFile.println ("teplota"); DS1307.getDate (DataTime); actualMin = previousMin = DataTime [5]; sprintf (časy, "%02d:%02d", DataTime [4], DataTime [5]); lcd.clear (); lcd.setCursor (5, 0); lcd.print (časy); lcd.setCursor (0, 1); lcd.print ("Teplota:"); lcd.setCursor (14, 1); senzory.requestTeploty (); float TempSensor = sensor.getTempCByIndex (0); lcd.print (TempSensor); } if (adjusthour == 0 && adjusthour_state == 1) {adjusthour_state = 0; } if (adjusthour == 1 && adjusthour_state == 0 && opatření_proces == 0) {adjust_process = 1; } // ----------------------------------------------- --- Proces merania --------------------------------------------- -------------- if (proces_merania == 1) {updateTemp (); bajt contMin = 0, contHour = 0; DS1307.getDate (DataTime); actualMin = DataTime [5]; // ------------------------------------------------ --------- Počet minút --------------------------------------- ------------------- if (actualMin! = previousMin) {contMin ++; previousMin = actualMin; } if (contMin == 5) {sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); senzory.requestTeploty (); float TempSensor = sensor.getTempCByIndex (0); myFile.print (časy); myFile.println (TempSensor); contMin = 0; } // ----------------------------------------------- ------------ Počet hodín ------------------------------------ ---------------------- if (actualHour! = previousHour) {contHour ++; previousHour = actualHour; } if (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print („Dokončené“); lcd.setCursor (5, 1); lcd.print („proces“); Measure_process = 0; contHour = 0; } // ---------------------------------------------- Podmienka zastaviť záznamník údajov ---------------------------------------------- ---- if (ok == 1) {myFile.close (); lcd.clear (); lcd.setCursor (6, 0); lcd.print („Zastavené“); lcd.setCursor (5, 1); lcd.print („proces“); Measure_process = 0; oneskorenie (2000); lcd.clear (); DS1307.getDate (DataTime); sprintf (časy, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (časy); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); }} // ---------------------------------------------- ------- Upraviť hodiny ----------------------------------------- ---------------------- // Upravte hodinu, ak (adjust_process == 1) {lcd.clear (); DS1307.getDate (DataTime); lcd.setCursor (0, 0); lcd.print ("Upraviť hodinu:"); sprintf (časy, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (časy); // Hodinová úprava do {Measure = digitalRead (Buttonmeasure); adjusthour = digitalRead (Buttonadjusthour); ok = digitalRead (Buttonok); ak (mierka == 0 && measure_state == 1) {measure_state = 0; } if (opatrenia == 1 && Meas_state == 0) {DataTime [4] ++; if (DataTime [4]> 23) {DataTime [4] = 0; } mieru_státu = 1; sprintf (časy, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (časy); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); } if (adjusthour == 0 && adjusthour_state == 1) {adjusthour_state = 0; } if (adjusthour == 1 && adjusthour_state == 0) {DataTime [5] ++; if (DataTime [5]> 59) {DataTime [5] = 0; } sprintf (časy, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (časy); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); adjusthour_state = 1; } if (ok == 1) {lcd.clear (); DS1307.getDate (DataTime); sprintf (časy, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.print (časy); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O"); adjust_process = 0; }} while (ok! = 1); } // ----------------------------------------------- ------- Koniec hodiny úpravy ---------------------------------------- -------------------}

Najprv definujeme všetky knižnice na ovládanie modulov a deklarovanie premenných použitých pri programovaní JLCPCB Datalogger so snímačom teploty pre Arduino. Blok kódu je zobrazený nižšie.

Krok 3:

#include // Knižnica so všetkými funkciami senzora DS18B20

#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); // Konfigurácia koncových zariadení do LCD 16x2 para 0x27 #define ONE_WIRE_BUS 8 // Digitálny pin na pripojenie snímača DS18B20 // Definujte viac ako jeden kábel pre jeden snímač pre kábel OneWire oneWire (ONE_WIRE_BUS); Senzory teploty Dallas (& oneWire); Senzor adresy zariadenia1; Súbor myFile; #define Buttonmeasure 2 #define Buttonadjusthour 3 #define Buttonok 4 bool opatrenia = 0, adjusthour = 0, ok = 0; bool measure_state = 0, adjusthour_state = 0, ok_state = 0; bool measure_process = 0, adjust_process = 0; byte actualMin = 0, previousMin = 0; byte actualHour = 0, previousHour = 0; byte minUpdate = 0; int pinoSS = 10; // Pin 53 para Mega / Pin 10 para UNO int DataTime [7];

Ďalej máme funkciu nastavenia prázdnoty. Táto funkcia sa používa na konfiguráciu pinov a inicializáciu zariadenia, ako je uvedené nižšie.

neplatné nastavenie ()

{Serial.begin (9600); DS1307.begin (); senzory.begin (); pinMode (pinoSS, VÝSTUP); // Declara pinoSS como saída Wire.begin (); // Inicializacao da Comunicacao I2C lcd.init (); // Inicializacao do LCD lcd.backlight (); lcd.setCursor (3, 0); lcd.print („dočasný systém“); lcd.setCursor (3, 1); lcd.print ("Datalogger"); oneskorenie (2000); // Lokalizácia a väčšina snímačov adries Serial.println ("Lokalizačné senzory DS18B20 …"); Serial.print („Lokalizácia senzora úspešne!“); Serial.print (sensor.getDeviceCount (), DEC); Serial.println ("senzor"); if (SD.begin ()) {// Inicializa o SD Card Serial.println ("SD karta pronto para uso."); // Imprime na tela} else {Serial.println ("Falcon na inicialização do SD Card."); návrat; } DS1307.getDate (DataTime); lcd.clear (); sprintf (časy, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (časy); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); }

Najprv bola spustená sériová komunikácia, hodiny v reálnom čase a snímač teploty pre Arduino DS18B20. Po inicializácii a testovaní zariadení bola správa s možnosťami ponuky vytlačená na LCD displeji 16x2. Táto obrazovka je zobrazená na obrázku 1.

Krok 4:

Potom systém načíta hodiny a hodnotu aktualizuje zavolaním funkcie updateHour. Cieľom tejto funkcie je teda uvádzať hodinovú hodnotu každú minútu. Blok funkčného kódu je zobrazený nižšie.

void 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 (časy); minUpdate = DataTime [5]; }}

Krok 5:

Obrázok
Obrázok

Okrem aktualizácie hodín si používateľ môže vybrať jedno z troch tlačidiel na monitorovanie pacienta pomocou teplotného senzora s Arduino. Obvod je znázornený na obrázku vyššie.

Krok 6: Ponuka ovládania záznamníka JLCPCB

Ponuka ovládania záznamníka JLCPCB
Ponuka ovládania záznamníka JLCPCB

Najprv musí používateľ skontrolovať a upraviť systémové hodiny. Tento proces sa vykoná po stlačení druhého tlačidla.

Po stlačení tlačidla by sa mala objaviť nasledujúca obrazovka, ktorá je znázornená na obrázku vyššie.

Krok 7:

Obrázok
Obrázok

Z tejto obrazovky bude môcť užívateľ zadávať hodiny a minúty z tlačidiel pripojených k digitálnym pinom 2 a 3 Arduina. Tlačidlá sú zobrazené na obrázku vyššie.

Časť kódu na ovládanie hodín je uvedená nižšie.

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

{adjusthour_state = 0; } if (adjusthour == 1 && adjusthour_state == 0 && opatření_proces == 0) {adjust_process = 1; }

Keď stlačíte tlačidlo hodín a premenná process_process je nastavená na 0, podmienka bude pravdivá a premenná adjust_process bude nastavená na 1. Premenná process_process sa používa na signalizáciu, že systém monitoruje teplotu. Keď je jeho hodnota 0, systém umožní užívateľovi vstúpiť do ponuky nastavenia času. Preto potom, čo premenná adjust_process dostane hodnotu 1, systém vstúpi do podmienky úpravy času. Tento blok kódu je zobrazený nižšie.

// ------------------------------------------------ ----- Upraviť hodiny ------------------------------------------- --------------------

// Úprava hodiny if (adjust_process == 1) {lcd.clear (); DS1307.getDate (DataTime); lcd.setCursor (0, 0); lcd.print ("Upraviť hodinu:"); sprintf (časy, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (časy); // Úprava hodiny do {Measure = digitalRead (Buttonmeasure); adjusthour = digitalRead (Buttonadjusthour); ok = digitalRead (Buttonok); if (opatrenia == 0 && opatrenia_stavu == 1) {opatrenia_stavu = 0; } if (opatrenia == 1 && Meas_state == 0) {DataTime [4] ++; if (DataTime [4]> 23) {DataTime [4] = 0; } mieru_státu = 1; sprintf (časy, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (časy); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); } if (adjusthour == 0 && adjusthour_state == 1) {adjusthour_state = 0; } if (adjusthour == 1 && adjusthour_state == 0) {DataTime [5] ++; if (DataTime [5]> 59) {DataTime [5] = 0; } sprintf (časy, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (časy); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); adjusthour_state = 1; } if (ok == 1) {lcd.clear (); DS1307.getDate (DataTime); sprintf (časy, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.print (časy); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O"); adjust_process = 0; }} while (ok! = 1); }

V tomto stave systém zobrazí správu uvedenú na obrázku 4 a potom počká, kým sa hodnoty vnútorne upravia v slučke while. Pri úprave hodín majú tieto tlačidlá zmenené funkcie, to znamená, že sú multifunkčné.

To vám umožní použiť tlačidlo pre viac ako jednu funkciu a znížiť zložitosť systému.

Užívateľ týmto spôsobom upraví hodnotu hodín a minút a potom po stlačení tlačidla Ok uloží údaje do systému.

Ako vidíte, systém načíta 3 tlačidlá, ako je to znázornené nižšie.

opatrenia = digitalRead (Buttonmeasure);

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

Všimnite si toho, že tlačidlo merania (Buttonmeasure) zmenilo svoju funkciu. Teraz sa bude používať na úpravu hodnôt hodín, ako je uvedené nižšie. Nasledujúce dve podmienky sú podobné a používajú sa na úpravu hodín a minút, ako je uvedené vyššie.

ak (miera == 0 && measure_state == 1)

{measure_state = 0; } if (opatrenia == 1 && Meas_state == 0) {DataTime [4] ++; if (DataTime [4]> 23) {DataTime [4] = 0; } mieru_státu = 1; sprintf (časy, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (časy); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); } if (adjusthour == 0 && adjusthour_state == 1) {adjusthour_state = 0; } if (adjusthour == 1 && adjusthour_state == 0) {DataTime [5] ++; if (DataTime [5]> 59) {DataTime [5] = 0; } sprintf (časy, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (časy); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); adjusthour_state = 1; }

Preto pri každom stlačení jedného z dvoch tlačidiel sa zmení hodnota pozícií 4 a 5 vektora DataTime a za druhé, tieto hodnoty sa uložia do pamäte DS1307.

Po dokončení úprav musí používateľ dokončiť postup kliknutím na tlačidlo Ok. Keď nastane táto udalosť, systém spustí nasledujúce riadky kódu.

ak (ok == 1)

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

Vstúpi do vyššie uvedenej podmienky a zobrazí používateľovi hodinovú správu a ponuku možností.

Nakoniec musí užívateľ začať proces monitorovania pacienta prostredníctvom teplotného senzora s Dataloggerom Arduino JLCPCB.

Na to musí používateľ stlačiť tlačidlo merania, ktoré je pripojené k digitálnemu kolíku 2.

Potom systém vykoná čítanie pomocou teplotného senzora pre Arduino a uloží ho na pamäťovú kartu. Obvodová oblasť je znázornená na obrázku vyššie.

Krok 8:

Obrázok
Obrázok

Preto keď je tlačidlo stlačené, vykoná sa nasledujúca časť kódu.

ak (miera == 0 && measure_state == 1)

{measure_state = 0; } if (opatrenia == 1 && opatrenia_stavu == 0 && opatrenia_proces == 0) {opatrenia_proces = 1; scale_state = 1; if (SD.exists ("temp.txt")) {Serial.println ("Apagou o arquivo anterior!"); SD.remove ("temp.txt"); myFile = SD.open ("temp.txt", FILE_WRITE); // Cria / Abre arquivo.txt Serial.println ("Criou o arquivo!"); } else {Serial.println ("Criou o arquivo!"); myFile = SD.open ("temp.txt", FILE_WRITE); // Cria / Abre arquivo.txt myFile.close (); } oneskorenie (500); myFile.print ("Hodina:"); myFile.println ("teplota"); DS1307.getDate (DataTime); actualMin = previousMin = DataTime [5]; sprintf (časy, "%02d:%02d", DataTime [4], DataTime [5]); lcd.clear (); lcd.setCursor (5, 0); lcd.print (časy); lcd.setCursor (0, 1); lcd.print ("Teplota:"); lcd.setCursor (14, 1); senzory.requestTeploty (); float TempSensor = sensor.getTempCByIndex (0); lcd.print (TempSensor); }

Vo vyššie uvedenej časti kódu systém priradí premennej taktovka_procesu hodnotu 1. Je zodpovedný za uloženie údajov na kartu SD.

Okrem toho systém skontroluje, či textový súbor s protokolom údajov existuje alebo nie. Ak existuje súbor, systém ho odstráni a vytvorí nový na uloženie údajov.

Potom vytvorí dva stĺpce: jeden pre hodiny a jeden pre teplotu v textovom súbore.

Potom sa na displeji LCD zobrazia hodiny a teplota, ako je to znázornené na obrázku vyššie.

Potom tok kódu spustí nasledujúci programový blok.

ak (parameter_proces == 1)

{updateTemp (); bajt contMin = 0, contHour = 0; DS1307.getDate (DataTime); actualMin = DataTime [5]; // ------------------------------------------------ --------- Počet minút --------------------------------------- ------------------- if (actualMin! = previousMin) {contMin ++; previousMin = actualMin; } if (contMin == 5) {sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); senzory.requestTeploty (); float TempSensor = sensor.getTempCByIndex (0); myFile.print (časy); myFile.println (TempSensor); contMin = 0; } // ----------------------------------------------- ------------ Počet hodín ------------------------------------ ---------------------- if (actualHour! = previousHour) {contHour ++; previousHour = actualHour; } if (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print („Dokončené“); lcd.setCursor (5, 1); lcd.print („proces“); Measure_process = 0; contHour = 0; } // ---------------------------------------------- Podmienka zastaviť záznamník údajov -----

Najprv sa spustí funkcia updateTemp (). Je to podobné funkcii updateHour (); teplotu však zobrazuje každú 1 minútu.

Potom systém zhromaždí časové údaje z hodín reálneho času a uloží aktuálnu hodnotu minúty do premennej currentMin.

Potom skontroluje, či bola zmenená minimálna premenná podľa nižšie uvedeného stavu

ak (skutočnýmin! = predchádzajúcimin)

{pokračovanie ++; previousMin = actualMin; }

Ak sa teda aktuálna minútová premenná líši od predchádzajúcej hodnoty, znamená to, že došlo k zmene hodnoty. Týmto spôsobom bude podmienka pravdivá a hodnota počtu minút sa zvýši (pokračovanie) a aktuálna hodnota bude priradená k premennej previousMin, aby sa uložila jej predchádzajúca hodnota.

Keď sa teda hodnota tohto počtu rovná 5, znamená to, že uplynulo 5 minút a systém musí vykonať nové čítanie teploty a uložiť hodinu a teplotu do súboru denníka SD karty.

ak (pokračovanie == 5)

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

Týmto spôsobom sa tento proces bude opakovať, až kým nedosiahneme hodnotu 5 hodín monitorovania teploty pacienta pomocou teplotného senzora s Arduino.

Časť kódu je zobrazená nižšie a je podobná počtu minút, ktorý bol uvedený vyššie.

// ------------------------------------------------ ----------- Počet hodín ------------------------------------- ---------------------

if (actualHour! = previousHour) {contHour ++; previousHour = actualHour; } if (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print („Dokončené“); lcd.setCursor (5, 1); lcd.print („proces“); Measure_process = 0; contHour = 0; }

Po dosiahnutí 5 hodín monitorovania systém zatvorí súbor denníka a zobrazí používateľovi správu „Dokončený proces“.

Okrem toho môže používateľ stlačením tlačidla Ok/Pauza zastaviť nahrávanie údajov. Keď k tomu dôjde, vykoná sa nasledujúci blok kódu.

// ---------------------------------------------- Podmienka do zastaviť záznamník údajov ----------------------------------------------- ---

if (ok == 1) {myFile.close (); lcd.clear (); lcd.setCursor (6, 0); lcd.print („Zastavené“); lcd.setCursor (5, 1); lcd.print („proces“); Measure_process = 0; oneskorenie (2000); lcd.clear (); DS1307.getDate (DataTime); sprintf (časy, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (časy); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); }

Krok 9:

Obrázok
Obrázok

Potom systém zavrie súbor a zobrazí správu „Zastavený proces“, ako je to znázornené na obrázku 8.

Krok 10:

Obrázok
Obrázok

Potom systém vytlačí časovú obrazovku a možnosti ponuky, ako je to znázornené na obrázku 9.

Krok 11: Prístup k údajom modulu SD karty pomocou Arduino

Prístup k údajom modulu SD karty pomocou Arduina
Prístup k údajom modulu SD karty pomocou Arduina

Po procese monitorovania JLCPCB Dataloggeru s teplotným senzorom s Arduino je potrebné vybrať pamäťovú kartu a získať prístup k údajom v počítači.

Ak chcete zobraziť a analyzovať údaje s lepšou kvalitou, exportujte / skopírujte všetky informácie z textového súboru do programu Excel. Potom môžete vykresľovať grafy a analyzovať získané výsledky.

Krok 12: Záver

Datalogger JLCPCB so snímačom teploty s Arduinom nám umožňuje okrem merania teploty zaznamenávať aj informácie o teplotnom správaní pacienta za určité časové obdobie.

Vďaka týmto uloženým údajom je možné analyzovať a pochopiť, ako sa správa teplota pacienta infikovaného ochorením COVID 19.

Okrem toho je možné vyhodnotiť teplotnú úroveň a priradiť jej hodnotu k aplikácii niektorého druhu liekov.

Preto sa prostredníctvom týchto údajov JLCPCB Datalogger s teplotným senzorom pre Arduino snaží pomôcť lekárom a sestrám pri štúdiu správania sa pacientov.

Nakoniec ďakujeme spoločnosti JLCPCB za podporu pri vývoji projektu a dúfame, že ho dokážete využiť

Všetky súbory si môže ľubovoľne stiahnuť a používať ľubovoľný používateľ.

Odporúča: