Satura rādītājs:

Arduino temperatūras sensors, kas piemērots COVID 19: 12 soļi (ar attēliem)
Arduino temperatūras sensors, kas piemērots COVID 19: 12 soļi (ar attēliem)

Video: Arduino temperatūras sensors, kas piemērots COVID 19: 12 soļi (ar attēliem)

Video: Arduino temperatūras sensors, kas piemērots COVID 19: 12 soļi (ar attēliem)
Video: DIY Waterproof Temperature Sensor Project using Arduino #shorts 2024, Novembris
Anonim
Temperatūras sensors Arduino, piemērots COVID 19
Temperatūras sensors Arduino, piemērots COVID 19

Arduino temperatūras sensors ir pamatelements, kad vēlamies izmērīt cilvēka ķermeņa procesora temperatūru.

Temperatūras sensoram ar Arduino jābūt saskarē vai tuvu, lai saņemtu un izmērītu siltuma līmeni. Tā darbojas termometri.

Šīs ierīces ārkārtīgi izmanto slimu cilvēku ķermeņa temperatūras mērīšanai, jo temperatūra ir viens no pirmajiem faktoriem, kas cilvēka organismā mainās, ja ir novirze vai slimība.

Viena no slimībām, kas maina cilvēka ķermeņa temperatūru, ir Covid 19. Tāpēc mēs parādām galvenos simptomus:

Klepus Nogurums Apgrūtināta elpošana (smagi gadījumi) Drudzis Drudzis ir simptoms, kura galvenā iezīme ir ķermeņa temperatūras paaugstināšanās. Šīs slimības gadījumā mums pastāvīgi jāuzrauga šie simptomi.

Tādējādi mēs izstrādāsim projektu, lai uzraudzītu temperatūru un saglabātu šos datus atmiņas kartē, izmantojot JLCPCB datu katalogu, izmantojot temperatūras sensoru ar Arduino.

Tāpēc šajā rakstā jūs uzzināsit:

  • Kā darbojas JLCPCB datu reģistrators ar temperatūras sensoru ar Arduino?
  • Kā darbojas temperatūras sensors ar Arduino.
  • Kā darbojas DS18B20 temperatūras sensors ar Arduino
  • Izmantojiet pogas ar vairākām funkcijām.

Tālāk mēs parādīsim, kā jūs attīstīsit savu JLCPCB datu reģistratoru, izmantojot Arduino temperatūras sensoru.

Piegādes

Arduino UNO

JLCPCB iespiedshēmas plate

DS18B20 temperatūras sensors

Arduino Nano R3

Džemperi

LCD displejs 16 x 2

Spiedpogas slēdzis

Rezistors 1kR

SD kartes modulis Arduino

1. solis: JLCPCB datu reģistratora izveide ar temperatūras sensoru ar Arduino

JLCPCB datu reģistratora konstrukcija ar temperatūras sensoru ar Arduino
JLCPCB datu reģistratora konstrukcija ar temperatūras sensoru ar Arduino

Kā jau minēts iepriekš, projekts sastāv no JLCPCB datu reģistratora izveidošanas ar temperatūras sensoru ar Arduino, un, izmantojot šos datus, mēs varam uzraudzīt ārstējamā pacienta temperatūru.

Tādējādi shēma ir parādīta attēlā iepriekš.

Tāpēc, kā redzat, šai shēmai ir DS18B20 temperatūras sensors ar Arduino, kas ir atbildīgs par pacienta temperatūras rādījumu mērīšanu.

Turklāt Arduino Nano būs atbildīgs par šo datu vākšanu un saglabāšanu SD kartes moduļa atmiņas kartē.

Katra informācija tiks saglabāta attiecīgajā laikā, kas tiks nolasīts no RTC moduļa DS1307.

Tādējādi, lai tiktu saglabāti temperatūras sensora ar Arduino dati, lietotājam šis process jāveic, izmantojot vadības izvēlni ar 16x2 LCD.

2. darbība:

Attēls
Attēls

