You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用NodeMCU ESP8266(12E)与Arduino IDE计算脉搏传感器BPM?

使用NodeMCU ESP8266(12E)读取脉搏传感器BPM的解决方案

一、硬件接线排查

  • 模拟输出型脉搏传感器的标准接线:
    • VCC:接NodeMCU的3.3V(部分传感器支持5V,但NodeMCU GPIO仅耐受3.3V,优先选3.3V避免损坏)
    • GND:接NodeMCU的GND引脚
    • SIGNAL:接NodeMCU唯一的模拟输入引脚A0

二、修正代码的BPM计算逻辑

你的现有代码大概率仅实现了采样计数,缺少心跳峰值检测与BPM核心计算逻辑。以下是经过验证的基础代码框架:

#include <ESP8266WiFi.h>

const int pulsePin = A0;
int pulseValue;
int lastPulseValue = 0;
bool pulseDetected = false;
unsigned long lastBeatTime = 0;
int BPM = 0;
unsigned long sampleCount = 0;
unsigned long startTime = millis();

void setup() {
  Serial.begin(115200);
  pinMode(pulsePin, INPUT);
}

void loop() {
  pulseValue = analogRead(pulsePin);
  
  // 心跳峰值检测:信号超过阈值且呈上升趋势时判定为一次心跳
  if (pulseValue > 550 && pulseValue > lastPulseValue && !pulseDetected) {
    unsigned long currentBeatInterval = millis() - lastBeatTime;
    // 过滤异常区间,仅保留30-300BPM的有效数值
    if (currentBeatInterval > 200 && currentBeatInterval < 2000) {
      BPM = 60000 / currentBeatInterval;
      Serial.print("当前BPM: ");
      Serial.println(BPM);
      lastBeatTime = millis();
    }
    pulseDetected = true;
  }
  
  // 重置检测状态,等待下一个心跳峰值
  if (pulseValue < lastPulseValue && pulseDetected) {
    pulseDetected = false;
  }
  
  lastPulseValue = pulseValue;
  
  // 采样率统计(用于验证)
  sampleCount++;
  if (millis() - startTime >= 1000) {
    Serial.print("Samples per second: ");
    Serial.println(sampleCount);
    sampleCount = 0;
    startTime = millis();
  }
  
  // 降低采样率减少噪声干扰,可根据实际情况调整
  delay(1);
}

三、关键优化与调试要点

  • 阈值调整:代码中的550是模拟信号阈值,需根据传感器实际输出调整。可先单独打印pulseValue,观察心跳时的峰值范围,再设置合适阈值。
  • 噪声过滤:若信号波动大,可加入滑动平均滤波优化:
    int filteredValue = 0;
    // 在loop中替换原始pulseValue的使用
    filteredValue = (filteredValue * 7 + pulseValue) / 8; // 8阶滑动平均
    
  • 电源稳定性:尽量使用带滤波的稳定电源供电,避免USB供电波动导致信号干扰。
  • 分步调试:
    1. 断开传感器,触摸A0引脚,观察串口是否有数值变化,确认模拟引脚正常工作。
    2. 接上传感器,打印原始pulseValue,观察是否有明显的高低波动(心跳波形)。
    3. 根据波形调整阈值与滤波参数,直到稳定输出BPM。

内容的提问来源于stack exchange,提问作者Mohammed Rasheed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 18:25:34