
MAX30102
Analog Devices / Maxim Integrated; плата DFRobot · MAX30102; DFRobot SEN0344 V1.0 (legacy, 5 контактов)
Красный и инфракрасный PPG-сигнал для учебных проектов. Документированный пример: DFRobot SEN0344 V1.0 без отдельного MCU.
Автор: SLDV LAB
Опубликовано · Обновлено
О МОДУЛЕ
Что делает MAX30102; DFRobot SEN0344 V1.0 (legacy, 5 контактов)
MAX30102 содержит красный и инфракрасный светодиоды, фотоприёмник и тракт оцифровки. По отражённому свету можно исследовать изменения кровенаполнения и разрабатывать алгоритмы PPG. Сама микросхема выдаёт отсчёты; число в ADC не является готовой частотой пульса или SpO₂.
Подключение рассчитано на DFRobot SEN0344 V1.0: компактную пяти-контактную плату с прямым доступом к MAX30102. Современная SEN0344 V2.0 имеет отдельный вычислитель, другой драйвер и иное питание; совпадение адреса не делает версии взаимозаменяемыми. У безымянных красных и фиолетовых breakout также различаются стабилизаторы и подтяжки.
В примере используется SparkFun MAX3010x: историческое имя класса MAX30105 не меняет модель сенсора. Выбран режим двух каналов Red + IR; зелёного светодиода у MAX30102 нет.
Движение, прижим, засветка, оптика и особенности кожи влияют на сигнал. Здесь показываются только необработанные оптические значения без диагностических выводов. Такая сборка не является медицинским прибором и не подходит для принятия решений о лечении; обозначение MAX30102 само по себе не подтверждает медицинскую точность.
DFRobot SEN0344 V1.0: legacy-плата MAX30102 с пятью контактами VCC/GND/SCL/SDA/INT. Это не SEN0344 V2.0 с отдельным MCU.
Источник фотографии: каталог Pakronics, изображение DFRobot SEN0344 с пятью контактами VCC/GND/SCL/SDA/INT. На фото — legacy-плата, соответствующая документации V1.0; текущий заголовок магазина V2.0 не используется как её идентификация. SLDV LAB удалил фон и выполнил пропорциональное масштабирование; новые детали не создавались. Условия повторного использования фотографии не установлены; обработка не меняет исходных прав. Схема соединений составлена по документации DFRobot V1.0. Источник: https://www.pakronics.com.au/products/dfrobot-max30102-heart-rate-and-oximeter-sensor-breakout-board-df-sen0344 .
Характеристики
- Оптические каналы
- Красный и инфракрасный
- Максимальная разрядность ADC
- 18 бит
- Глубина FIFO микросхемы
- 32 набора
- Адрес прямого интерфейса MAX30102
- 0x57
- SEN0344 V1.0: размер платы
- 18 × 14 мм
- Частота ADC в примере
- 100 выборок/с
- Усреднение FIFO в примере
- 4 выборки
- Интерфейс
- I²C
- Питание модуля
- DFRobot SEN0344 V1.0: VCC 3,3–5 В; в примере питание и I²C 3,3 В от ESP32-DevKitC V4. Голый MAX30102 требует VDD 1,7–2,0 В и отдельное питание LED 3,1–5,0 В. V2.0 SEN0344 имеет другой интерфейс через MCU и сюда не относится.
ПРАКТИКА
Подключение
| Контакт модуля | Контакт платы | Назначение |
|---|---|---|
| VCC | 3V3 | ESP32-DevKitC V4 с ESP32-WROOM-32; именно SEN0344 V1.0. |
| GND | GND | Общая земля. |
| SDA | GPIO21 | Шина I²C 3,3 В; проверить подтяжки конкретного breakout. |
| SCL | GPIO22 | Шина I²C 3,3 В. |
| INT | Не подключать | В примере программный опрос FIFO. |
Подходит для ESP32. Выберите контакты по документации своей платы.
ВАШ ПРОЕКТ · ВАШ ДАТЧИК
Интегрируйте модуль с ChatGPT
Скопируйте запрос в ChatGPT. Укажите свою плату и среду разработки — получите подключение и код для своего проекта.
Помоги интегрировать MAX30102 для учебной регистрации PPG. Уточни точное исполнение breakout, наличие отдельного MCU, питание, контроллер и задачу. Основа: DFRobot SEN0344 V1.0, ESP32-DevKitC V4 ESP32-WROOM-32, 3,3 В, GPIO21/22, адрес 0x57, SparkFun MAX3010x 1.1.2, два канала Red + IR. Дай полный скетч с проверкой связи, FIFO, отсутствия свежих данных и насыщения. Объясни единицы ADC, частоту после усреднения и ограничения движения/засветки. Не выдавай пример за медицинский прибор и не рассчитывай SpO₂ без обоснованного алгоритма и проверки.
Библиотеки
Установите библиотеку для своей среды и откройте пример из её документации.
Что именно прописать
- Ядро / плата
esp32 by Espressif Systems 3.3.2 / ESP32 Dev ModuleФизическая плата ESP32-DevKitC V4 с ESP32-WROOM-32.
- Библиотека
SparkFun MAX3010x Pulse and Proximity Sensor Library 1.1.2Заголовок MAX30105.h и класс MAX30105 поддерживают MAX30102.
- Адрес I²C
0x57Прямой доступ к сенсору; не алгоритмический MCU SEN0344 V2.0.
- Конфигурация
sensor.setup(0x1F, 4, 2, 100, 411, 4096)LED 0x1F, усреднение 4, Red+IR, 100 Гц, 411 мкс, ADC 4096 нА; это исходная настройка, не калибровка.
ESP32-DevKitC V4 · полный скетч сырых Red/IR
cpp#include <Arduino.h>
#include <Wire.h>
#include <MAX30105.h>
MAX30105 sensor;
uint32_t lastSample = 0;
uint32_t lastWarning = 0;
void setup() {
Serial.begin(115200);
Wire.begin(21, 22);
Wire.setTimeOut(50);
if (!sensor.begin(Wire, I2C_SPEED_STANDARD, 0x57)) {
Serial.println("MAX30102 not found or unexpected part ID");
while (true) delay(1000);
}
sensor.setup(0x1F, 4, 2, 100, 411, 4096);
lastSample = millis();
}
void loop() {
Wire.beginTransmission(0x57);
if (Wire.endTransmission() != 0) {
Serial.println("MAX30102 I2C not responding");
delay(1000);
return;
}
sensor.check();
while (sensor.available()) {
const uint32_t red = sensor.getFIFORed();
const uint32_t ir = sensor.getFIFOIR();
sensor.nextSample();
lastSample = millis();
if (red >= 262143UL || ir >= 262143UL) {
Serial.println("Optical ADC saturated; adjust optical setup and LED current");
} else {
Serial.print("Red_ADC="); Serial.print(red);
Serial.print(" IR_ADC="); Serial.println(ir);
}
}
const uint32_t now = millis();
if (now - lastSample > 2000UL && now - lastWarning > 2000UL) {
Serial.println("No fresh samples for 2 s");
lastWarning = now;
}
delay(5);
}
Полный скетч ESP32-DevKitC V4 (ESP32-WROOM-32), Arduino-ESP32 3.3.2 и SparkFun MAX3010x 1.1.2. API setup/check/available/getFIFO/nextSample проверен по исходникам; компиляция и аппаратный тест не выполнялись. Serial Monitor: 115200 бод. 100 выборок/с с усреднением 4 дают номинально 25 наборов Red+IR в секунду. Проверьте изменение отсчётов при спокойном лёгком контакте с сенсором без сильного прижатия. Ноль не трактуется как отсутствие пульса. Драйвер не предоставляет отдельный результат каждой FIFO-транзакции, поэтому скетч обнаруживает отсутствие связи, поток данных и край насыщения, но не все виды повреждения данных. Для точной регистрации дополнительно контролируют переполнение FIFO и целостность потока. Код не вычисляет пульс и SpO₂.
Проекты с этим компонентом
Все проектыСвязанные проекты пока не опубликованы.