Katra poga ir atbildīga par opcijas vadību, kā parādīts LCD ekrānā 16x2 2. attēlā.

Katra opcija ir atbildīga par funkcijas veikšanu sistēmā, kā parādīts zemāk.

  • Opcija M ir atbildīga par atmiņas kartē esošo datu mērīšanas un ierakstīšanas sākšanu.
  • Opcija H ir atbildīga par sistēmas stundu pielāgošanu.
  • Opcija O/P tiek izmantota, lai apstiprinātu datu ievadīšanu sistēmā vai apturētu datu ierakstīšanu atmiņas kartē.

Lai saprastu sistēmas vadības procesu, mēs sniegsim zemāk esošo kodu un apspriedīsim pakāpenisko JLCPCB datu reģistratora vadības sistēmu ar temperatūras sensoru ar Arduino.

#include // Bibliotēka ar visām DS18B20 sensora funkcijām

#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); // LCD 16x2 konfigurēšana vai 0x27 #define ONE_WIRE_BUS 8 // Digitālā tapa, lai savienotu DS18B20 sensoru // Definēt uma instancia do oneWire para comunicacao com o sensor OneWire oneWire (ONE_WIRE_BUS); Dalasas temperatūras sensori (& oneWire); DeviceAddress sensors1; Fails myFile; #define Buttonmeasure 2 #define Buttonadjusthour 3 #define Buttonok 4 bool pasākums = 0, Adjusthour = 0, ok = 0; boola mērījumu_stats = 0, pielāgošanas_stāvs = 0, ok_valsts = 0; bool pasākuma_process = 0, Adjust_process = 0; baits faktiskaisMin = 0, iepriekšējaisMin = 0; baits faktiskaisHour = 0, iepriekšējaisHour = 0; baits 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 (reizes); minUpdate = Datu laiks [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 (reizes); lcd.setCursor (0, 1); lcd.print ("Temperatūra:"); lcd.setCursor (14, 1); sensors.requestTemperatures (); pludiņš TempSensor = sensors.getTempCByIndex (0); lcd.print (TempSensor); minUpdate = Datu laiks [5]; }} void setup () {Serial.begin (9600); DS1307.begin (); sensor.begin (); 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 sistēma"); lcd.setCursor (3, 1); lcd.print ("Datalogger"); kavēšanās (2000); // Localiza e mostra enderecos dos sensores Serial.println ("Localizando sensores DS18B20…"); Serial.print ("Sensora lokalizācija veiksmīgi!"); Serial.print (sensors.getDeviceCount (), DEC); Serial.println ("Sensors"); 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."); atgriešanās; } DS1307.getDate (DataTime); lcd.clear (); sprintf (reizes, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (reizes); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); } void loop () {updateHour (); // Lasīšanas pogas stāvokļi pasākums = digitalRead (Buttonmeasure); Adjusthour = digitalRead (Buttonadjusthour); labi = digitalRead (Buttonok); ja (pasākums == 0 && pasākuma_valsts == 1) {pasākuma_valsts = 0; } ja (pasākums == 1 && pasākuma_valsts == 0 && pasākuma_process == 0) {pasākuma_process = 1; mēra_valsts = 1; ja (SD.eksistē ("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!"); } cits {Serial.println ("Criou o arquivo!"); myFile = SD.open ("temp.txt", FILE_WRITE); // Cria / Abre arquivo.txt myFile.close (); } kavēšanās (500); myFile.print ("Stunda:"); myFile.println ("Temperatūra"); DS1307.getDate (DataTime); faktiskaisMin = iepriekšējaisMin = Datu laiks [5]; sprintf (reizes, "%02d:%02d", DataTime [4], DataTime [5]); lcd.clear (); lcd.setCursor (5, 0); lcd.print (reizes); lcd.setCursor (0, 1); lcd.print ("Temperatūra:"); lcd.setCursor (14, 1); sensors.requestTemperatures (); pludiņš TempSensor = sensors.getTempCByIndex (0); lcd.print (TempSensor); } ja (Adjusthour == 0 && Adjusthour_state == 1) {Adjusthour_state = 0; } ja (Adjusthour == 1 && Adjusthour_state == 0 && intézkedés_process == 0) {Adjust_process = 1; } // ----------------------------------------------- --- Mērīšanas process --------------------------------------------- -------------- if (pasākuma_process == 1) {updateTemp (); baits contMin = 0, contHour = 0; DS1307.getDate (DataTime); faktiskaisMin = datu laiks [5]; // ------------------------------------------------ --------- Skaitīt minūtes --------------------------------------- ------------------- ja (faktiskaisMin! = iepriekšējaisMin) {contMin ++; iepriekšējaisMin = faktiskaisMin; } if (contMin == 5) {sprintf (reizes, "%02d:%02d", DataTime [4], DataTime [5]); sensors.requestTemperatures (); pludiņš TempSensor = sensors.getTempCByIndex (0); myFile.print (reizes); myFile.println (TempSensor); contMin = 0; } // ----------------------------------------------- ------------ Skaits stundas ------------------------------------ ---------------------- if (faktiskaisHour! = iepriekšējaisHour) {contHour ++; previousHour = faktiskaisHour; } ja (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print ("Pabeigts"); lcd.setCursor (5, 1); lcd.print ("Process"); pasākuma_process = 0; contHour = 0; } // ---------------------------------------------- Stāvoklis apturēt datu reģistrētāju ---------------------------------------------- ---- ja (labi == 1) {myFile.close (); lcd.clear (); lcd.setCursor (6, 0); lcd.print ("Apturēts"); lcd.setCursor (5, 1); lcd.print ("Process"); pasākuma_process = 0; kavēšanās (2000); lcd.clear (); DS1307.getDate (DataTime); sprintf (reizes, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (reizes); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); }} // ---------------------------------------------- ------- Pielāgojiet stundas ----------------------------------------- ---------------------- // Pielāgot stundu, ja (Adjust_process == 1) {lcd.clear (); DS1307.getDate (DataTime); lcd.setCursor (0, 0); lcd.print ("Pielāgot stundu:"); sprintf (reizes, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (reizes); // Stundu pielāgošana do {pasākums = digitalRead (Buttonmeasure); Adjusthour = digitalRead (Buttonadjusthour); labi = digitalRead (Buttonok); ja (pasākums == 0 && pasākuma_valsts == 1) {pasākuma_valsts = 0; } ja (pasākums == 1 && pasākuma_valsts == 0) {DataTime [4] ++; ja (DataTime [4]> 23) {DataTime [4] = 0; } mēra_valsts = 1; sprintf (reizes, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (reizes); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); } ja (Adjusthour == 0 && Adjusthour_state == 1) {Adjusthour_state = 0; } ja (Adjusthour == 1 && Adjusthour_state == 0) {DataTime [5] ++; ja (DataTime [5]> 59) {DataTime [5] = 0; } sprintf (reizes, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (reizes); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); Adjusthour_state = 1; } ja (labi == 1) {lcd.clear (); DS1307.getDate (DataTime); sprintf (reizes, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.print (reizes); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O"); pielāgot_process = 0; }} while (labi! = 1); } // ----------------------------------------------- ------- Beigu pielāgošanas stunda ---------------------------------------- -------------------}

