Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Надежный ИК-датчик пульса на Arduino: пошаговое руководство

Компоненты и материалы

Arduino UNO1
ИК-излучатель (generic)1
ИК-приёмник (generic)1
USB-A — Mini-USB кабель1

Приложения и онлайн-сервисы

О проекте

Как возникла идея

Во время пандемии COVID-19 спрос на медицинское оборудование (вентиляторы и др.) взлетел, создав дефицит. Нужны дешёвые альтернативы. Этот DIY-датчик пульса стоит < $15 и эффективно детектирует сердечные сокращения, строя график в реальном времени. Единственное усилие — приложить палец к сенсору.

Принцип работы

Основа — разная непроницаемость пальца для ИК-света в зависимости от объёма крови в сосудах. При систоле кровь наполняет сосуды — палец становится более непрозрачным. При диастоле — менее. Измеряя непроницаемость, строим кривую пульса.

ИК-излучатель светит сквозь палец. Часть света поглощается, часть отражается, часть проходит. Приёмник с другой стороны фиксирует этот малый прошедший поток. Его интенсивность меняется с пульсацией крови — строим график пульса в реальном времени.

Надежный ИК-датчик пульса на Arduino: пошаговое руководство
Надежный ИК-датчик пульса на Arduino: пошаговое руководство

График выводится в Serial Plotter Arduino IDE.

Точность: фильтрация паразитных сигналов

Главная ошибка — фоновое ИК-излучение от окружающих объектов (в т.ч. нашего тела). Arduino заранее измеряет среднее «мусорное» значение и вычитает его, получая чистый сигнал.

Код усреднения фона (5 замеров):

// Для отладки
for(int i=0; i<5; i++) {
  reading = reading + analogRead(A0);
}
reading_final = reading / 5; // Среднее значение фона

Полезный сигнал:


delay(100);
Heart_rate = analogRead(A0) - reading_final; // Чистое значение

Затем переменная Heart_rate выводится в Serial Plotter.

Сборка железа сенсора

Сенсор = ИК-излучатель + ИК-приёмник. Схема подключения:

Надежный ИК-датчик пульса на Arduino: пошаговое руководство

Итоговый вид сборки:

Надежный ИК-датчик пульса на Arduino: пошаговое руководство

Результат

Короткое видео работы: Google Drive. Виден реальный график пульса.


Лайфхак, если нет компонентов:

ИК-пульт от ТВ (с зажатой кнопкой) может служить излучателем. А фоторезистор (LDR) — приёмником, подбрав порог по даташитам.


Жду отзывов, предложений по улучшению и идей для новых проектов в комментариях!

Код

heart_Beat_sensor_101/code (Arduino)

// code by YaSh
// Heart_Rate_Sensor code
int reading = 0;
int reading_final;
int Heart_rate;

void setup() {
  Serial.begin(9600);
  pinMode(A0, INPUT);
  pinMode(A1, INPUT);
}

void loop() {
  for(int i=0; i<5; i++) { // Усреднение фона
    reading = reading + analogRead(A0);
  }
  reading_final = reading / 5;
  delay(100);
  Heart_rate = analogRead(A0) - reading_final; // Чистый сигнал
  Serial.println(Heart_rate); // График в Serial Plotter
}

Схемы

Схема подключения ИК-приёмника и излучателя к Arduino:

Надежный ИК-датчик пульса на Arduino: пошаговое руководство

Производственный процесс

  1. Искусственное сердце: технологии, история и перспективы
  2. Построение DIY инфракрасного датчика движения для Raspberry Pi — пошаговое руководство
  3. Управление светодиодом с PIR-датчиком движения на Raspberry Pi
  4. Передача данных температуры и влажности между двумя Arduino через Firebase
  5. DIY-консоль управления Photoshop на Arduino Nano RP2040 Connect
  6. Робот для поиска людей на базе Arduino Uno: пошаговая интеграция датчиков
  7. Умный вольтметр на Arduino и смартфоне — простое DIY-проект
  8. IoT-монитор пульса в реальном времени на Arduino и MAX30100
  9. Умная банка на ESP8266 + Arduino: мониторинг наполненности в реальном времени
  10. Сенсорная башня на Arduino Cloud: Мониторинг температуры, движения и газа