Делаем своими руками спирометр на основе Ардуино Нано

Спирометр - это инструмент, используемый для измерения объема вдыхаемого и выдыхаемого воздуха нашими легкими. И сегодня мы научимся делать этот прибор на основе Arduino Nano.

О проекте

В этом уроке я создам очень простой спирометр, используя Arduino и датчик давления. Хотя этот проект не сможет претендовать на истинный прибор с точными значениями спирометрии, но вы узнаете, как работает спирометрический аппарат.

Мы будем использовать датчик давления воздуха MPX5010DP с Arduino Nano. Всякий раз, когда мы выпускаем воздух в трубу, датчик собирает данные и отправляет их в Arduino Nano. Достаточная калибровка необходима после первоначальной настройки, чтобы получить точные результаты.

Что такое спирометрия?

Из Википедии: Спирометр (лат. spirometer — от spiro — дую, дышу и meter — измерять) — медицинский прибор для измерения объёма воздуха, поступающего из лёгких при наибольшем выдохе после наибольшего вдоха. Спирометр применяется для определения дыхательной способности. Процесс измерения жизненной ёмкости лёгких при помощи спирометра называется спирометрией. Данный прибор применяется для оценки состояния дыхательной системы человека с помощью измерения и вычисления всех основных параметров дыхания и визуализации процесса дыхания.

По сути, спирометрия - это физиологический тест, который оценивает силу ваших легких, используя датчик для измерения максимального количества воздуха, которое вы можете вдохнуть и выдохнуть. Для того, чтобы быть по-настоящему приемлемым с медицинской точки зрения, спирометрическое тестирование должно проводиться трижды воспроизводимым методом для определения принудительной жизненной емкости (FVC).

Почему важна спирометрия?

Ваш врач может посоветовать спирометрию, если у вас одышка, кашель или храп. Он может помочь диагностировать такие проблемы, как муковисцидоз, ХОБЛ и астма, или может проверить функцию легких перед операцией.

Врач или медсестра будут использовать спирометрию, чтобы проверить прогресс человека как часть лечения хронического заболевания легких. Это поможет определить влияние лекарств, включая то, как они контролируют состояние в соответствии с вашей болезнью.

Выполнение теста спирометрии

Чтобы обеспечить точные результаты теста, носите свободную одежду и не ешьте еду непосредственно перед тестом. Также избегайте следующих действий:

  • Курение в течение 24 часов после тестирования
  • Физическая нагрузка
  • Употребление алкоголя

Тест состоит из следующих этапов:

  • Зажим помещается на носу, чтобы закрыть ноздри.
  • Вдохните как можно больше воздуха, чтобы наполнить легкие.
  • Плотно прижмите губы к горловине трубки.
  • Дышите прямо в трубку как можно быстрее и сильнее в течение нескольких секунд.

В нашем проекте придется дышать в трубку в течение пяти секунд.

Комплектующие

Для создания на основе Ардуино спирометра нам понадобятся следующие комплектующие:

  • Arduino Nano
  • MPX5010DP сенсор давления
  • Символьный ЖК-дисплей 16X2 I2c
  • Макет
  • Перемычки
  • Труба ПВХ около 30 см на 4 см
  • Гибкая трубка для датчика
  • Пенный круг (для трубы)
  • Горячий клеевой пистолет

Создание спирометра

Сначала сделайте два отверстия в трубе из ПВХ. Первое соединение делаем в начале трубы, а другое в 3-4 см от конца. Эти отверстия предназначены для вставки прозрачных пластиковых трубок в трубу из ПВХ, как показано ниже.

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

Теперь вставьте две трубки в датчик давления. Вы можете использовать стяжки на молнии для более плотного соединения.

Таким образом должно получится следующее:

Схема соединения MPX5010DP и Arduino Nano

Теперь переходим к схеме соединения MPX5010DP и Arduino Nano. Датчик давления воздуха подключен к выводу A0 Arduino Nano, а линии данных ЖК-дисплея I2C подключены к контактам A4 и A5. Кроме того, вы можете подключить зуммер и светодиоды для обратной связи по окончании теста.

Код проекта

