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

Монитор частоты сердца на MAX30102 с Arduino Nano и дисплеем 16x2

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

Название Количество
Arduino Nano R3 1
Датчик пульса MAX30102 1
RGB LCD 16x2 (Adafruit) 1
Потенциометр (для контраста LCD) 1

Инструменты

Программное обеспечение

О проекте

Простой пульсоксиметр на базе модуля MAX30102. Данные выводятся на LCD 16x2: первая строка — средние удары в минуту (BPM), вторая — значение отражённого ИК-сигнала (должно быть стабильным для точных измерений).

Схема подключения

Код (Arduino)

Используются библиотеки Wire.h, MAX30105.h, LiquidCrystal.h, heartRate.h. Алгоритм PBA (Penpheral Beat Amplitude) детектирует пульс. Измерения усредняются за 4 отсчёта.

#include <Wire.h>
#include "MAX30105.h"
#include <LiquidCrystal.h>
#include "heartRate.h"

MAX30105 particleSensor;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

const byte RATE_SIZE = 4;
byte rates[RATE_SIZE];
byte rateSpot = 0;
long lastBeat = 0;
float beatsPerMinute;
int beatAvg;

void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);
  Serial.println("Инициализация...");
  if (!particleSensor.begin(Wire, I2C_SPEED_FAST)) {
    Serial.println("MAX30105 не найден. Проверьте подключение.");
    while (1);
  }
  Serial.println("Положите палец на датчик с постоянным давлением.");
  particleSensor.setup();
  particleSensor.setPulseAmplitudeRed(0x0A);
  particleSensor.setPulseAmplitudeGreen(0);
}

void loop() {
  long irValue = particleSensor.getIR();
  if (checkForBeat(irValue)) {
    long delta = millis() - lastBeat;
    lastBeat = millis();
    beatsPerMinute = 60 / (delta / 1000.0);
    if (beatsPerMinute < 255 && beatsPerMinute > 20) {
      rates[rateSpot++] = (byte)beatsPerMinute;
      rateSpot %= RATE_SIZE;
      beatAvg = 0;
      for (byte x = 0; x < RATE_SIZE; x++) beatAvg += rates[x];
      beatAvg /= RATE_SIZE;
    }
  }
  Serial.print("IR="); Serial.print(irValue);
  Serial.print(", BPM="); Serial.print(beatsPerMinute);
  Serial.print(", Avg BPM="); Serial.print(beatAvg);
  if (irValue < 50000) Serial.print(" Нет пальца?");
  Serial.println();

  lcd.setCursor(0,0); lcd.print("BPM: "); lcd.print(beatAvg);
  lcd.setCursor(0,1); lcd.print(" IR: "); lcd.print(irValue);
}

Принципиальная схема

Монитор частоты сердца на MAX30102 с Arduino Nano и дисплеем 16x2

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

  1. Система удалённого мониторинга сердечного ритма с алертами AWS IoT
  2. Создание потрясающей системы Ambilight для монитора на Arduino
  3. Создание анимации и игр на LCD 16×2 с Arduino UNO
  4. IoT-монитор пульса в реальном времени на Arduino и MAX30100
  5. Точный измерятель пульса на фоторезисторе и Arduino: сборка и настройка
  6. Мониторинг термопары газового водонагревателя: SMS/Email алерт при погасании горелки
  7. Продвинутая система домашнего мониторинга на Arduino Mega с IoT-датчиками
  8. Надежная погодная станция на Arduino с датчиками DHT
  9. Построение надежного умного монитора энергии на Arduino UNO – Пошаговое руководство
  10. Интегрированные датчики сердечного ритма в умной одежде: надежный носимый мониторинг