如何将 MAX30100 脉冲传感器连接到 ESP32 的不同 i2c 引脚并读取数据?
Posted
技术标签:
【中文标题】如何将 MAX30100 脉冲传感器连接到 ESP32 的不同 i2c 引脚并读取数据?【英文标题】:How to connect MAX30100 pulse sensor to a different i2c pins of ESP32 and read data? 【发布时间】:2021-12-06 02:49:47 【问题描述】:我正在为我的项目使用 ESP32 30 针板,MAX30100 脉冲传感器。 我可以将此传感器连接到 ESP32 的不同 i2c 引脚,即不是默认引脚(21,22)。
但我不知道如何从 MAX30100 读取数据,如果它连接到不同的引脚 -(比如说 32、33)
这是我使用默认 i2c 引脚从 MAX30100 读取数据的程序
#include <Wire.h>
#include "MAX30100_PulseOximeter.h"
#define BLYNK_PRINT Serial
#include <Blynk.h>
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#define REPORTING_PERIOD_MS 1000
char auth[] = "*******************"; // You should get Auth Token in the Blynk App.
// Connections : SCL PIN - D1 , SDA PIN - D2 , INT PIN - D0
PulseOximeter pox;
float BPM, SpO2;
uint32_t tsLastReport = 0;
void onBeatDetected()
Serial.println("Beat Detected!");
void setup()
Serial.begin(115200);
pinMode(19, OUTPUT);
Blynk.begin(auth,"************", "**********");
Serial.print("Initializing Pulse Oximeter..");
if (!pox.begin())
Serial.println("FAILED");
for(;;);
else
Serial.println("SUCCESS");
pox.setOnBeatDetectedCallback(onBeatDetected);
// The default current for the IR LED is 50mA and it could be changed by uncommenting the following line.
pox.setIRLedCurrent(MAX30100_LED_CURR_7_6MA);
void loop()
pox.update();
Blynk.run();
BPM = pox.getHeartRate();
SpO2 = pox.getSpO2();
if (millis() - tsLastReport > REPORTING_PERIOD_MS)
Serial.print("Heart rate:");
Serial.print(BPM);
Serial.print(" bpm / SpO2:");
Serial.print(SpO2);
Serial.println(" %");
Blynk.virtualWrite(V3, BPM);
Blynk.virtualWrite(V4, SpO2);
tsLastReport = millis();
如何将 MAX30100 连接到其他引脚?说明应该是什么?
PulseOximeter pox;
这条指令是什么意思?
【问题讨论】:
为什么不能使用默认引脚?我问这个是因为很多人似乎没有意识到您可以将多个 I2C 设备连接到一对 I2C 引脚。如果这是您关心的问题,那可能不是真正的问题。 【参考方案1】:你应该在图书馆改变方向:
Link to library file in github
第 29 行:将其更改为
Wire.begin(SDA_PIN, SCL_PIN);
其中 SDA_PIN 和 SCL_PIN 是您自己的路由定义。
注意:如果您更改库,您将需要始终使用该引脚进行所有开发,因此如果您在本地导入该库可能会更好,或者如果您更改库甚至更好,因此如果您不传递任何引脚参数通常默认为 I2C 引脚,但如果已定义,则使用已定义的引脚。
【讨论】:
以上是关于如何将 MAX30100 脉冲传感器连接到 ESP32 的不同 i2c 引脚并读取数据?的主要内容,如果未能解决你的问题,请参考以下文章
ESP8266 运行 NodeMCU - 检测脉冲流开始/停止
如何通过 STM32CubeIDE 将 ESP8266 Wifi 模块连接到 Firebase