Pirmkārt, mēs definējam visas bibliotēkas, lai kontrolētu moduļus un deklarētu mainīgos, kas izmantoti, programmējot JLCPCB datu katalogu ar Arduino temperatūras sensoru. Koda bloks ir parādīts zemāk.

3. darbība:

#include // Bibliotēka ar visām DS18B20 sensora funkcijām

#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); // LCD 16x2 konfigurēšana vai 0x27 #define ONE_WIRE_BUS 8 // Digitālā tapa, lai savienotu DS18B20 sensoru // Definēt uma instancia do oneWire para comunicacao com o sensor OneWire oneWire (ONE_WIRE_BUS); Dalasas temperatūras sensori (& oneWire); DeviceAddress sensors1; Fails myFile; #define Buttonmeasure 2 #define Buttonadjusthour 3 #define Buttonok 4 bool pasākums = 0, Adjusthour = 0, ok = 0; boola mērījumu_stats = 0, pielāgošanas_stāvs = 0, ok_valsts = 0; bool pasākuma_process = 0, Adjust_process = 0; baits faktiskaisMin = 0, iepriekšējaisMin = 0; baits faktiskaisHour = 0, iepriekšējaisHour = 0; baits minUpdate = 0; int pinoSS = 10; // Pin 53 para Mega / Pin 10 para UNO int DataTime [7];

