Обзор
KY-039 — это модуль датчика сердцебиения, который использует инфракрасный светодиод и фототранзистор для обнаружения сигналов пульса. Он формирует аналоговый выходной сигнал, соответствующий сердцебиению, что делает его подходящим для мониторинга состояния здоровья и смежных областей.
KY-039 — это аналоговый датчик для измерения частоты сердечных сокращений. Модуль работает по принципу просвечивания пальца ИК-излучением и фиксации изменений кровотока, что позволяет использовать его в фитнес-трекерах и проектах биообратной связи.
О датчике пульса KY-039
Модуль датчика сердцебиения KY-039 предназначен для обнаружения пульса путем измерения изменений кровотока в пальце. Он использует инфракрасный (ИК) светодиод и фототранзистор для фиксации этих изменений. Когда палец помещается между ИК-светодиодом и фототранзистором, модуль выдает аналоговое напряжение, соответствующее обнаруженному сердцебиению. Этот датчик обычно используется в проектах мониторинга здоровья, фитнес-приложениях и системах биологической обратной связи.
Приобретите Датчик пульса KY-039
Характеристики KY-039
Технические параметры модуля датчика сердцебиения KY-039:
Распиновка KY-039
KY-039 — это 3-контактный оптический модуль датчика сердцебиения:
- ❤️ Нужен палец между ИК и фототранзистором.
- 🔌 3.3В для ESP32, 5В для Arduino.
- 📊 Аналоговый сигнал требует фильтрации в коде.
| № | Имя | Тип | Описание |
|---|---|---|---|
| 1 | VCC | POWER | Питание (3.3В - 5В) |
| 2 | GND | GROUND | Земля (0В) |
| 3 | S | SIGNAL | Аналоговый выход (пульсовая волна) |
Подключение KY-039 к ESP32
Для сопряжения KY-039 с ESP32 для обнаружения сердцебиения:
Здесь должна быть схема подключения
- ⚡ Рекомендуется 3.3В для работы с ESP32.
- 🎯 Используйте АЦП пины (GPIO 32-39).
- 🤲 Нажимайте на датчик плавно и стабильно.
| KY-039 Pin | → | ESP32 Pin | Описание |
|---|---|---|---|
| VCC | → | 3.3V | Питание |
| GND | → | GND | Земля |
| S (Signal) | → | GPIO34 | Аналоговый вход |
Устранение неполадок KY-039
Распространенные проблемы и их решения для датчика KY-039:
❌ Сигнал не обнаружен
- Проверьте подачу питания (3.3В или 5В).
- Убедитесь в надежности всех соединений.
- Фоторезистор очень чувствителен к внешнему свету — накройте датчик пальцем плотнее или используйте в полумраке.
⚠️ Нестабильные или шумные показания
Аналоговый сигнал с KY-039 требует программной фильтрации. Попробуйте усреднение по 10-20 выборкам или использование библиотек для выделения пиков пульса.
Примеры программирования KY-039
Готовые примеры кода для различных платформ и сред разработки.
Arduino
Универсальный скетч
C++
#define SENSOR_PIN A0
void setup() {
Serial.begin(9600);
pinMode(SENSOR_PIN, INPUT);
Serial.println("KY-039 Heartbeat Sensor Test");
}
void loop() {
int sensorValue = analogRead(SENSOR_PIN);
Serial.println(sensorValue);
delay(10);
}
Этот код считывает аналоговое значение с датчика каждые 10 мс. Используйте «Serial Plotter» в Arduino IDE для визуализации графика пульса.
ESP-IDF
Native C++ Framework
C++
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/adc.h"
#define SENSOR_CHANNEL ADC1_CHANNEL_6 // GPIO34
void app_main(void) {
adc1_config_width(ADC_WIDTH_BIT_12);
adc1_config_channel_atten(SENSOR_CHANNEL, ADC_ATTEN_DB_11);
printf("KY-039 Heartbeat Sensor Test\n");
while (1) {
int raw = adc1_get_raw(SENSOR_CHANNEL);
float voltage = raw * (3.3 / 4095.0);
printf("Analog Voltage: %.2f V\n", voltage);
vTaskDelay(pdMS_TO_TICKS(10));
}
}
MicroPython
Python for esp32
Python
import machine
import time
SENSOR_PIN = machine.ADC(machine.Pin(34))
SENSOR_PIN.atten(machine.ADC.ATTN_11DB)
while True:
sensor_value = SENSOR_PIN.read()
voltage = (sensor_value / 4095) * 3300 # мВ
print("Analog Voltage:", voltage, "mV")
time.sleep(0.01)
Итоги
KY-039 — это простой и недорогой датчик для базового мониторинга пульса. Несмотря на чувствительность к помехам, он отлично подходит для обучения и DIY-проектов.
Идеально для прототипирования фитнес-устройств и изучения работы АЦП.
Не является медицинским прибором. Не используйте для критической диагностики.