MAX30100脉搏血氧传感器与Arduino接入指南:获取PPG波形与SpO2
硬件准备
| 模块 | 型号 | 接口 |
|---|---|---|
| 脉搏血氧模块 | ProtoCentral MAX30100 Breakout | I2C (A4/A5) |
| 主控板 | Arduino Uno |
接线:VIN→3.3V/5V(模块支持)、GND→GND、SCL→A5、SDA→A4。建议加装4.7kΩ上拉电阻至3.3V。
软件工具链
- Arduino IDE:烧录采集固件
- Processing IDE:可视化PPG波形与SpO2数值(Java基础,类Arduino语法)
Processing环境搭建步骤
- 下载安装Processing:官网选择对应系统版本
- 获取可视化代码:从 ProtoCentral/Pulse 克隆或下载
Pulse-master/Processing/ces_view_oximeter文件夹 - 放入Sketchbook目录:
Windows:C:/My Documents/Processing/
Mac:/Users/用户名/Documents/Processing/
Linux:/Home/用户名/sketchbook/
在该目录下创建libraries文件夹,将Pulse-master/Processing/libraries/G4P复制进去 - 重启Processing IDE,打开
ces_view_oximeter任意.pde文件,点击运行 - GUI中选择对应串口,点击START,即可看到红/红外双通道PPG波形与实时SpO2读数
- MAX30100集成红光(660nm)与红外(940nm)LED + 光电二极管,通过透射/反射式测量指尖/耳垂血容量变化
- PPG波形峰谷对应心跳周期,红/红外AC/DC分量比值经经验公式换算SpO2
- 适用场景:可穿戴健康监测、睡眠呼吸暂停筛查、运动心率追踪、教学演示
- 供电电压确认:模块有3.3V/5V版本,勿接错
- I2C上拉电阻必不可少,否则通信不稳定
- 手指按压力度、环境光干扰、体动伪影均影响信号质量,需软硬件结合滤波
- Processing可视化仅为演示,医疗级应用需校准算法、温度补偿、运动伪影抑制
- Arduino库与示例:GitHub ProtoCentral/Pulse
- 原理图与PCB设计文件:同仓库
Hardware目录 - 数据手册:Maxim MAX30100 Datasheet
Arduino固件
使用 ProtoCentral Pulse库,示例代码持续通过串口输出原始红光/红外ADC值,供Processing解析计算心率、血氧。
原理与应用
注意事项
资源汇总
制造工艺
- 树莓派传感器数据融合实战:GPS 与 MPU‑9150 IMU 的 I²C 与 UART 接入
- 树莓派连接 HC-SR04 超声波传感器实战指南
- 将 Acconeer A111 脉冲雷达与树莓派集成:实用指南
- 掌握 PSoC 6 Pioneer 开发板与 IoT 扩展盾:开发者指南
- Arduino Mega 按键 PWM 调光:三阶段渐变 LED 实战教程
- Arduino Nano高速摄影控制器 – 定格水滴碰撞瞬间
- 基于 Arduino 与 Python 的可靠 RFID 考勤系统
- DHT11 温湿度传感器项目:LED 指示与压电蜂鸣器报警
- 基于 Arduino Uno 的人体检测救援机器人:传感器集成分步指南
- K30 CO₂ 传感器:室内空气质量实时监测
- Arduino 红外心率传感器 DIY:低成本高精度,串口绘图器实时波形
- 自制简易红外避障传感器:IR LED + 光电二极管 + Arduino