Obsah:
- Zásoby
- Krok 1: Konštrukcia záznamníka JLCPCB so snímačom teploty s Arduino
- Krok 2:
- Krok 3:
- Krok 4:
- Krok 5:
- Krok 6: Ponuka ovládania záznamníka JLCPCB
- Krok 7:
- Krok 8:
- Krok 9:
- Krok 10:
- Krok 11: Prístup k údajom modulu SD karty pomocou Arduino
- Krok 12: Záver
Video: Snímač teploty pre Arduino aplikovaný na COVID 19: 12 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
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
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:
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:
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
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:
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:
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:
Potom systém zavrie súbor a zobrazí správu „Zastavený proces“, ako je to znázornené na obrázku 8.
Krok 10:
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
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:
Snímač/merač teploty motora s bezdrôtovou sondou pre klasické vozidlá: 7 krokov
Snímač/merač teploty motora s bezdrôtovou sondou pre klasické vozidlá: Túto sondu som vyrobil pre svoj milý Çipitak. Auto fiat 126 s 2 -valcovým vzduchom chladeným motorom pod zadnou kapotou. Çipitak nemá ukazovateľ teploty, ktorý by ukazoval, ako je motor horúci, a tak som si myslel, že by pomohol senzor. Tiež som chcel, aby bol senzor drôtený
Snímač teploty IoT s ESP8266: 6 krokov (s obrázkami)
Snímač teploty IoT s ESP8266: Inšpirovalo ma vytvorenie teplotného snímača, ktorý môžem monitorovať cez wifi. Tento projekt nie je nový, ale páči sa mi myšlienka mať medzivrstvu z dôvodu zabezpečenia a nemusieť otvárať port vo svojom smerovači zariadeniu IoT. Základná myšlienka alokuje
Bezdrôtový snímač teploty a pohybu IoT: 11 krokov (s obrázkami)
Bezdrôtový snímač teploty a pohybu IoT: Inšpiroval som sa mnohými projektmi IoT, ktoré sú v programe Instructables, takže sa v procese učenia pokúšam skombinovať nejakú užitočnú aplikáciu, ktorá je relevantná. Ako rozšírenie mojich predchádzajúcich inštrukcií týkajúcich sa snímača teploty IoT teraz
Digitálny snímač teploty založený na Arduine: 5 krokov (s obrázkami)
Digitálny snímač teploty založený na Arduine: Teplotné snímače sú v dnešnej dobe skutočne bežnou vecou, ale väčšina z nich je extrémne komplikovaná na výrobu alebo je ich nákup extrémne drahý. Tento projekt vám dáva digitálny snímač teploty na báze Arduino, ktorý je nielen lacný a veľmi ľahký do m
SENZOR SUHU DENGAN LCD DAN LED (snímač teploty s LCD a LED): 6 krokov (s obrázkami)
SENZOR SUHU DENGAN LCD DAN LED (snímač teploty s LCD a LED): hai, saya Devi Rivaldi mahasiswa UNIVERSITAS NUSA PUTRA dari Indonesia, di sini saya akan berbagi cara membuat sensor suhu menggunakan Arduino dengan Output ke LCD dan LED. Ini adalah pembaca suhu dengan desain saya sendiri, dengan sensor ini anda