Чтобы использовать спирометр, загрузите код, который вы можете скопировать или скачать ниже.

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

// Set the LCD address to 0x27 for a 16 chars and 2 line display
const float SensorOffset = 102.0;
LiquidCrystal_I2C lcd(0x27, 16, 2);
int D2=2;//RED LED
int D3=4; //BUZZER
int D5=3; //yellow led
// the setup routine runs once when you press reset:
void setup()

{
    // initialize serial communication at 9600 bits per second:
  Serial.begin(9600) ;
    // initialize the LCD
    lcd.begin();
  
  pinMode(D2,OUTPUT);
  pinMode(D3,OUTPUT);
  pinMode(D5,OUTPUT);
  lcd.backlight();
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("  WELCOME TO  ");
   lcd.setCursor(0,1);
  lcd.print("  MAKER.PRO  ");
  delay(2000);
  lcd.clear();
   lcd.setCursor(0,0);
  lcd.print("BLOW The AIR ");
   lcd.setCursor(0,1);
  lcd.print("For Five Seconds");
  delay(2000);
  lcd.clear();
  lcd.print("Start Blowing");
  delay(5000);
  


    // Turn on the blacklight and print a message.

 
}

void loop()
{
  // read the input on analog pin 0:
  float sensorValue = (analogRead(A0)-SensorOffset)/100.0; //Do maths for calibration
  float total =(sensorValue*1000); //pascal
  // print out the value you read:
  //Serial.print("Air Pressure: ");  
  //Serial.print(total,2);
  //Serial.println(" Pa");

  
  lcd.clear();
  lcd.print("Spiromettery ");
  lcd.setCursor(0,1);
  lcd.print(total);
  lcd.print("  pa");
  if(total>6000) //total caliberated value is 6000 in my case
  {
    digitalWrite(D5, HIGH);
        digitalWrite(D3, HIGH);
    delay(1000);
    digitalWrite(D5, LOW);
        digitalWrite(D3, LOW);
    delay(1000);
    digitalWrite(D5, HIGH);
        digitalWrite(D3, HIGH);
    delay(1000);
    digitalWrite(D5, LOW);
        digitalWrite(D3, LOW);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("You are Normal 80%");
    lcd.setCursor(0,1);
    lcd.print(total);
    lcd.print("  pa");
    digitalWrite(D5, HIGH);
    delay(10000);
    digitalWrite(D5, LOW);
    
    
    
    }
    else if(total>4580)
    {
        digitalWrite(D5, HIGH);
        digitalWrite(D3, HIGH);
    delay(1000);
    digitalWrite(D5, LOW);
        digitalWrite(D3, LOW);
    delay(1000);
    digitalWrite(D5, HIGH);
        digitalWrite(D3, HIGH);
    delay(1000);
    digitalWrite(D5, LOW);
        digitalWrite(D3, LOW);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("You are Normal 80%");
    lcd.setCursor(0,1);
    lcd.print(total);
    lcd.print("  pa");
     digitalWrite(D5, HIGH);
    delay(10000);
         digitalWrite(D5, LOW);
   
    }
    else if (total>3200)
    
    {
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("LOW 60% !");
    lcd.setCursor(0,1);
    lcd.print(total);
    lcd.print("  pa");    
    digitalWrite(D2, HIGH);
    digitalWrite(D3, HIGH);
    delay(10000);
    digitalWrite(D2, LOW);
    digitalWrite(D3, LOW);
    
    }
    
  delay(100); // delay in between reads for stability
    
}

Вдувайте воздух в трубку в течение 5 (пяти) секунд. Затем вы можете проверить результат спирометра на ЖК-экране. После завершения теста вы можете нажать кнопку «Сброс», чтобы перезагрузить устройство для нового теста.

На этом всё. Здоровья и хороших тестов.

8 августа 2019 в 15:42 | Обновлено 7 декабря 2019 в 00:00 (редакция)
Опубликовано:
Уроки,

1 комментарий

  1. Стас
    3 декабря 2020 в 12:12

    можете скинуть схему эту собранную в протеусе ?

    Ответить

Добавить комментарий

Ваш E-mail не будет никому виден. Обязательные поля отмечены *