Turpmāk mums ir spēkā neesamības iestatīšanas funkcija. Šo funkciju izmanto, lai konfigurētu tapas un ierīces inicializāciju, kā parādīts zemāk.

anulēts iestatījums ()

{Sērijas sākums (9600); DS1307.begin (); sensor.begin (); 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 sistēma"); lcd.setCursor (3, 1); lcd.print ("Datalogger"); kavēšanās (2000); // Localiza e mostra enderecos dos sensores Serial.println ("Localizando sensores DS18B20…"); Serial.print ("Sensora lokalizācija veiksmīgi!"); Serial.print (sensors.getDeviceCount (), DEC); Serial.println ("Sensors"); 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."); atgriešanās; } DS1307.getDate (DataTime); lcd.clear (); sprintf (reizes, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (reizes); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); }

Pirmkārt, tika sākta Arduino DS18B20 sērijas komunikācija, reālā laika pulkstenis un temperatūras sensors. Pēc ierīču inicializācijas un pārbaudes ziņojums ar izvēlnes opcijām tika izdrukāts 16x2 LCD ekrānā. Šis ekrāns ir parādīts 1. attēlā.

4. solis:

Pēc tam sistēma nolasa stundas un atjaunina vērtību, izsaucot funkciju updateHour. Tādējādi šīs funkcijas mērķis ir uzrādīt stundas vērtību katru minūti. Funkcijas koda bloks ir parādīts zemāk.

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 (reizes); minUpdate = Datu laiks [5]; }}

5. darbība:

Attēls
Attēls

Papildus stundu atjaunināšanai lietotājs var izvēlēties vienu no trim pogām, lai uzraudzītu pacientu ar temperatūras sensoru ar Arduino. Ķēde ir parādīta attēlā iepriekš.

6. darbība: JLCPCB datu kataloga vadības izvēlne

JLCPCB datu kataloga vadības izvēlne
JLCPCB datu kataloga vadības izvēlne

Pirmkārt, lietotājam jāpārbauda un jāpielāgo sistēmas darba laiks. Šis process tiek veikts, nospiežot otro pogu.

Nospiežot pogu, vajadzētu parādīties šāds ekrāns, kas parādīts attēlā iepriekš.

7. darbība:

Attēls
Attēls

Šajā ekrānā lietotājs varēs ievadīt stundu un minūšu vērtības no pogām, kas savienotas ar Arduino digitālajām 2. un 3. tapām. Pogas ir parādītas attēlā iepriekš.

Kodu daļa stundu kontrolei ir parādīta zemāk.

ja (Adjusthour == 0 && Adjusthour_state == 1)

{Adjusthour_state = 0; } ja (Adjusthour == 1 && Adjusthour_state == 0 && intézkedés_process == 0) {Adjust_process = 1; }

Nospiežot stundu pogu un mainīgā lieluma meet_process vērtību iestatot uz 0, nosacījums būs patiess, un mainīgais Adjust_process tiks iestatīts uz 1. Mainīgais meet_process tiek izmantots, lai signalizētu, ka sistēma uzrauga temperatūru. Ja tā vērtība ir 0, sistēma ļaus lietotājam ieiet laika iestatīšanas izvēlnē. Tāpēc pēc tam, kad mainīgais Adjust_process saņems vērtību 1, sistēma ievadīs laika pielāgošanas nosacījumu. Šis koda bloks ir parādīts zemāk.

// ------------------------------------------------ ----- Pielāgojiet stundas ------------------------------------------- --------------------

