Съдържание:

Температурен сензор за Arduino Приложен за COVID 19: 12 стъпки (със снимки)
Температурен сензор за Arduino Приложен за COVID 19: 12 стъпки (със снимки)

Видео: Температурен сензор за Arduino Приложен за COVID 19: 12 стъпки (със снимки)

Видео: Температурен сензор за Arduino Приложен за COVID 19: 12 стъпки (със снимки)
Видео: Scentroid's CTAir Continuous Urban Air Quality Monitor Seminar A 12.08.2020 (Subtitled) 2024, Ноември
Anonim
Температурен сензор за Arduino Приложен за COVID 19
Температурен сензор за Arduino Приложен за COVID 19

Температурният сензор за Arduino е основен елемент, когато искаме да измерим температурата на процесор на човешкото тяло.

Температурният сензор с Arduino трябва да е в контакт или близо, за да приема и измерва нивото на топлина. Така работят термометрите.

Тези устройства се използват изключително за измерване на телесната температура на болни хора, тъй като температурата е един от първите фактори, които се променят в човешкото тяло, когато има аномалия или заболяване.

Едно от заболяванията, които променят температурата на човешкото тяло, е COVID 19. Затова представяме основните симптоми:

Кашлица Умора Затруднено дишане (Тежки случаи) Треска Треска е симптом, чиято основна характеристика е повишаване на телесната температура. При това заболяване трябва постоянно да следим тези симптоми.

По този начин ще разработим проект за наблюдение на температурата и съхраняване на тези данни на карта с памет чрез JLCPCB Datalogger, използвайки температурен сензор с Arduino.

Затова в тази статия ще научите:

  • Как работи JLCPCB Datalogger с температурен сензор с Arduino?
  • Как работи температурният сензор с Arduino.
  • Как работи температурният сензор DS18B20 с Arduino
  • Използвайте бутони с множество функции.

След това ще ви покажем как ще разработите вашия JLCPCB Datalogger с помощта на сензора за температура Arduino.

Консумативи

Arduino UNO

Печатна платка на JLCPCB

DS18B20 Температурен сензор

Arduino Nano R3

Джъмпери

LCD дисплей 16 x 2

Превключвател с бутон

Резистор 1kR

Модул SD карта за Arduino

Стъпка 1: Изграждане на JLCPCB Datalogger с температурен сензор с Arduino

Конструкция на JLCPCB Datalogger с температурен сензор с Arduino
Конструкция на JLCPCB Datalogger с температурен сензор с Arduino

Както бе споменато по -горе, проектът се състои в създаване на JLCPCB Datalogger с температурен сензор с Arduino и чрез тези данни можем да наблюдаваме температурата на лекувания пациент.

По този начин веригата е показана на фигурата по -горе.

Следователно, както можете да видите, тази схема има температурен сензор DS18B20 с Arduino, който е отговорен за измерване на показанията на температурата на пациента.

В допълнение, Arduino Nano ще отговаря за събирането на тези данни и съхраняването им на картата с памет на модула SD карта.

Всяка информация ще бъде записана със съответното време, което ще бъде прочетено от RTC модула DS1307.

По този начин, за да бъдат запазени данните от температурния сензор с Arduino, потребителят трябва да извърши процеса чрез Контролното меню с 16x2 LCD.

Стъпка 2:

Образ
Образ

Всеки бутон е отговорен за контролиране на опция, както е показано на LCD екрана 16x2 на фигура 2.

Всяка опция отговаря за изпълнението на функция в системата, както е показано по -долу.

  • Вариант М е отговорен за стартиране на измерването и запис на данни на картата с памет.
  • Опция Н отговаря за регулиране на системните часове.
  • Опция O/P се използва за потвърждаване на въвеждането на данни в системата или за поставяне на пауза при запис на данни в картата с памет.

За да разберем процеса на управление на системата, ще предоставим кода по-долу и ще обсъдим поетапната система за управление на JLCPCB Datalogger с температурен сензор с Arduino.

#include // Библиотека с всички функции на сензора DS18B20

#include #include // Biblioteca I2C до LCD 16x2 #include // Biblioteca de Comunicacao I2C #include // OneWire библиотека за сензор DS18B20 #include #include LiquidCrystal_I2C lcd (0x27, 16, 2); // Конфигуриране на endereco за LCD 16x2 за 0x27 #define ONE_WIRE_BUS 8 // Цифров ПИН за свързване на сензора DS18B20 // Дефиниране на инсталацията за oneWire за комуникация com сензор OneWire oneWire (ONE_WIRE_BUS); Даларски сензори за температура (& oneWire); DeviceAddress сензор1; Файл myFile; #дефинирам Buttonmeasure 2 #define Buttonadjusthour 3 #define Buttonok 4 bool мярка = 0, Adjusthour = 0, ok = 0; bool мярка_състояние = 0, коригирайте час_състояние = 0, ок_състояние = 0; bool измерване_процес = 0, коригиране_процес = 0; байт actualMin = 0, previousMin = 0; байт actualHour = 0, previousHour = 0; байт minUpdate = 0; int pinoSS = 10; // Pin 53 за 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 (пъти); 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 (пъти); lcd.setCursor (0, 1); lcd.print ("Температура:"); lcd.setCursor (14, 1); sensors.requestTemperatures (); плаващ TempSensor = sensors.getTempCByIndex (0); lcd.print (TempSensor); minUpdate = DataTime [5]; }} void setup () {Serial.begin (9600); DS1307.begin (); sensors.begin (); pinMode (pinoSS, OUTPUT); // Деклариране на pinoSS като самата Wire.begin (); // Inicializacao da Comunicacao I2C lcd.init (); // Inicializacao do LCD lcd.backlight (); lcd.setCursor (3, 0); lcd.print ("Темп система"); lcd.setCursor (3, 1); lcd.print ("Datalogger"); забавяне (2000); // Localiza e mostra enderecos dos sensores Serial.println ("Localizando sensores DS18B20 …"); Serial.print ("Локализацията на сензора успешно!"); Serial.print (sensors.getDeviceCount (), DEC); Serial.println ("Сензор"); if (SD.begin ()) {// Inicializa o SD Card Serial.println ("SD карта pronto para uso."); // Imprime na tela} else {Serial.println ("Falha na inicialização do SD Card."); връщане; } DS1307.getDate (DataTime); lcd.clear (); sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (пъти); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); } void loop () {updateHour (); // Бутон за четене състояния мярка = digitalRead (Buttonmeasure); Adjuhour = digitalRead (Buttonadjusthour); ok = digitalRead (Buttonok); if (мярка == 0 && мярка_състояние == 1) {мярка_състояние = 0; } ако (мярка == 1 && мярка_състояние == 0 && мярка_процес == 0) {мярка_процес = 1; state_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 (); } забавяне (500); myFile.print ("Час:"); myFile.println ("Температура"); DS1307.getDate (DataTime); actualMin = previousMin = DataTime [5]; sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); lcd.clear (); lcd.setCursor (5, 0); lcd.print (пъти); lcd.setCursor (0, 1); lcd.print ("Температура:"); lcd.setCursor (14, 1); sensors.requestTemperatures (); плаващ TempSensor = sensors.getTempCByIndex (0); lcd.print (TempSensor); } ако (приспособи час == 0 && приспособи час_състояние == 1) {приспособи час_състояние = 0; } ако (приспособи час == 1 && приспособи час_ състояние == 0 && измери_процес == 0) {приспособи_процес = 1; } // ----------------------------------------------- --- Измервателен процес --------------------------------------------- -------------- if (process_process == 1) {updateTemp (); байт contMin = 0, contHour = 0; DS1307.getDate (DataTime); actualMin = DataTime [5]; // ------------------------------------------------ --------- Брой минути --------------------------------------- ------------------- if (actualMin! = previousMin) {contMin ++; previousMin = действителенMin; } if (contMin == 5) {sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); sensors.requestTemperatures (); плаващ TempSensor = sensors.getTempCByIndex (0); myFile.print (пъти); myFile.println (TempSensor); contMin = 0; } // ----------------------------------------------- ------------ Брой часове ------------------------------------ ---------------------- if (actualHour! = previousHour) {contHour ++; previousHour = действителен час; } if (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print ("Готово"); lcd.setCursor (5, 1); lcd.print ("Процес"); измерване_процес = 0; contHour = 0; } // ---------------------------------------------- Състояние за спиране на регистратора на данни ---------------------------------------------- ---- if (ok == 1) {myFile.close (); lcd.clear (); lcd.setCursor (6, 0); lcd.print ("Стопирано"); lcd.setCursor (5, 1); lcd.print ("Процес"); измерване_процес = 0; забавяне (2000); lcd.clear (); DS1307.getDate (DataTime); sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (пъти); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); }} // ---------------------------------------------- ------- Регулиране на часовете ----------------------------------------- ---------------------- // Регулирайте час, ако (Adjust_process == 1) {lcd.clear (); DS1307.getDate (DataTime); lcd.setCursor (0, 0); lcd.print ("Коригиране на час:"); sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (пъти); // Hour Adjust do {asure = digitalRead (Buttonmeasure); Adjuhour = digitalRead (Buttonadjusthour); ok = digitalRead (Buttonok); if (мярка == 0 && мярка_състояние == 1) {мярка_състояние = 0; } if (измерване == 1 && измерване_състояние == 0) {DataTime [4] ++; if (DataTime [4]> 23) {DataTime [4] = 0; } измерване_състояние = 1; sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (пъти); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); } ако (приспособи час == 0 && приспособи час_състояние == 1) {приспособи час_състояние = 0; } if (Adjustour == 1 && Adjustour_state == 0) {DataTime [5] ++; if (DataTime [5]> 59) {DataTime [5] = 0; } sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (пъти); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); adjugour_state = 1; } if (ok == 1) {lcd.clear (); DS1307.getDate (DataTime); sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.print (пъти); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O"); Adjust_process = 0; }} while (ok! = 1); } // ----------------------------------------------- ------- Краен час за коригиране ---------------------------------------- -------------------}

Първо, ние дефинираме всички библиотеки за управление на модулите и деклариране на променливи, използвани при програмиране на JLCPCB Datalogger с температурен сензор за Arduino. Кодовият блок е показан по -долу.

Стъпка 3:

#include // Библиотека с всички функции на сензора DS18B20

#include #include // Biblioteca I2C до LCD 16x2 #include // Biblioteca de Comunicacao I2C #include // OneWire библиотека за сензор DS18B20 #include #include LiquidCrystal_I2C lcd (0x27, 16, 2); // Конфигуриране на endereco до LCD 16x2 за 0x27 #define ONE_WIRE_BUS 8 // Цифров щифт за свързване на сензора DS18B20 // Дефиниране на инсталацията за oneWire за комуникация com сензор OneWire oneWire (ONE_WIRE_BUS); Даларски сензори за температура (& oneWire); DeviceAddress сензор1; Файл myFile; #дефинирам Buttonmeasure 2 #define Buttonadjusthour 3 #define Buttonok 4 bool мярка = 0, Adjusthour = 0, ok = 0; bool мярка_състояние = 0, коригирайте час_състояние = 0, ок_състояние = 0; bool измерване_процес = 0, коригиране_процес = 0; байт actualMin = 0, previousMin = 0; байт actualHour = 0, previousHour = 0; байт minUpdate = 0; int pinoSS = 10; // Pin 53 за Mega / Pin 10 para UNO int DataTime [7];

По -нататък имаме функцията за настройка на празнотата. Тази функция се използва за конфигуриране на пиновете и инициализацията на устройството, както е показано по -долу.

void setup ()

{Serial.begin (9600); DS1307.begin (); sensors.begin (); pinMode (pinoSS, OUTPUT); // Декларираме pinoSS като самата Wire.begin (); // Inicializacao da Comunicacao I2C lcd.init (); // Inicializacao do LCD lcd.backlight (); lcd.setCursor (3, 0); lcd.print ("Темп система"); lcd.setCursor (3, 1); lcd.print ("Datalogger"); забавяне (2000); // Localiza e mostra enderecos dos sensores Serial.println ("Localizando sensores DS18B20 …"); Serial.print ("Локализацията на сензора успешно!"); Serial.print (sensors.getDeviceCount (), DEC); Serial.println ("Сензор"); if (SD.begin ()) {// Inicializa o SD Card Serial.println ("SD карта pronto para uso."); // Imprime na tela} else {Serial.println ("Falha na inicialização do SD Card."); връщане; } DS1307.getDate (DataTime); lcd.clear (); sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (пъти); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); }

Първо бяха стартирани серийната комуникация, часовникът в реално време и температурният сензор за Arduino DS18B20. След инициализиране и тестване на устройствата съобщението с опциите на менюто беше отпечатано на 16x2 LCD екрана. Този екран е показан на фигура 1.

Стъпка 4:

След това системата чете часовете и актуализира стойността, като извика функцията updateHour. По този начин тази функция има за цел да представя часовата стойност всяка минута. Блокът с функционален код е показан по -долу.

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 (пъти); minUpdate = DataTime [5]; }}

Стъпка 5:

Образ
Образ

В допълнение към актуализирането на часовете, потребителят може да избере един от трите бутона за наблюдение на пациента с температурен сензор с Arduino. Схемата е показана на фигурата по -горе.

Стъпка 6: Контролно меню на JLCPCB Datalogger

Контролно меню на JLCPCB Datalogger
Контролно меню на JLCPCB Datalogger

Първо, потребителят трябва да провери и регулира системните часове. Този процес се извършва при натискане на втория бутон.

Когато бутонът е натиснат, трябва да се появи следният екран, който е показан на фигурата по -горе.

Стъпка 7:

Образ
Образ

От този екран потребителят ще може да въведе стойностите за час и минута от бутоните, свързани към цифрови щифтове 2 и 3 на Arduino. Бутоните са показани на фигурата по -горе.

Кодовата част за контролиране на часовете е показана по -долу.

ако (коригирайте час == 0 && коригирайте час_състояние == 1)

{Adjuhour_state = 0; } ако (приспособи час == 1 && приспособи час_ състояние == 0 && измери_процес == 0) {приспособи_процес = 1; }

Когато бутонът за часове е натиснат и променливата mjera_процес е зададена на 0, условието ще бъде вярно, а променливата настройка_процес ще бъде настроена на 1. Променливата мярка_процес се използва за сигнализиране, че системата следи температурата. Когато стойността му е 0, системата ще позволи на потребителя да влезе в менюто за настройка на часа. Следователно, след като променливата Adjust_process получи стойност 1, системата ще влезе в условие за настройка на времето. Този код код е показан по -долу.

// ------------------------------------------------ ----- Регулирайте часовете ------------------------------------------- --------------------

// Коригиране на час, ако (Adjust_process == 1) {lcd.clear (); DS1307.getDate (DataTime); lcd.setCursor (0, 0); lcd.print ("Adjust Hour:"); sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (пъти); // Hour Adjust do {asure = digitalRead (Buttonmeasure); Adjuhour = digitalRead (Buttonadjusthour); ok = digitalRead (Buttonok); if (мярка == 0 && мярка_състояние == 1) {мярка_състояние = 0; } if (измерване == 1 && измерване_състояние == 0) {DataTime [4] ++; if (DataTime [4]> 23) {DataTime [4] = 0; } измерване_състояние = 1; sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (пъти); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); } ако (приспособи час == 0 && приспособи час_състояние == 1) {приспособи час_състояние = 0; } if (Adjustour == 1 && Adjustour_state == 0) {DataTime [5] ++; if (DataTime [5]> 59) {DataTime [5] = 0; } sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (пъти); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); adjugour_state = 1; } if (ok == 1) {lcd.clear (); DS1307.getDate (DataTime); sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.print (пъти); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O"); Adjust_process = 0; }} while (ok! = 1); }

В това състояние системата ще покаже съобщението, показано на фигура 4 и след това изчакайте стойностите да се коригират вътрешно в цикъла while. Когато настройвате часовете, тези бутони имат променени функции, тоест те са многофункционални.

Това ви позволява да използвате бутон за повече от една функция и да намалите сложността на системата.

По този начин потребителят ще регулира стойността на часовете и минутите и след това ще запише данните в системата при натискане на бутона Ok.

Както можете да видите, системата ще прочете трите бутона, както е показано по -долу.

мярка = digitalRead (Buttonmeasure);

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

Обърнете внимание, че бутонът за измерване (Buttonmeasure) е променил своята функция. Сега ще се използва за регулиране на стойностите на часовете, както е показано по -долу. Следните две условия са подобни и се използват за регулиране на часовете и минутите, както е показано по -горе.

ако (мярка == 0 && мярка_състояние == 1)

{мярка_състояние = 0; } if (измерване == 1 && измерване_състояние == 0) {DataTime [4] ++; if (DataTime [4]> 23) {DataTime [4] = 0; } измерване_състояние = 1; sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (пъти); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); } ако (приспособи час == 0 && приспособи час_състояние == 1) {приспособи час_състояние = 0; } if (Adjustour == 1 && Adjustour_state == 0) {DataTime [5] ++; if (DataTime [5]> 59) {DataTime [5] = 0; } sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (пъти); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); adjugour_state = 1; }

Следователно, всеки път, когато се натисне един от двата бутона, стойността на позиции 4 и 5 на вектора DataTime ще бъде променена и второ, тези стойности ще бъдат записани в паметта на DS1307.

След корекциите, потребителят трябва да кликне върху бутона Ok, за да завърши процеса. Когато това събитие настъпи, системата ще изпълни следните редове код.

ако (ок == 1)

{lcd.clear (); DS1307.getDate (DataTime); sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.print (пъти); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O"); Adjust_process = 0; }

Той ще въведе горното условие и ще представи на потребителя съобщението за час и менюто с опции.

И накрая, потребителят трябва да започне процеса на наблюдение на пациента чрез температурния сензор с Arduino JLCPCB Datalogger.

За да направите това, потребителят трябва да натисне бутона за измерване, който е свързан към цифров извод 2.

След това системата ще извърши отчитането с температурния сензор за Arduino и ще го запише на картата с памет. Областта на веригата е показана на фигурата по -горе.

Стъпка 8:

Образ
Образ

Следователно, когато бутонът е натиснат, следващата част от кода ще бъде изпълнена.

ако (мярка == 0 && мярка_състояние == 1)

{мярка_състояние = 0; } ако (мярка == 1 && мярка_състояние == 0 && мярка_процес == 0) {мярка_процес = 1; state_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 (); } забавяне (500); myFile.print ("Час:"); myFile.println ("Температура"); DS1307.getDate (DataTime); actualMin = previousMin = DataTime [5]; sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); lcd.clear (); lcd.setCursor (5, 0); lcd.print (пъти); lcd.setCursor (0, 1); lcd.print ("Температура:"); lcd.setCursor (14, 1); sensors.requestTemperatures (); плаващ TempSensor = sensors.getTempCByIndex (0); lcd.print (TempSensor); }

В горната част на кода системата ще присвои стойност 1 на променливата mere_process. Той отговаря за запазването на данните на SD картата.

Освен това системата ще провери дали съществува текстов файл с дневник на данни или не. Ако има файл, системата ще изтрие и създаде нов, за да съхранява данните.

След това той ще създаде две колони: една за часовете и една за температурата в текстовия файл.

След това той ще покаже часовете и температурата на LCD екрана, както е показано на фигурата по -горе.

След това кодовият поток ще изпълни следния програмен блок.

ако (измерва_процес == 1)

{updateTemp (); байт contMin = 0, contHour = 0; DS1307.getDate (DataTime); actualMin = DataTime [5]; // ------------------------------------------------ --------- Брой минути --------------------------------------- ------------------- if (actualMin! = previousMin) {contMin ++; previousMin = действителенMin; } if (contMin == 5) {sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); sensors.requestTemperatures (); плаващ TempSensor = sensors.getTempCByIndex (0); myFile.print (пъти); myFile.println (TempSensor); contMin = 0; } // ----------------------------------------------- ------------ Брой часове ------------------------------------ ---------------------- if (actualHour! = previousHour) {contHour ++; previousHour = действителен час; } if (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print ("Готово"); lcd.setCursor (5, 1); lcd.print ("Процес"); измерване_процес = 0; contHour = 0; } // ---------------------------------------------- Състояние за спиране на регистратора на данни -----

Първо, функцията updateTemp () ще бъде изпълнена. Подобно е на функцията updateHour (); обаче показва температурата на всеки 1 минута.

След това системата ще събира данните за времето от часовника в реално време и ще съхранява текущата минутна стойност в променливата currentMin.

След това ще провери дали променливата min е променена, съгласно условието, представено по -долу

if (actualMin! = предишенMin)

{contMin ++; previousMin = действителенMin; }

Следователно, ако текущата минутна променлива е различна от предишната стойност, това означава, че е настъпила промяна в стойността. По този начин условието ще бъде вярно и стойността на броя на минутите ще се увеличи (contMin) и текущата стойност ще бъде присвоена на променливата previousMin, за да съхранява предишната й стойност.

Следователно, когато стойността на този брой е равна на 5, това означава, че са изминали 5 минути и системата трябва да извърши ново отчитане на температурата и да запише часа и стойността на температурата в регистрационния файл на SD картата.

ако (contMin == 5)

{sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); sensors.requestTemperatures (); плаващ TempSensor = sensors.getTempCByIndex (0); myFile.print (пъти); myFile.println (TempSensor); contMin = 0; }

По този начин този процес ще се повтаря, докато достигне стойността на 5 часа наблюдение на температурата на пациента с температурния сензор с Arduino.

Кодовата част е показана по -долу и е подобна на броя на минутите, който беше представен по -горе.

// ------------------------------------------------ ----------- Брой часове ------------------------------------- ---------------------

if (actualHour! = previousHour) {contHour ++; previousHour = действителен час; } if (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print ("Готово"); lcd.setCursor (5, 1); lcd.print ("Процес"); измерване_процес = 0; contHour = 0; }

След достигане на 5 -часово наблюдение, системата ще затвори лог файла и ще представи на потребителя съобщението „Завършен процес“.

В допълнение, потребителят може да натисне бутона Ok/Pause, за да спре записването на данни. Когато това се случи, следният кодов блок ще бъде изпълнен.

// ---------------------------------------------- Условие за спрете регистратора на данни ----------------------------------------------- ---

if (ok == 1) {myFile.close (); lcd.clear (); lcd.setCursor (6, 0); lcd.print ("Стопирано"); lcd.setCursor (5, 1); lcd.print ("Процес"); измерване_процес = 0; забавяне (2000); lcd.clear (); DS1307.getDate (DataTime); sprintf (times, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (пъти); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); }

Стъпка 9:

Образ
Образ

След това системата ще затвори файла и ще представи съобщението „Стоп процес“, както е показано на Фигура 8.

Стъпка 10:

Образ
Образ

След това системата ще отпечата екрана с време и опциите на менюто, както е показано на Фигура 9.

Стъпка 11: Достъп до данни от модула на SD карта с Arduino

Достъп до данни от модула на SD карта с Arduino
Достъп до данни от модула на SD карта с Arduino

След процеса на наблюдение на JLCPCB Datalogger с температурния сензор с Arduino е необходимо да извадите картата с памет и да получите достъп до данните на компютъра.

За да видите и анализирате данните с по -добро качество, експортирайте / копирайте цялата информация от текстовия файл в Excel, След това можете да начертаете графики и да анализирате получените резултати.

Стъпка 12: Заключение

JLCPCB Datalogger с температурен сензор с Arduino ни позволява, освен измерване на температурата, да записваме информация за температурното поведение на пациента за определен период от време.

С тези съхранени данни е възможно да се анализира и разбере как се държи температурата на пациента, заразен с COVID 19.

Освен това е възможно да се оцени нивото на температурата и да се свърже неговата стойност с прилагането на някакъв вид лекарства.

Следователно, чрез тези данни, JLCPCB Datalogger с температурен сензор за Arduino има за цел да помогне на лекарите и медицинските сестри при изследването на поведението на пациентите.

И накрая, благодарим на компанията JLCPCB за подкрепата на развитието на проекта и се надяваме, че можете да го използвате

Всички файлове могат да бъдат изтеглени и използвани свободно от всеки потребител.

Препоръчано: