【开源】ESP8266_MAX30102_OLED屏幕实现血氧心率检测

本文介绍了一个基于ESP8266和MAX30102传感器的项目,用于通过OLED屏幕实时显示血氧饱和度和心率。代码中包含了库的引用、硬件连接、初始化设置以及数据的读取和显示。通过I2C和SPI协议与设备通信,实现了嵌入式系统的健康监测功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本系列,是记录自己入门嵌入式领域的学习笔记。

看看能坚持多久。

今天是2023年5月2日

源代码的来源:https://github.com/yangqingyuan-byte/MAX30102-0.96_4pin_oled-esp8266_HR_and_SPO2

项目需求:

ESP8266_MAX30102_OLED屏幕实现血氧心率检测

硬件连接:

* ESP8266 --- OLED

* GND --- GND *

* 5V --- VCC 

* D1 --- SCL 

* D2 --- SDA 

* ESP8266 --- MAX30102

* 5V --- VIN

* G --- GND

* D0 --- INT

* D1 --- SCL

* D2 --- SDA

 

程序源码:

引入库

#include <U8g2lib.h>
#include <SPI.h>
#include <Wire.h>
#include "algorithm_by_RF.h"
#include "max30102.h"

这段代码引入了需要用到的库。其中 U8g2lib 是一个用于字体显示的库;SPI、Wire 分别是用于支持 SPI 和 I2C 协议的库;algorithm_by_RF 和 max30102 分别是根据最大值和最小值计算心率和血氧的自定义库。

// uncomment below line if cannot calculate readings
#define REVERSE_LED

这里定义了 REVERSE_LED 宏。如果无法计算读数,则应取消此行代码的注释。

OLED 屏幕初始化

U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);

定义了一个 U8G2_SSD1306_128X64_NONAME_F_SW_I2C 类型的对象 u8g2,这个对象代表了 OLED 屏幕,并把屏幕连接到 I2C 总线上。

void setup()
{
  pinMode(oxiInt, INPUT); // pin D0 connects to the interrupt output pin of the MAX30102
  u8g2.begin();
  u8g2.enableUTF8Print();
  u8g2.clearBuffer();
  delay(2000);
  u8g2.setFont(u8g2_font_unifont_tr);
  u8g2.setCursor(0, 14);
  u8g2.print("Initializing...");
  u8g2.sendBuffer();
  Wire.begin();

  Serial.begin(115200);
  Serial.println("Initializing");

  maxim_max30102_reset(); // resets the MAX30102
  maxim_max30102_read_reg(REG_INTR_STA
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值