// Pielāgot stundu, ja (Adjust_process == 1) {lcd.clear (); DS1307.getDate (DataTime); lcd.setCursor (0, 0); lcd.print ("Pielāgot stundu:"); sprintf (reizes, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (reizes); // Stundu pielāgošana do {pasākums = digitalRead (Buttonmeasure); Adjusthour = digitalRead (Buttonadjusthour); labi = digitalRead (Buttonok); ja (pasākums == 0 && pasākuma_valsts == 1) {pasākuma_valsts = 0; } ja (pasākums == 1 && pasākuma_valsts == 0) {DataTime [4] ++; ja (DataTime [4]> 23) {DataTime [4] = 0; } mēra_valsts = 1; sprintf (reizes, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (reizes); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); } ja (Adjusthour == 0 && Adjusthour_state == 1) {Adjusthour_state = 0; } ja (Adjusthour == 1 && Adjusthour_state == 0) {DataTime [5] ++; ja (DataTime [5]> 59) {DataTime [5] = 0; } sprintf (reizes, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (reizes); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); Adjusthour_state = 1; } ja (labi == 1) {lcd.clear (); DS1307.getDate (DataTime); sprintf (reizes, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.print (reizes); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O"); pielāgot_process = 0; }} while (labi! = 1); }

Šādā gadījumā sistēma parādīs ziņojumu, kas parādīts 4. attēlā, un pēc tam gaidīs, kamēr vērtības iekšēji pielāgosies cilpas cilnē. Pielāgojot stundas, šo pogu funkcijas ir mainītas, tas ir, tās ir daudzfunkcionālas.

Tas ļauj izmantot pogu vairākām funkcijām un samazināt sistēmas sarežģītību.

Tādā veidā lietotājs pielāgos stundu un minūšu vērtību un pēc tam saglabās datus sistēmā, nospiežot pogu Labi.

Kā redzat, sistēma nolasīs 3 pogas, kā parādīts zemāk.

pasākums = digitalRead (Buttonmeasure);

Adjusthour = digitalRead (Buttonadjusthour); labi = digitalRead (Buttonok);

Ņemiet vērā, ka mērīšanas poga (Buttonmeasure) ir mainījusi savu funkciju. Tagad to izmantos, lai pielāgotu stundu vērtības, kā parādīts zemāk. Šie divi nosacījumi ir līdzīgi un tiek izmantoti, lai pielāgotu stundas un minūtes, kā parādīts iepriekš.

ja (pasākums == 0 && pasākuma_valsts == 1)

{pasākuma_valsts = 0; } ja (pasākums == 1 && pasākuma_valsts == 0) {DataTime [4] ++; ja (DataTime [4]> 23) {DataTime [4] = 0; } mēra_valsts = 1; sprintf (reizes, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (reizes); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); } ja (Adjusthour == 0 && Adjusthour_state == 1) {Adjusthour_state = 0; } ja (Adjusthour == 1 && Adjusthour_state == 0) {DataTime [5] ++; ja (DataTime [5]> 59) {DataTime [5] = 0; } sprintf (reizes, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (reizes); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); Adjusthour_state = 1; }

Tāpēc katru reizi, nospiežot vienu no divām pogām, tiks mainīta DataTime vektora 4. un 5. pozīcijas vērtība, un, otrkārt, šīs vērtības tiks saglabātas DS1307 atmiņā.

Pēc pielāgojumiem lietotājam ir jānoklikšķina uz pogas Labi, lai pabeigtu procesu. Kad notiek šis notikums, sistēma izpildīs šādas koda rindas.

ja (labi == 1)

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

Tas ievadīs iepriekš minēto nosacījumu un parādīs lietotājam stundas ziņojumu un opciju izvēlni.

Visbeidzot, lietotājam jāsāk pacienta uzraudzības process, izmantojot temperatūras sensoru, izmantojot Arduino JLCPCB Datalogger.

Lai to izdarītu, lietotājam jānospiež mērīšanas poga, kas ir savienota ar 2. ciparu tapu.

