INHOUDSOPGAWE:
- Voorrade
- Stap 1: Bou van die JLCPCB -datalogger met temperatuursensor met Arduino
- Stap 2:
- Stap 3:
- Stap 4:
- Stap 5:
- Stap 6: JLCPCB Datalogger -kontrolemenu
- Stap 7:
- Stap 8:
- Stap 9:
- Stap 10:
- Stap 11: Toegang tot SD -kaartmodule -data met Arduino
- Stap 12: Gevolgtrekking
Video: Temperatuursensor vir Arduino toegepas op COVID 19: 12 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
Die temperatuursensor vir Arduino is 'n fundamentele element wanneer ons die temperatuur van 'n verwerker van die menslike liggaam wil meet.
Die temperatuursensor met Arduino moet in aanraking wees of naby wees om die hittevlak te ontvang en te meet. Dit is hoe termometers werk.
Hierdie toestelle word uiters gebruik om die liggaamstemperatuur van siek mense te meet, aangesien die temperatuur een van die eerste faktore is wat in die menslike liggaam verander as daar 'n abnormaliteit of siekte is.
Een van die siektes wat die temperatuur van die menslike liggaam verander, is COVID 19. Daarom bied ons die belangrikste simptome aan:
Hoes Moegheid Asemhalingsprobleme (Ernstige gevalle) Koors Koors is 'n simptoom waarvan die belangrikste kenmerk 'n toename in liggaamstemperatuur is. In hierdie siekte moet ons hierdie simptome voortdurend monitor.
Ons sal dus 'n projek ontwikkel om die temperatuur te monitor en hierdie data op 'n geheue kaart te stoor deur 'n JLCPCB Datalogger met behulp van 'n temperatuursensor met Arduino.
Daarom leer u in hierdie artikel:
- Hoe werk 'n JLCPCB -datalogger met 'n temperatuursensor met Arduino?
- Hoe werk die temperatuursensor met Arduino.
- Hoe werk die DS18B20 temperatuursensor met Arduino
- Gebruik knoppies met verskeie funksies.
Vervolgens sal ons u wys hoe u u JLCPCB -datalogger sal ontwikkel met behulp van die Arduino -temperatuursensor.
Voorrade
Arduino UNO
JLCPCB -printplaat
DS18B20 Temperatuursensor
Arduino Nano R3
Springers
LCD -skerm 16 x 2
Drukknopskakelaar
Weerstand 1kR
SD -kaartmodule vir Arduino
Stap 1: Bou van die JLCPCB -datalogger met temperatuursensor met Arduino
Soos voorheen genoem, bestaan die projek uit die opstel van 'n JLCPCB -datalogger met temperatuursensor met Arduino, en deur middel van hierdie data kan ons die temperatuur van die pasiënt wat behandel word, monitor.
Die stroombaan word dus in die figuur hierbo getoon.
Soos u kan sien, het hierdie kring dus 'n DS18B20 temperatuursensor met Arduino, wat verantwoordelik is vir die meting van die temperatuur van die pasiënt.
Boonop is die Arduino Nano verantwoordelik vir die versameling van hierdie data en om dit op die geheue kaart van die SD -kaartmodule te stoor.
Elke inligting word gestoor met sy tyd, wat uit die RTC -module DS1307 gelees sal word.
Om die data van die temperatuursensor met Arduino te stoor, moet die gebruiker die proses via die bedieningsmenu met die 16x2 LCD uitvoer.
Stap 2:
Elke knoppie is verantwoordelik vir die beheer van 'n opsie, soos aangedui op die LCD -skerm 16x2 in figuur 2.
Elke opsie is verantwoordelik vir die uitvoering van 'n funksie in die stelsel, soos hieronder getoon.
- Opsie M is verantwoordelik om die meting en opname van data op die geheue kaart te begin.
- Opsie H is verantwoordelik vir die aanpassing van die stelselure.
- Opsie O/P word gebruik om die invoer van data in die stelsel te bevestig of om die skryf van data na die geheue kaart te onderbreek.
Om die stelselbeheerproses te verstaan, sal ons die onderstaande kode verskaf en die stap-vir-stap beheerstelsel van die JLCPCB-datalogger met temperatuursensor met Arduino bespreek.
#include // Biblioteek met alle funksies van die DS18B20 -sensor
#include #include // Biblioteca I2C tot LCD 16x2 #include // Biblioteca de Comunicacao I2C #include // OneWire Library for DS18B20 Sensor #include #include LiquidCrystal_I2C lcd (0x27, 16, 2); // Configurando o endereco for LCD 16x2 for 0x27 #define ONE_WIRE_BUS 8 // Digital Pin to connect the DS18B20 Sensor // Define uma instancia do oneWire for comunicacao com of sensor OneWire oneWire (ONE_WIRE_BUS); DallasTemperatuur sensors (& oneWire); DeviceAddress -sensor1; Lê myFile; #define Buttonmeasure 2 #define Buttonadjusthour 3 #define Buttonok 4 bool measure = 0, adjusthour = 0, ok = 0; bool measure_state = 0, adjusthour_state = 0, ok_state = 0; bool meet_proses = 0, aanpas_proses = 0; byte actualMin = 0, previousMin = 0; byte actualHour = 0, previousHour = 0; byte minUpdate = 0; int pinoSS = 10; // Pin 53 vir Mega / Pin 10 vir UNO int DataTime [7]; ongeldig updateHour () {DS1307.getDate (DataTime); if (DataTime [5]! = minUpdate) {sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.print (""); lcd.setCursor (5, 0); lcd.print (tye); minUpdate = DataTime [5]; }} ongeldig updateTemp () {DS1307.getDate (DataTime); if (DataTime [5]! = minUpdate) {sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); lcd.clear (); lcd.setCursor (5, 0); lcd.print (tye); lcd.setCursor (0, 1); lcd.print ("Temperatuur:"); lcd.setCursor (14, 1); sensors.versoekTemperature (); float TempSensor = sensors.getTempCByIndex (0); lcd.print (TempSensor); minUpdate = DataTime [5]; }} ongeldige opstelling () {Serial.begin (9600); DS1307.begin (); sensors.begin (); pinMode (pinoSS, OUTPUT); // Declara pinoSS como saída Wire.begin (); // Inicializacao da Comunicacao I2C lcd.init (); // Inisialisasie vir LCD lcd.backlight (); lcd.setCursor (3, 0); lcd.print ("Temp System"); lcd.setCursor (3, 1); lcd.print ("Datalogger"); vertraging (2000); // Localiza e mostra enderecos dos sensores Serial.println ("Localizando sensores DS18B20 …"); Serial.print ("Sensorlokalisering suksesvol!"); Serial.print (sensors.getDeviceCount (), DEC); Serial.println ("Sensor"); if (SD.begin ()) {// Inicializa of SD Card Serial.println ("SD Card pronto para uso."); // Imprime na tela} else {Serial.println ("Inskrywing vir SD -kaart."); terugkeer; } DS1307.getDate (DataTime); lcd.clear (); sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (tye); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); } leemte -lus () {updateHour (); // Lees knoppie state meet = digitalRead (knoppie maat); adjusthour = digitalRead (Buttonadjusthour); ok = digitalRead (Buttonok); as (meet == 0 && meet_staat == 1) {maat_staat = 0; } as (meet == 1 && meet_staat == 0 && maat_verwerking == 0) {maat_verwerking = 1; meet_staat = 1; as (SD.exists ("temp.txt")) {Serial.println ("Apagou o arquivo anterior!"); SD.remove ("temp.txt"); myFile = SD.open ("temp.txt", FILE_WRITE); // Cria / Abre arquivo.txt Serial.println ("Criou o arquivo!"); } anders {Serial.println ("Criou o arquivo!"); myFile = SD.open ("temp.txt", FILE_WRITE); // Cria / Abre arquivo.txt myFile.close (); } vertraging (500); myFile.print ("Uur:"); myFile.println ("temperatuur"); DS1307.getDate (DataTime); actualMin = previousMin = DataTime [5]; sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.clear (); lcd.setCursor (5, 0); lcd.print (tye); lcd.setCursor (0, 1); lcd.print ("Temperatuur:"); lcd.setCursor (14, 1); sensors.versoekTemperature (); float TempSensor = sensors.getTempCByIndex (0); lcd.print (TempSensor); } as (adjusthour == 0 && adjusthour_state == 1) {adjusthour_state = 0; } as (adjusthour == 1 && adjusthour_state == 0 && measure_process == 0) {adjust_process = 1; } // ----------------------------------------------- --- Meetproses --------------------------------------------- -------------- if (Measure_process == 1) {updateTemp (); byte contMin = 0, contHour = 0; DS1307.getDate (DataTime); actualMin = DataTime [5]; // ------------------------------------------------ --------- Tel minute --------------------------------------- ------------------- if (actualMin! = previousMin) {contMin ++; previousMin = actualMin; } if (contMin == 5) {sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); sensors.versoekTemperature (); float TempSensor = sensors.getTempCByIndex (0); myFile.print (tye); myFile.println (TempSensor); contMin = 0; } // ----------------------------------------------- ------------ Tel ure ------------------------------------ ---------------------- if (actualHour! = previousHour) {contHour ++; vorige uur = werklike uur; } as (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print ("klaar"); lcd.setCursor (5, 1); lcd.print ("Proses"); meetproses = 0; kontuur = 0; } // ---------------------------------------------- toestand om die datalogger te stop ---------------------------------------------- ---- as (ok == 1) {myFile.close (); lcd.clear (); lcd.setCursor (6, 0); lcd.print ("gestop"); lcd.setCursor (5, 1); lcd.print ("Proses"); meetproses = 0; vertraging (2000); lcd.clear (); DS1307.getDate (DataTime); sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (tye); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); }} // ---------------------------------------------- ------- Pas ure aan ----------------------------------------- ---------------------- // Pas uur aan as (aanpassingsproses == 1) {lcd.clear (); DS1307.getDate (DataTime); lcd.setCursor (0, 0); lcd.print ("Uur aanpas:"); sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (tye); // Uuraanpassing doen {meet = digitalRead (knoppermaatreël); adjusthour = digitalRead (Buttonadjusthour); ok = digitalRead (Buttonok); as (meet == 0 && meet_staat == 1) {meet_staat = 0; } as (meet == 1 && meet_staat == 0) {DataTime [4] ++; as (DataTime [4]> 23) {DataTime [4] = 0; } meet_staat = 1; sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (tye); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); } as (adjusthour == 0 && adjusthour_state == 1) {adjusthour_state = 0; } as (adjusthour == 1 && adjusthour_state == 0) {DataTime [5] ++; as (DataTime [5]> 59) {DataTime [5] = 0; } sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (tye); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); adjusthour_state = 1; } as (ok == 1) {lcd.clear (); DS1307.getDate (DataTime); sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.print (tye); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O"); aanpas_proses = 0; }} terwyl (ok! = 1); } // ----------------------------------------------- ------- Beëindig uurtyd ---------------------------------------- -------------------}
Eerstens definieer ons al die biblioteke vir die beheer van die modules en die verklaring van veranderlikes wat gebruik word by die programmering van die JLCPCB Datalogger met 'n temperatuursensor vir Arduino. Die kodeblok word hieronder getoon.
Stap 3:
#include // Biblioteek met alle funksies van die DS18B20 -sensor
#include #include // Biblioteca I2C tot LCD 16x2 #include // Biblioteca de Comunicacao I2C #include // OneWire Library for DS18B20 Sensor #include #include LiquidCrystal_I2C lcd (0x27, 16, 2); // Configurando o endereco for LCD 16x2 for 0x27 #define ONE_WIRE_BUS 8 // Digital Pin to connect the DS18B20 Sensor // Define uma instancia do oneWire for comunicacao com of sensor OneWire oneWire (ONE_WIRE_BUS); DallasTemperatuur sensors (& oneWire); DeviceAddress -sensor1; Lê myFile; #define Buttonmeasure 2 #define Buttonadjusthour 3 #define Buttonok 4 bool measure = 0, adjusthour = 0, ok = 0; bool meet_staat = 0, adjusthour_state = 0, ok_staat = 0; bool meet_proses = 0, aanpas_proses = 0; byte actualMin = 0, previousMin = 0; byte actualHour = 0, previousHour = 0; byte minUpdate = 0; int pinoSS = 10; // Pin 53 vir Mega / Pin 10 vir UNO int DataTime [7];
Hierna het ons die leemte -opstelfunksie. Hierdie funksie word gebruik om die penne en die inisialisering van toestelle op te stel, soos hieronder getoon.
leemte opstelling ()
{Serial.begin (9600); DS1307.begin (); sensors.begin (); pinMode (pinoSS, OUTPUT); // Declara pinoSS como saída Wire.begin (); // Inicializacao da Comunicacao I2C lcd.init (); // Inisialisasie vir LCD lcd.backlight (); lcd.setCursor (3, 0); lcd.print ("Temp System"); lcd.setCursor (3, 1); lcd.print ("Datalogger"); vertraging (2000); // Localiza e mostra enderecos dos sensores Serial.println ("Localizando sensores DS18B20 …"); Serial.print ("Sensorlokalisering suksesvol!"); Serial.print (sensors.getDeviceCount (), DEC); Serial.println ("Sensor"); if (SD.begin ()) {// Inicializa of SD Card Serial.println ("SD Card pronto para uso."); // Imprime na tela} else {Serial.println ("Inskrywing vir SD -kaart."); terugkeer; } DS1307.getDate (DataTime); lcd.clear (); sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (tye); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); }
Eerstens is begin met die seriële kommunikasie, die intydse klok en die temperatuursensor vir die Arduino DS18B20. Nadat die toestelle geïnitialiseer en getoets is, is die boodskap met die spyskaartopsies op die 16x2 LCD-skerm gedruk. Hierdie skerm word in figuur 1 getoon.
Stap 4:
Daarna lees die stelsel die ure en werk die waarde op deur die updateHour -funksie te bel. Hierdie funksie het dus ten doel om elke uur die uurwaarde voor te stel. Die funksiekodeblok word hieronder getoon.
leegte updateHour ()
{DS1307.getDate (DataTime); if (DataTime [5]! = minUpdate) {sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.print (""); lcd.setCursor (5, 0); lcd.print (tye); minUpdate = DataTime [5]; }}
Stap 5:
Benewens die opdatering van die ure, kan die gebruiker een van die drie knoppies kies om die pasiënt te monitor met 'n temperatuursensor met Arduino. Die stroombaan word in die figuur hierbo getoon.
Stap 6: JLCPCB Datalogger -kontrolemenu
Eerstens moet die gebruiker die stelselure nagaan en aanpas. Hierdie proses word uitgevoer as die tweede knoppie ingedruk word.
As u op die knoppie druk, moet die volgende skerm verskyn, wat in die figuur hierbo getoon word.
Stap 7:
Vanaf hierdie skerm kan die gebruiker die uur- en minuutwaardes invoer vanaf die knoppies wat op die digitale penne 2 en 3 van die Arduino gekoppel is. Die knoppies word in die figuur hierbo getoon.
Die kode gedeelte vir die beheer van die ure word hieronder getoon.
as (adjusthour == 0 && adjusthour_state == 1)
{adjusthour_state = 0; } as (adjusthour == 1 && adjusthour_state == 0 && measure_process == 0) {adjust_process = 1; }
As die ure se knoppie ingedruk word en die meetproses -veranderlike op 0 gestel is, sal die toestand waar wees en die veranderlike van die aanpassingsproses op 1. Die veranderlike van maat_proses word gebruik om aan te dui dat die stelsel temperatuur monitor. As die waarde daarvan 0 is, sal die stelsel die gebruiker toelaat om die spyskaart vir tydinstellings te betree. Nadat die veranderlike aanpassingsproses 'n waarde van 1 ontvang het, sal die stelsel die tydaanpassingstoestand invoer. Hierdie kodeblok word hieronder getoon.
// ------------------------------------------------ ----- Pas ure aan ------------------------------------------- --------------------
// Pas Uur aan as (aanpassingsproses == 1) {lcd.clear (); DS1307.getDate (DataTime); lcd.setCursor (0, 0); lcd.print ("Uur aanpas:"); sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (tye); // Uuraanpassing doen {meet = digitalRead (knoppermaatreël); adjusthour = digitalRead (Buttonadjusthour); ok = digitalRead (Buttonok); as (meet == 0 && meet_staat == 1) {maat_staat = 0; } as (meet == 1 && meet_staat == 0) {DataTime [4] ++; as (DataTime [4]> 23) {DataTime [4] = 0; } meet_staat = 1; sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (tye); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); } as (adjusthour == 0 && adjusthour_state == 1) {adjusthour_state = 0; } if (adjusthour == 1 && adjusthour_state == 0) {DataTime [5] ++; as (DataTime [5]> 59) {DataTime [5] = 0; } sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (tye); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); adjusthour_state = 1; } as (ok == 1) {lcd.clear (); DS1307.getDate (DataTime); sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.print (tye); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O"); aanpas_proses = 0; }} terwyl (ok! = 1); }
In hierdie toestand sal die stelsel die boodskap in Figuur 4 vertoon en dan wag totdat die waardes intern in die while -lus aangepas word.
Hiermee kan u 'n knoppie vir meer as een funksie gebruik en die kompleksiteit van die stelsel verminder.
Op hierdie manier pas die gebruiker die waarde van die ure en minute aan en stoor dan die data in die stelsel as die OK -knoppie ingedruk word.
Soos u kan sien, sal die stelsel die 3 knoppies lees, soos hieronder getoon.
meet = digitalRead (knoppiemaat);
adjusthour = digitalRead (Buttonadjusthour); ok = digitalRead (Buttonok);
Let daarop dat die maatknoppie (knoppermaatreël) sy funksie verander het. Dit sal nou gebruik word om die uurwaardes aan te pas, soos hieronder getoon. Die volgende twee toestande is soortgelyk en word gebruik om die ure en minute aan te pas, soos hierbo getoon.
as (meet == 0 && meet_staat == 1)
{maatstaf = 0; } as (meet == 1 && meet_staat == 0) {DataTime [4] ++; as (DataTime [4]> 23) {DataTime [4] = 0; } meet_staat = 1; sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (tye); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); } as (adjusthour == 0 && adjusthour_state == 1) {adjusthour_state = 0; } if (adjusthour == 1 && adjusthour_state == 0) {DataTime [5] ++; as (DataTime [5]> 59) {DataTime [5] = 0; } sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (tye); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); adjusthour_state = 1; }
Elke keer dat een van die twee knoppies gedruk word, word die waarde van posisies 4 en 5 van die DataTime -vektor verander, en tweedens word hierdie waardes in die DS1307 -geheue gestoor.
Na die aanpassings, moet die gebruiker op die Ok -knoppie klik om die proses te voltooi. As hierdie gebeurtenis plaasvind, voer die stelsel die volgende reëls kode uit.
as (ok == 1)
{lcd.clear (); DS1307.getDate (DataTime); sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.print (tye); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O"); aanpas_proses = 0; }
Dit sal die bogenoemde toestand invoer en die uurboodskap en die keusemenu aan die gebruiker voorgee.
Laastens moet die gebruiker die pasiëntmoniteringsproses begin deur middel van die temperatuursensor met Arduino JLCPCB Datalogger.
Om dit te kan doen, moet die gebruiker op die metingsknoppie druk wat op die digitale pen 2 gekoppel is.
Dan sal die stelsel die meting met die temperatuursensor vir Arduino lees en dit op die geheue kaart stoor. Die kringgebied word in die figuur hierbo getoon.
Stap 8:
As die knoppie gedruk word, word die volgende gedeelte van die kode dus uitgevoer.
as (meet == 0 && meet_staat == 1)
{maatstaf = 0; } as (meet == 1 && meet_staat == 0 && maat_verwerking == 0) {maat_verwerking = 1; meet_staat = 1; as (SD.exists ("temp.txt")) {Serial.println ("Apagou o arquivo anterior!"); SD.remove ("temp.txt"); myFile = SD.open ("temp.txt", FILE_WRITE); // Cria / Abre arquivo.txt Serial.println ("Criou o arquivo!"); } anders {Serial.println ("Criou o arquivo!"); myFile = SD.open ("temp.txt", FILE_WRITE); // Cria / Abre arquivo.txt myFile.close (); } vertraging (500); myFile.print ("Uur:"); myFile.println ("temperatuur"); DS1307.getDate (DataTime); actualMin = previousMin = DataTime [5]; sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.clear (); lcd.setCursor (5, 0); lcd.print (tye); lcd.setCursor (0, 1); lcd.print ("Temperatuur:"); lcd.setCursor (14, 1); sensors.versoekTemperature (); float TempSensor = sensors.getTempCByIndex (0); lcd.print (TempSensor); }
In die kode hierbo, sal die stelsel 'n waarde van 1 toewys aan die veranderlike van meet_proses. Dit is verantwoordelik om toe te laat dat die data op die SD -kaart gestoor word.
Daarbenewens sal die stelsel kyk of daar 'n tekslêer met 'n datalogboek bestaan of nie. As daar 'n lêer is, sal die stelsel verwyder en 'n nuwe een skep om die data te stoor.
Daarna skep dit twee kolomme: een vir die ure en een vir die temperatuur in die tekslêer.
Daarna sal die ure en temperatuur op die LCD -skerm vertoon word, soos in figuur hierbo getoon.
Daarna sal die kodevloei die volgende programblok uitvoer.
as (meetproses == 1)
{updateTemp (); byte contMin = 0, contHour = 0; DS1307.getDate (DataTime); actualMin = DataTime [5]; // ------------------------------------------------ --------- Tel minute --------------------------------------- ------------------- if (actualMin! = previousMin) {contMin ++; previousMin = actualMin; } if (contMin == 5) {sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); sensors.versoekTemperature (); float TempSensor = sensors.getTempCByIndex (0); myFile.print (tye); myFile.println (TempSensor); contMin = 0; } // ----------------------------------------------- ------------ Tel ure ------------------------------------ ---------------------- if (actualHour! = previousHour) {contHour ++; vorige uur = werklike uur; } as (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print ("klaar"); lcd.setCursor (5, 1); lcd.print ("Proses"); meetproses = 0; kontuur = 0; } // ---------------------------------------------- toestand om die datalogger te stop -----
Die funksie updateTemp () word eers uitgevoer. Dit is soortgelyk aan die updateHour () -funksie; dit wys egter elke 1 minuut die temperatuur.
Daarna sal die stelsel die tyddata van die Real-Time Clock versamel en die huidige minuutwaarde in die currentMin-veranderlike stoor.
Dan sal dit kontroleer of die min veranderlike verander is volgens die toestand hieronder
as (actualMin! = vorigeMin)
{kontMin ++; previousMin = actualMin; }
As die huidige minuutveranderlike dus verskil van die vorige waarde, beteken dit dat 'n verandering in die waarde plaasgevind het. Op hierdie manier sal die toestand waar wees en die waarde van die minuuttelling verhoog (contMin) en die huidige waarde sal aan die veranderlike previousMin toegewys word om die vorige waarde daarvan te stoor.
As die waarde van hierdie telling dus gelyk is aan 5, beteken dit dat 5 minute verloop het en die stelsel 'n nuwe temperatuurlesing moet uitvoer en die uur- en temperatuurwaarde moet stoor in die SD -kaartloglêer.
as (contMin == 5)
{sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); sensors.versoekTemperature (); float TempSensor = sensors.getTempCByIndex (0); myFile.print (tye); myFile.println (TempSensor); contMin = 0; }
Op hierdie manier word hierdie proses herhaal totdat die waarde van 5 uur van die monitering van die pasiënt se temperatuur bereik is met die temperatuursensor met Arduino.
Die kode gedeelte word hieronder getoon en is soortgelyk aan die minuut telling, wat hierbo aangebied is.
// ------------------------------------------------ ----------- Telure ------------------------------------- ---------------------
if (actualHour! = previousHour) {contHour ++; vorige uur = werklike uur; } as (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print ("klaar"); lcd.setCursor (5, 1); lcd.print ("Proses"); meetproses = 0; kontuur = 0; }
Nadat die monitor 5 uur lank gemonitor is, sal die stelsel die loglêer toemaak en die boodskap "Voltooide proses" aan die gebruiker voorgee.
Daarbenewens kan die gebruiker op die Ok/Pause -knoppie druk om die opname van data te stop. As dit gebeur, word die volgende kodeblok uitgevoer.
// ---------------------------------------------- Voorwaarde aan stop die datalogger ----------------------------------------------- ---
as (ok == 1) {myFile.close (); lcd.clear (); lcd.setCursor (6, 0); lcd.print ("gestop"); lcd.setCursor (5, 1); lcd.print ("Proses"); meetproses = 0; vertraging (2000); lcd.clear (); DS1307.getDate (DataTime); sprintf (tye, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (tye); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); }
Stap 9:
Dan sal die stelsel die lêer toemaak en die boodskap "Gestopte proses", soos getoon in figuur 8, aanbied.
Stap 10:
Daarna sal die stelsel die tydskerm en kieslysopsies afdruk, soos in figuur 9 getoon word.
Stap 11: Toegang tot SD -kaartmodule -data met Arduino
Na die monitering van die JLCPCB Datalogger met die temperatuursensor met Arduino, is dit nodig om die geheue kaart te verwyder en toegang tot die data op die rekenaar te verkry.
Om die data met 'n beter kwaliteit te sien en te ontleed, moet u alle inligting van die tekslêer uitvoer / kopieer na Excel, waarna u grafieke kan teken en die resultate kan ontleed.
Stap 12: Gevolgtrekking
Met die JLCPCB -datalogger met 'n temperatuursensor met Arduino kan ons, benewens die temperatuurmeting, ook inligting oor die temperatuurgedrag van die pasiënt oor 'n tydperk opneem.
Met hierdie gestoorde data is dit moontlik om te analiseer en te verstaan hoe die temperatuur van die pasiënt wat deur COVID 19 besmet is, optree.
Daarbenewens is dit moontlik om die temperatuurvlak te evalueer en die waarde daarvan te assosieer met die toediening van 'n soort medikasie.
Daarom wil die JLCPCB -datalogger met temperatuursensor vir Arduino deur middel van hierdie data dokters en verpleegsters help om die gedrag van pasiënte te bestudeer.
Ten slotte bedank ons die onderneming JLCPCB vir die ondersteuning van die ontwikkeling van die projek en hoop dat u dit kan gebruik
Alle lêers kan deur enige gebruiker gratis afgelaai en gebruik word.
Aanbeveel:
Aktiewe laagpasfilter RC toegepas in projekte met Arduino: 4 stappe
Aktiewe laagdeurlaatfilter RC toegepas in projekte met Arduino: Die laagdeurlaatfilter is uitstekende elektroniese stroombane om parasitiese seine van u projekte uit te filter. 'N Algemene probleem in projekte met Arduino en stelsels met sensors wat naby kragkringe werk, is die teenwoordigheid van' parasitiese 'seine
Muurhouer vir iPad as bedieningspaneel vir tuisautomatisering, met behulp van servo -beheerde magneet om die skerm te aktiveer: 4 stappe (met foto's)
Muurhouer vir iPad as 'n bedieningspaneel vir tuisautomatisering, met behulp van 'n servo -beheerde magneet om die skerm te aktiveer: Ek het die afgelope tyd baie tyd spandeer om dinge in en om my huis te outomatiseer. Ek gebruik Domoticz as my Home Automation -toepassing, sien www.domoticz.com vir meer inligting. In my soeke na 'n dashboard -toepassing wat alle Domoticz -inligting saam wys
IoT -temperatuursensor met ESP8266: 6 stappe (met foto's)
IoT Temperatuur Sensor Met ESP8266: Ek is geïnspireer om 'n temperatuursensor te skep wat ek via wifi kan monitor. Hierdie projek is nie nuut nie, maar ek hou van die idee om 'n intermediêre laag vir beveiliging te hê en om nie die poort in u router na u IoT -toestel te hoef oop te maak nie
Laserwyser vir brille gemonteer vir mense met bewegingsgestremdhede: 9 stappe (met foto's)
Laserwyser vir brille vir mense met bewegingsgestremdhede: Mense met ernstige bewegingsgestremdhede soos serebrale gestremdheid het dikwels ingewikkelde kommunikasiebehoeftes. Dit kan van hulle verwag word om borde met die alfabet te gebruik of woorde wat gereeld daarop gedruk word om kommunikasie te vergemaklik. Baie
SENSOR SUHU DENGAN LCD DAN LED (maak temperatuursensor met LCD en LED): 6 stappe (met foto's)
SENSOR SUHU DENGAN LCD DAN LED (vervaardiging van temperatuursensor met LCD en LED): hier kan u 'n universele ontvanger van die Universiteit en die Verenigde State van Amerika gebruik. Ons kan ook hierdie e -posadres gebruik, en die sensor in