Оглавление:
- Запасы
- Шаг 1: Создание регистратора данных JLCPCB с датчиком температуры с Arduino
- Шаг 2:
- Шаг 3:
- Шаг 4:
- Шаг 5:
- Шаг 6: Меню управления регистратором данных JLCPCB
- Шаг 7:
- Шаг 8:
- Шаг 9:
- Шаг 10:
- Шаг 11: доступ к данным модуля SD-карты с помощью Arduino
- Шаг 12: Заключение
Видео: Датчик температуры для Arduino, применяемый для COVID 19: 12 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:50
Датчик температуры для Arduino - это фундаментальный элемент, когда мы хотим измерить температуру процессора человеческого тела.
Датчик температуры с Arduino должен быть в контакте или близко, чтобы принимать и измерять уровень тепла. Так работают термометры.
Эти устройства широко используются для измерения температуры тела больных людей, поскольку температура является одним из первых факторов, которые изменяются в организме человека при возникновении аномалии или заболевания.
Одним из заболеваний, влияющих на температуру тела человека, является COVID 19. Поэтому мы приводим основные симптомы:
Кашель Усталость Затрудненное дыхание (тяжелые случаи) Лихорадка Лихорадка - это симптом, основной характеристикой которого является повышение температуры тела. При этом заболевании нужно постоянно следить за этими симптомами.
Таким образом, мы разработаем проект по мониторингу температуры и сохраним эти данные на карте памяти через JLCPCB Datalogger с использованием датчика температуры с Arduino.
Поэтому в этой статье вы узнаете:
- Как работает регистратор данных JLCPCB с датчиком температуры с Arduino?
- Как работает датчик температуры с Arduino.
- Как работает датчик температуры DS18B20 с Arduino
- Используйте кнопки с несколькими функциями.
Далее мы покажем вам, как вы создадите свой регистратор данных JLCPCB, используя датчик температуры Arduino.
Запасы
Arduino UNO
Печатная плата JLCPCB
Датчик температуры DS18B20
Ардуино Нано R3
Джемперы
ЖК-дисплей 16 x 2
Кнопочный переключатель
Резистор 1кР
Модуль SD-карты для Arduino
Шаг 1: Создание регистратора данных JLCPCB с датчиком температуры с Arduino
Как упоминалось ранее, проект состоит из создания регистратора данных JLCPCB с датчиком температуры с Arduino, и с помощью этих данных мы можем отслеживать температуру пациента, которого лечат.
Таким образом, схема показана на рисунке выше.
Поэтому, как видите, в этой схеме есть датчик температуры DS18B20 с Arduino, который отвечает за измерение показаний температуры пациента.
Кроме того, Arduino Nano будет отвечать за сбор этих данных и их хранение на карте памяти модуля SD-карты.
Каждая информация будет сохранена с соответствующим временем, которое будет считано из модуля RTC DS1307.
Таким образом, для сохранения данных датчика температуры с Arduino пользователь должен выполнить процесс через меню управления с ЖК-дисплеем 16x2.
Шаг 2:
Каждая кнопка отвечает за управление опцией, как показано на ЖК-экране 16x2 на Рисунке 2.
Каждая опция отвечает за выполнение определенной функции в системе, как показано ниже.
- Опция M отвечает за запуск измерения и запись данных на карту памяти.
- Вариант H отвечает за настройку системных часов.
- Опция O / P используется для подтверждения ввода данных в систему или для приостановки записи данных на карту памяти.
Чтобы понять процесс управления системой, мы предоставим приведенный ниже код и обсудим пошаговую систему управления регистратором данных JLCPCB с датчиком температуры с Arduino.
#include // Библиотека со всеми функциями датчика DS18B20
#include #include // Библиотека I2C do LCD 16x2 #include // Библиотека Comunicacao I2C #include // Библиотека OneWire для датчика DS18B20 #include #include LiquidCrystal_I2C lcd (0x27, 16, 2); // Configurando endereco do LCD 16x2 para 0x27 #define ONE_WIRE_BUS 8 // Цифровой вывод для подключения датчика DS18B20 // Определить, как использовать oneWire для связи с датчиком OneWire oneWire (ONE_WIRE_BUS); Датчики температуры Даллас (& oneWire); DeviceAddress sensor1; File 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 measure_process = 0, adjust_process = 0; byte actualMin = 0, previousMin = 0; byte actualHour = 0, previousHour = 0; byte minUpdate = 0; int pinoSS = 10; // Вывод 53 для Mega / Вывод 10 для UNO int DataTime [7]; недействительным updateHour () {DS1307.getDate (DataTime); если (DataTime [5]! = minUpdate) {sprintf (раз, "% 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); если (DataTime [5]! = minUpdate) {sprintf (раз, "% 02d:% 02d", DataTime [4], DataTime [5]); lcd.clear (); lcd.setCursor (5, 0); lcd.print (раз); lcd.setCursor (0, 1); lcd.print ("Температура:"); lcd.setCursor (14, 1); sensor.requestTemperatures (); float TempSensor = sizes.getTempCByIndex (0); lcd.print (TempSensor); minUpdate = DataTime [5]; }} void setup () {Serial.begin (9600); DS1307.begin (); sensor.begin (); pinMode (pinoSS, ВЫХОД); // Объявить pinoSS como saída Wire.begin (); // Начало работы с Comunicacao I2C lcd.init (); // Начинаем делать LCD lcd.backlight (); lcd.setCursor (3, 0); lcd.print («Временная система»); lcd.setCursor (3, 1); lcd.print («Регистратор данных»); задержка (2000); // Локализация и локализация сенсорных устройств Serial.println («Локализованные сенсоры DS18B20…»); Serial.print («Локализация датчика прошла успешно!»); Serial.print (сенсоры.getDeviceCount (), DEC); Serial.println («Датчик»); if (SD.begin ()) {// Инициализация SD-карты Serial.println ("SD-карта мгновенно для использования."); // Записать на карту} else {Serial.println ("Не требуется инициализации для SD-карты."); возвращение; } DS1307.getDate (DataTime); lcd.clear (); sprintf (раз, «% 02d:% 02d», DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (раз); lcd.setCursor (0, 1); lcd.print («1-М 2-Н 3-О / П»); } недействительный цикл () {updateHour (); // Чтение состояний кнопок measure = digitalRead (Buttonmeasure); adjusthour = digitalRead (Buttonadjusthour); ок = digitalRead (Buttonok); если (мера == 0 && мера_состояние == 1) {мера_состояние = 0; } if (measure == 1 && measure_state == 0 && measure_process == 0) {measure_process = 1; measure_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 (раз, «% 02d:% 02d», DataTime [4], DataTime [5]); lcd.clear (); lcd.setCursor (5, 0); lcd.print (раз); lcd.setCursor (0, 1); lcd.print ("Температура:"); lcd.setCursor (14, 1); sensor.requestTemperatures (); float TempSensor = sizes.getTempCByIndex (0); lcd.print (TempSensor); } если (adjusthour == 0 && adjusthour_state == 1) {adjusthour_state = 0; } если (adjusthour == 1 && adjusthour_state == 0 && measure_process == 0) {adjust_process = 1; } // ----------------------------------------------- --- Процесс измерения --------------------------------------------- -------------- if (measure_process == 1) {updateTemp (); byte contMin = 0, contHour = 0; DS1307.getDate (DataTime); actualMin = DataTime [5]; // ------------------------------------------------ --------- Счетчик минут --------------------------------------- ------------------- if (actualMin! = previousMin) {contMin ++; previousMin = actualMin; } if (contMin == 5) {sprintf (раз, «% 02d:% 02d», DataTime [4], DataTime [5]); sensor.requestTemperatures (); float TempSensor = sizes.getTempCByIndex (0); myFile.print (раз); myFile.println (TempSensor); contMin = 0; } // ----------------------------------------------- ------------ Счетчик часов ------------------------------------ ---------------------- if (actualHour! = previousHour) {contHour ++; предыдущий час = фактический час; } если (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print («Готово»); lcd.setCursor (5, 1); lcd.print («Процесс»); measure_process = 0; contHour = 0; } //----------------------------------------------Состояние для остановки регистратора данных ---------------------------------------------- ---- если (ок == 1) {myFile.close (); lcd.clear (); lcd.setCursor (6, 0); lcd.print («Остановлен»); lcd.setCursor (5, 1); lcd.print («Процесс»); measure_process = 0; задержка (2000); lcd.clear (); DS1307.getDate (DataTime); sprintf (раз, «% 02d:% 02d», DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (раз); lcd.setCursor (0, 1); lcd.print («1-М 2-Н 3-О / П»); }} // ---------------------------------------------- ------- Отрегулируйте часы ----------------------------------------- ---------------------- // Настроить час if (adjust_process == 1) {lcd.clear (); DS1307.getDate (DataTime); lcd.setCursor (0, 0); lcd.print («Настроить час:»); sprintf (раз, «% 02d:% 02d», DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (раз); // Настройка часов do {measure = digitalRead (Buttonmeasure); adjusthour = digitalRead (Buttonadjusthour); ок = digitalRead (Buttonok); если (мера == 0 && мера_состояние == 1) {мера_состояние = 0; } if (measure == 1 && measure_state == 0) {DataTime [4] ++; если (DataTime [4]> 23) {DataTime [4] = 0; } measure_state = 1; sprintf (раз, «% 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); } если (adjusthour == 0 && adjusthour_state == 1) {adjusthour_state = 0; } если (adjusthour == 1 && adjusthour_state == 0) {DataTime [5] ++; если (DataTime [5]> 59) {DataTime [5] = 0; } sprintf (раз, «% 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); adjusthour_state = 1; } если (ок == 1) {lcd.clear (); DS1307.getDate (DataTime); sprintf (раз, «% 02d:% 02d», DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.print (раз); lcd.setCursor (0, 1); lcd.print («1-М 2-Н 3-О»); Adjust_process = 0; }} в то время как (ок! = 1); } // ----------------------------------------------- ------- Конец настройки часа ---------------------------------------- -------------------}
Сначала мы определяем все библиотеки для управления модулями и объявления переменных, используемых при программировании регистратора данных JLCPCB с датчиком температуры для Arduino. Блок кода показан ниже.
Шаг 3:
#include // Библиотека со всеми функциями датчика DS18B20
#include #include // Библиотека I2C do LCD 16x2 #include // Библиотека Comunicacao I2C #include // Библиотека OneWire для датчика DS18B20 #include #include LiquidCrystal_I2C lcd (0x27, 16, 2); // Configurando endereco do LCD 16x2 para 0x27 #define ONE_WIRE_BUS 8 // Цифровой вывод для подключения датчика DS18B20 // Определить, как использовать oneWire для связи с датчиком OneWire oneWire (ONE_WIRE_BUS); Датчики температуры Даллас (& oneWire); DeviceAddress sensor1; File 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 measure_process = 0, adjust_process = 0; byte actualMin = 0, previousMin = 0; byte actualHour = 0, previousHour = 0; byte minUpdate = 0; int pinoSS = 10; // Вывод 53 для Mega / Вывод 10 для UNO int DataTime [7];
Далее у нас есть функция настройки пустоты. Эта функция используется для настройки контактов и инициализации устройства, как показано ниже.
установка void ()
{Serial.begin (9600); DS1307.begin (); sensor.begin (); pinMode (pinoSS, ВЫХОД); // Объявить pinoSS como saída Wire.begin (); // Начало работы с Comunicacao I2C lcd.init (); // Начинаем делать LCD lcd.backlight (); lcd.setCursor (3, 0); lcd.print («Временная система»); lcd.setCursor (3, 1); lcd.print («Регистратор данных»); задержка (2000); // Локализация и локализация сенсорных устройств Serial.println («Локализованные сенсоры DS18B20…»); Serial.print («Локализация датчика прошла успешно!»); Serial.print (сенсоры.getDeviceCount (), DEC); Serial.println («Датчик»); if (SD.begin ()) {// Инициализация SD-карты Serial.println ("SD-карта мгновенно для использования."); // Записать на карту} else {Serial.println ("Не требуется инициализации для SD-карты."); возвращение; } DS1307.getDate (DataTime); lcd.clear (); sprintf (раз, «% 02d:% 02d», DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (раз); lcd.setCursor (0, 1); lcd.print («1-М 2-Н 3-О / П»); }
Сначала были запущены последовательная связь, часы реального времени и датчик температуры для Arduino DS18B20. После инициализации и тестирования устройств сообщение с параметрами меню было напечатано на ЖК-экране 16x2. Этот экран показан на рисунке 1.
Шаг 4:
После этого система считывает часы и обновляет значение, вызывая функцию updateHour. Таким образом, эта функция предназначена для представления почасовой стоимости каждую минуту. Блок кода функции показан ниже.
недействительным updateHour ()
{DS1307.getDate (DataTime); если (DataTime [5]! = minUpdate) {sprintf (раз, "% 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
Во-первых, пользователь должен проверить и настроить системные часы. Этот процесс выполняется при нажатии второй кнопки.
При нажатии кнопки должен появиться следующий экран, показанный на рисунке выше.
Шаг 7:
На этом экране пользователь сможет ввести значения часов и минут с помощью кнопок, подключенных к цифровым контактам 2 и 3 Arduino. Кнопки показаны на рисунке выше.
Часть кода для управления часами показана ниже.
если (adjusthour == 0 && adjusthour_state == 1)
{adjusthour_state = 0; } если (adjusthour == 1 && adjusthour_state == 0 && measure_process == 0) {adjust_process = 1; }
Когда нажата кнопка часов и для переменной measure_process установлено значение 0, условие будет истинным, а для переменной adjust_process будет установлено значение 1. Переменная measure_process используется для сигнализации о том, что система контролирует температуру. Когда его значение равно 0, система позволит пользователю войти в меню настройки времени. Следовательно, после того, как переменная adjust_process получит значение 1, система войдет в условие корректировки времени. Этот блок кода показан ниже.
// ------------------------------------------------ ----- Отрегулируйте часы ------------------------------------------- --------------------
// Настроить час if (adjust_process == 1) {lcd.clear (); DS1307.getDate (DataTime); lcd.setCursor (0, 0); lcd.print («Настроить час:»); sprintf (раз, «% 02d:% 02d», DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.print (раз); // Настройка часов do {measure = digitalRead (Buttonmeasure); adjusthour = digitalRead (Buttonadjusthour); ок = digitalRead (Buttonok); если (мера == 0 && мера_состояние == 1) {мера_состояние = 0; } if (measure == 1 && measure_state == 0) {DataTime [4] ++; если (DataTime [4]> 23) {DataTime [4] = 0; } measure_state = 1; sprintf (раз, «% 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); } если (adjusthour == 0 && adjusthour_state == 1) {adjusthour_state = 0; } если (adjusthour == 1 && adjusthour_state == 0) {DataTime [5] ++; если (DataTime [5]> 59) {DataTime [5] = 0; } sprintf (раз, «% 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); adjusthour_state = 1; } если (ок == 1) {lcd.clear (); DS1307.getDate (DataTime); sprintf (раз, «% 02d:% 02d», DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.print (раз); lcd.setCursor (0, 1); lcd.print («1-М 2-Н 3-О»); Adjust_process = 0; }} в то время как (ок! = 1); }
В этом состоянии система отобразит сообщение, показанное на рисунке 4, а затем будет ждать, пока значения не будут отрегулированы внутри в цикле while. При настройке часов функции этих кнопок изменяются, то есть они являются многофункциональными.
Это позволяет использовать кнопку более чем для одной функции и упрощает систему.
Таким образом, пользователь настроит значение часов и минут, а затем сохранит данные в системе при нажатии кнопки Ok.
Как видите, система прочитает 3 кнопки, как показано ниже.
measure = digitalRead (Buttonmeasure);
adjusthour = digitalRead (Buttonadjusthour); ок = digitalRead (Buttonok);
Обратите внимание, что кнопка измерения (Buttonmeasure) изменила свою функцию. Теперь он будет использоваться для настройки значений часов, как показано ниже. Следующие два условия аналогичны и используются для настройки часов и минут, как показано выше.
если (мера == 0 && мера_состояние == 1)
{measure_state = 0; } if (measure == 1 && measure_state == 0) {DataTime [4] ++; если (DataTime [4]> 23) {DataTime [4] = 0; } measure_state = 1; sprintf (раз, «% 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); } если (adjusthour == 0 && adjusthour_state == 1) {adjusthour_state = 0; } если (adjusthour == 1 && adjusthour_state == 0) {DataTime [5] ++; если (DataTime [5]> 59) {DataTime [5] = 0; } sprintf (раз, «% 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); adjusthour_state = 1; }
Следовательно, каждый раз, когда нажимается одна из двух кнопок, значение позиций 4 и 5 вектора DataTime будет изменяться, и, во-вторых, эти значения будут сохранены в памяти DS1307.
После внесения изменений пользователь должен нажать кнопку «ОК», чтобы завершить процесс. Когда это событие происходит, система выполнит следующие строки кода.
если (ок == 1)
{lcd.clear (); DS1307.getDate (DataTime); sprintf (раз, «% 02d:% 02d», DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.print (раз); lcd.setCursor (0, 1); lcd.print («1-М 2-Н 3-О»); Adjust_process = 0; }
Он войдет в указанное выше условие и представит пользователю сообщение о часах и меню параметров.
Наконец, пользователь должен запустить процесс мониторинга пациента через датчик температуры с помощью регистратора данных Arduino JLCPCB.
Для этого пользователь должен нажать кнопку измерения, которая подключена к цифровому выводу 2.
Затем система выполнит считывание с помощью датчика температуры для Arduino и сохранит его на карте памяти. Область схемы показана на рисунке выше.
Шаг 8:
Следовательно, при нажатии кнопки будет выполнена следующая часть кода.
если (мера == 0 && мера_состояние == 1)
{measure_state = 0; } if (measure == 1 && measure_state == 0 && measure_process == 0) {measure_process = 1; measure_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 (раз, «% 02d:% 02d», DataTime [4], DataTime [5]); lcd.clear (); lcd.setCursor (5, 0); lcd.print (раз); lcd.setCursor (0, 1); lcd.print ("Температура:"); lcd.setCursor (14, 1); sensor.requestTemperatures (); float TempSensor = sizes.getTempCByIndex (0); lcd.print (TempSensor); }
В приведенной выше части кода система присвоит значение 1 переменной measure_process. Он отвечает за сохранение данных на SD-карте.
Кроме того, система проверит, существует ли текстовый файл с журналом данных. Если есть файл, система удалит и создаст новый для хранения данных.
После этого он создаст два столбца: один для часов и один для температуры внутри текстового файла.
После этого на ЖК-экране будут отображаться часы и температура, как показано на рисунке выше.
После этого поток кода выполнит следующий программный блок.
если (мера_процесс == 1)
{updateTemp (); byte contMin = 0, contHour = 0; DS1307.getDate (DataTime); actualMin = DataTime [5]; // ------------------------------------------------ --------- Счетчик минут --------------------------------------- ------------------- if (actualMin! = previousMin) {contMin ++; previousMin = actualMin; } if (contMin == 5) {sprintf (раз, «% 02d:% 02d», DataTime [4], DataTime [5]); sensor.requestTemperatures (); float TempSensor = sizes.getTempCByIndex (0); myFile.print (раз); myFile.println (TempSensor); contMin = 0; } // ----------------------------------------------- ------------ Счетчик часов ------------------------------------ ---------------------- if (actualHour! = previousHour) {contHour ++; предыдущий час = фактический час; } если (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print («Готово»); lcd.setCursor (5, 1); lcd.print («Процесс»); measure_process = 0; contHour = 0; } //----------------------------------------------Состояние для остановки регистратора данных -----
Сначала будет выполнена функция updateTemp (). Она похожа на функцию updateHour (); однако он отображает температуру каждую минуту.
После этого система соберет данные о времени из часов реального времени и сохранит текущее значение минут в переменной currentMin.
Затем он проверит, была ли изменена переменная min, в соответствии с условиями, представленными ниже.
если (actualMin! = previousMin)
{contMin ++; previousMin = actualMin; }
Следовательно, если текущая минутная переменная отличается от предыдущего значения, это означает, что произошло изменение значения. Таким образом, условие будет истинным и значение счетчика минут будет увеличено (contMin), а текущее значение будет присвоено переменной previousMin, чтобы сохранить ее предыдущее значение.
Следовательно, когда значение этого счетчика равно 5, это означает, что прошло 5 минут, и система должна выполнить новое считывание температуры и сохранить значение часа и температуры в файле журнала SD-карты.
если (contMin == 5)
{sprintf (раз, «% 02d:% 02d», DataTime [4], DataTime [5]); sensor.requestTemperatures (); float TempSensor = sizes.getTempCByIndex (0); myFile.print (раз); myFile.println (TempSensor); contMin = 0; }
Таким образом, этот процесс будет повторяться до достижения значения 5 часов мониторинга температуры пациента с помощью датчика температуры с Arduino.
Часть кода показана ниже и аналогична счетчику минут, который был представлен выше.
// ------------------------------------------------ ----------- Счетчик часов ------------------------------------- ---------------------
если (фактический час! = предыдущий час) {contHour ++; предыдущий час = фактический час; } если (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print («Готово»); lcd.setCursor (5, 1); lcd.print («Процесс»); measure_process = 0; contHour = 0; }
По прошествии 5 часов мониторинга система закроет файл журнала и представит пользователю сообщение «Завершенный процесс».
Кроме того, пользователь может нажать кнопку ОК / Пауза, чтобы остановить запись данных. Когда это произойдет, будет выполнен следующий блок кода.
// ---------------------------------------------- Условие для остановить регистратор данных ----------------------------------------------- ---
если (ок == 1) {myFile.close (); lcd.clear (); lcd.setCursor (6, 0); lcd.print («Остановлен»); lcd.setCursor (5, 1); lcd.print («Процесс»); measure_process = 0; задержка (2000); lcd.clear (); DS1307.getDate (DataTime); sprintf (раз, «% 02d:% 02d», DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.print (раз); lcd.setCursor (0, 1); lcd.print («1-М 2-Н 3-О / П»); }
Шаг 9:
Затем система закроет файл и отобразит сообщение «Остановлен процесс», как показано на рисунке 8.
Шаг 10:
После этого система распечатает экран времени и пункты меню, как показано на рисунке 9.
Шаг 11: доступ к данным модуля SD-карты с помощью Arduino
После процесса мониторинга регистратора данных JLCPCB с датчиком температуры с помощью Arduino необходимо извлечь карту памяти и получить доступ к данным на компьютере.
Для более качественного просмотра и анализа данных экспортируйте / копируйте всю информацию текстового файла в Excel, после чего вы можете строить графики и анализировать полученные результаты.
Шаг 12: Заключение
Регистратор данных JLCPCB с датчиком температуры с Arduino позволяет нам, помимо измерения температуры, записывать информацию о температурном поведении пациента в течение определенного периода времени.
С помощью этих сохраненных данных можно проанализировать и понять, как ведет себя температура пациента, инфицированного COVID 19.
Кроме того, можно оценить уровень температуры и связать ее значение с применением какого-либо лекарства.
Таким образом, с помощью этих данных регистратор данных JLCPCB с датчиком температуры для Arduino призван помочь врачам и медсестрам в изучении поведения пациентов.
Наконец, мы благодарим компанию JLCPCB за поддержку разработки проекта и надеемся, что вы сможете его использовать
Все файлы могут быть скачаны и использованы любым пользователем.
Рекомендуемые:
Сделай сам датчик дыхания с Arduino (проводящий вязаный датчик растяжения): 7 шагов (с изображениями)
Сделай сам датчик дыхания с Arduino (проводящий вязаный датчик растяжения): этот самодельный сенсор примет форму проводящего вязанного сенсора растяжения. Он будет обволакивать вашу грудь / живот, и когда ваша грудь / живот расширяется и сжимается, то вместе с датчиком и, следовательно, входными данными, которые передаются на Arduino. Так
Активный RC-фильтр низких частот, применяемый в проектах с Arduino: 4 шага
Активный RC-фильтр нижних частот, применяемый в проектах с Arduino: фильтр нижних частот - отличная электронная схема для фильтрации паразитных сигналов из ваших проектов. Распространенной проблемой в проектах с Arduino и системами с датчиками, работающими вблизи силовых цепей, является наличие «паразитных» сигналов. Они могут
Датчик / датчик температуры двигателя с беспроводным датчиком для классических автомобилей: 7 шагов
Датчик / датчик температуры двигателя с беспроводным датчиком для классических автомобилей: я сделал этот датчик для своего любимого Çipitak. Автомобиль fiat 126 с 2-цилиндровым двигателем с воздушным охлаждением под задним капотом. У ipitak нет датчика температуры, показывающего, насколько горячий двигатель, поэтому я подумал, что датчик будет полезен. Также хотел, чтобы датчик был проводным
ESP8266 NodeMCU Access Point (AP) для веб-сервера с датчиком температуры DT11 и печатью температуры и влажности в браузере: 5 шагов
ESP8266 NodeMCU Access Point (AP) для веб-сервера с датчиком температуры DT11 и печатью температуры и влажности в браузере: Привет, ребята, в большинстве проектов мы используем ESP8266, а в большинстве проектов мы используем ESP8266 в качестве веб-сервера, чтобы данные могли быть доступны на любое устройство через Wi-Fi, получив доступ к веб-серверу, размещенному на ESP8266, но единственная проблема в том, что нам нужен рабочий маршрутизатор для
Цифровой датчик температуры на базе Arduino: 5 шагов (с изображениями)
Цифровой датчик температуры на основе Arduino: датчики температуры стали обычным явлением в наши дни, но большинство из них чрезвычайно сложны в изготовлении или чрезвычайно дороги для покупки. Этот проект дает вам цифровой датчик температуры на основе Arduino, который не только дешев и очень прост. к м