Pēc tam sistēma veiks nolasīšanu ar Arduino temperatūras sensoru un saglabās to atmiņas kartē. Ķēdes reģions ir parādīts attēlā iepriekš.

8. darbība

Attēls
Attēls

Tāpēc, nospiežot pogu, tiks izpildīta šāda koda daļa.

ja (pasākums == 0 && pasākuma_valsts == 1)

{pasākuma_valsts = 0; } ja (pasākums == 1 && pasākuma_valsts == 0 && pasākuma_process == 0) {pasākuma_process = 1; mēra_valsts = 1; ja (SD.eksistē ("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!"); } cits {Serial.println ("Criou o arquivo!"); myFile = SD.open ("temp.txt", FILE_WRITE); // Cria / Abre arquivo.txt myFile.close (); } kavēšanās (500); myFile.print ("Stunda:"); myFile.println ("Temperatūra"); DS1307.getDate (DataTime); faktiskaisMin = iepriekšējaisMin = Datu laiks [5]; sprintf (reizes, "%02d:%02d", DataTime [4], DataTime [5]); lcd.clear (); lcd.setCursor (5, 0); lcd.print (reizes); lcd.setCursor (0, 1); lcd.print ("Temperatūra:"); lcd.setCursor (14, 1); sensors.requestTemperatures (); pludiņš TempSensor = sensors.getTempCByIndex (0); lcd.print (TempSensor); }

Iepriekš minētajā koda daļā sistēma piešķirs mainīgajam lielumam meet_process vērtību 1. Tā ir atbildīga par atļauju saglabāt datus SD kartē.

Turklāt sistēma pārbaudīs, vai teksta fails ar datu žurnālu pastāv vai ne. Ja ir fails, sistēma izdzēsīs un izveidos jaunu, lai saglabātu datus.

Pēc tam teksta failā tiks izveidotas divas kolonnas: viena stundām un otra temperatūrai.

Pēc tam LCD ekrānā tiks parādītas stundas un temperatūra, kā parādīts attēlā iepriekš.

Pēc tam koda plūsma izpildīs šādu programmas bloku.

ja (pasākuma_process == 1)

{updateTemp (); baits contMin = 0, contHour = 0; DS1307.getDate (DataTime); faktiskaisMin = datu laiks [5]; // ------------------------------------------------ --------- Skaitīt minūtes --------------------------------------- ------------------- ja (faktiskaisMin! = iepriekšējaisMin) {contMin ++; iepriekšējaisMin = faktiskaisMin; } if (contMin == 5) {sprintf (reizes, "%02d:%02d", DataTime [4], DataTime [5]); sensors.requestTemperatures (); pludiņš TempSensor = sensors.getTempCByIndex (0); myFile.print (reizes); myFile.println (TempSensor); contMin = 0; } // ----------------------------------------------- ------------ Skaits stundas ------------------------------------ ---------------------- if (faktiskaisHour! = iepriekšējaisHour) {contHour ++; previousHour = faktiskaisHour; } ja (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print ("Pabeigts"); lcd.setCursor (5, 1); lcd.print ("Process"); pasākuma_process = 0; contHour = 0; } // ---------------------------------------------- Stāvoklis lai apturētu datu reģistrētāju -----

Pirmkārt, tiks izpildīta funkcija updateTemp (). Tas ir līdzīgs funkcijai updateHour (); tomēr tas parāda temperatūru ik pēc 1 minūtes.

Pēc tam sistēma apkopos laika datus no reālā laika pulksteņa un saglabās pašreizējo minūtes vērtību mainīgajā mainMinMin.

Pēc tam tā pārbaudīs, vai mainīgais min ir mainīts saskaņā ar turpmāk sniegto nosacījumu

ja (faktiskaisMin! = iepriekšējaisMin)

{contMin ++; iepriekšējaisMin = faktiskaisMin; }

Tāpēc, ja pašreizējais minūšu mainīgais atšķiras no iepriekšējās vērtības, tas nozīmē, ka ir notikušas vērtības izmaiņas. Tādā veidā nosacījums būs patiess un minūšu skaita vērtība tiks palielināta (turpinājums) un pašreizējā vērtība mainīgajam tiks piešķirts iepriekšējaisMin, lai saglabātu tā iepriekšējo vērtību.

Tāpēc, ja šī skaitļa vērtība ir vienāda ar 5, tas nozīmē, ka ir pagājušas 5 minūtes un sistēmai ir jāveic jauna temperatūras nolasīšana un jāsaglabā stundu un temperatūras vērtība SD kartes žurnāla failā.

ja (turpinājums == 5)

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

Tādā veidā šis process tiks atkārtots, līdz tiek sasniegta 5 stundu vērtība, kad tiek novērota pacienta temperatūra ar temperatūras sensoru ar Arduino.

Koda daļa ir parādīta zemāk un ir līdzīga iepriekšminēto minūšu skaitam.

// ------------------------------------------------ ----------- Skaitīšanas stundas ------------------------------------- ---------------------

if (faktiskaisStunda! = iepriekšējaisStunda) {contHour ++; previousHour = faktiskaisHour; } ja (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print ("Pabeigts"); lcd.setCursor (5, 1); lcd.print ("Process"); pasākuma_process = 0; contHour = 0; }

Pēc 5 stundu uzraudzības sasniegšanas sistēma aizvērs žurnālfailu un parādīs lietotājam ziņojumu "Pabeigts process".

Turklāt lietotājs var nospiest pogu Labi/Pauze, lai pārtrauktu datu ierakstīšanu. Kad tas notiek, tiks izpildīts šāds koda bloks.

// ---------------------------------------------- Nosacījums līdz apturiet datu reģistrētāju ----------------------------------------------- ---

ja (labi == 1) {myFile.close (); lcd.clear (); lcd.setCursor (6, 0); lcd.print ("Apturēts"); lcd.setCursor (5, 1); lcd.print ("Process"); pasākuma_process = 0; kavēšanās (2000); lcd.clear (); DS1307.getDate (DataTime); sprintf (reizes, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (reizes); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); }

9. darbība

Attēls
Attēls

Pēc tam sistēma aizvērs failu un parādīs ziņojumu "Apturēts process", kā parādīts 8. attēlā.

10. darbība:

Attēls
Attēls

Pēc tam sistēma izdrukās laika ekrānu un izvēlnes opcijas, kā parādīts 9. attēlā.

11. darbība. Piekļuve SD kartes moduļa datiem, izmantojot Arduino

Piekļuve SD kartes moduļa datiem ar Arduino
Piekļuve SD kartes moduļa datiem ar Arduino

Pēc JLCPCB datu kataloga uzraudzības procesa ar temperatūras sensoru ar Arduino ir nepieciešams noņemt atmiņas karti un piekļūt datiem datorā.

Lai labāk apskatītu un analizētu datus, eksportējiet / kopējiet visu teksta faila informāciju programmā Excel. Pēc tam varat uzzīmēt grafikus un analizēt iegūtos rezultātus.

12. solis. Secinājums

JLCPCB datu reģistrators ar temperatūras sensoru ar Arduino ļauj papildus temperatūras mērīšanai arī noteiktā laika periodā ierakstīt informāciju par pacienta temperatūras uzvedību.

Izmantojot šos saglabātos datus, ir iespējams analizēt un saprast, kā uzvedas ar Covid 19 inficētā pacienta temperatūra.

Turklāt ir iespējams novērtēt temperatūras līmeni un saistīt tā vērtību ar kāda veida zāļu lietošanu.

Tāpēc, izmantojot šos datus, JLCPCB datu kataloga ar temperatūras sensoru Arduino mērķis ir palīdzēt ārstiem un medmāsām pētīt pacientu uzvedību.

Visbeidzot, mēs pateicamies uzņēmumam JLCPCB par atbalstu projekta attīstībai un ceram, ka varat to izmantot

Visus failus var brīvi lejupielādēt un izmantot ikviens lietotājs.

Ieteicams: