当前位置:   article > 正文

心率血氧传感器模块MAX30102_esp-1 max30102心率血氧

esp-1 max30102心率血氧

心率血氧传感器模块MAX30102实物图

 

模块简介
MAX30102是一个集成的脉搏血氧仪和心率监测仪生物传感器的模块。

它集成了一个红光LED和一个红外光LED、光电检测器、光器件,以及带环境光抑制的低噪声电子电路

MAX30102采用一个1.8V电源和一个独立的5.0V用于内部LED的电源,应用于可穿戴设备进行心率和血氧采集检测,佩戴于手指点耳垂和手腕处。

标准的I2C兼容的通信接口可以将采集到的数值传输给Arduino、KL25Z、STM32、STC51等单片机进行心率和血氧计算。

此外,该芯片还可以通过软件关断模块,待机电流接近为零,实现电源始终维持供电状态。

未把手指放上时------

把手指放上检测------ 

 

 

  1. #include <Wire.h>
  2. #include "MAX30105.h"
  3. #include "heartRate.h"
  4. MAX30105 particleSensor;
  5. const byte RATE_SIZE = 4;
  6. byte rates[RATE_SIZE]; // 心率数组
  7. byte rateSpot = 0;
  8. long lastBeat = 0; // 最后记录心率的时间
  9. float beatsPerMinute;
  10. int beatAvg;
  11. int Buzzer;
  12. int pin=8;
  13. void setup()
  14. {
  15. Serial.begin(115200);
  16. Serial.println("Initializing...");
  17. // 初始化传感器
  18. if (!particleSensor.begin(Wire, I2C_SPEED_FAST)) // 默认使用I2C,400KHZ频率
  19. {
  20. Serial.println("MAX30105 was not found. Please check wiring/power. ");
  21. while (1);
  22. }
  23. Serial.println("Place your index finger on the sensor with steady pressure.");
  24. particleSensor.setup(); //使用默认设置配置传感器
  25. particleSensor.setPulseAmplitudeRed(0x0A); // 将红色LED拉低,表示传感器正在运行
  26. }
  27. void loop()
  28. {
  29. long irValue = particleSensor.getIR();
  30. if (checkForBeat(irValue) == true)
  31. {
  32. // 感应到心率
  33. long delta = millis() - lastBeat;
  34. lastBeat = millis();
  35. beatsPerMinute = 60 / (delta / 1000.0);
  36. if (beatsPerMinute < 255 && beatsPerMinute > 20)
  37. {
  38. rates[rateSpot++] = (byte)beatsPerMinute; // 将此读数存储在数组中
  39. rateSpot %= RATE_SIZE; //Wrap variable
  40. //Take average of readings 取读数的平均值
  41. beatAvg = 0;
  42. for (byte x = 0 ; x < RATE_SIZE ; x++)
  43. beatAvg += rates[x];
  44. beatAvg /= RATE_SIZE;
  45. if (beatsPerMinute > 70)
  46. {
  47. digitalWrite(8,HIGH) ; //蜂鸣器响
  48. delay(1000); //延时1000ms
  49. digitalWrite(8,LOW); //蜂鸣器关闭
  50. }
  51. }
  52. }
  53. Serial.print("IR=");
  54. Serial.print(irValue);
  55. Serial.print(", BPM=");
  56. Serial.print(beatsPerMinute);
  57. Serial.print(", Avg BPM=");
  58. Serial.print(beatAvg);
  59. if (irValue < 50000)
  60. Serial.print(" 未识别?");
  61. Serial.println();
  62. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/383029
推荐阅读
相关标签
  

闽ICP备14008679号