找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2868|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

自制ESP8266+MAX30100血氧儀

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:997011 發(fā)表于 2023-2-18 07:25 | 只看該作者 |只看大圖 回帖獎勵 |正序瀏覽 |閱讀模式
   用一片ESP-12E和一只MAX30100心率血氧傳感器模塊制做了一臺血氧儀心率。整機裝在一個兩節(jié)5號電池盒里。為了長期監(jiān)測病人所以采用5伏供電。當(dāng)病人血氧飽和度低于93或者心率大于120或小于50時內(nèi)置蜂鳴器就會發(fā)出報警聲。由于MAX30100工作程序本人在BLINKER程序或者巴法云程序中都未能使其正常工作。所以該儀器目前還無法遠(yuǎn)程報警推送信息。內(nèi)部結(jié)構(gòu)圖和儀器顯示圖如下。若有需求再將程序奉上。

a4f1cc68fc3ee10fb20032d93cd81232.jpg (295.17 KB, 下載次數(shù): 93)

a4f1cc68fc3ee10fb20032d93cd81232.jpg

865c842707aae3c89204ce0c0ead4be7.jpg (259.72 KB, 下載次數(shù): 90)

865c842707aae3c89204ce0c0ead4be7.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

7#
ID:997011 發(fā)表于 2023-2-20 07:41 | 只看該作者
lising 發(fā)表于 2023-2-20 00:07
大概率是軟件問題,你可以嘗試用別人例程中的初始化程序替換一下試試。

內(nèi)部結(jié)構(gòu)圖。

e2f0860fa91f633655dd9926043e4b65.jpg (303.46 KB, 下載次數(shù): 85)

e2f0860fa91f633655dd9926043e4b65.jpg
回復(fù)

使用道具 舉報

6#
ID:997011 發(fā)表于 2023-2-20 07:38 | 只看該作者
lising 發(fā)表于 2023-2-20 00:07
大概率是軟件問題,你可以嘗試用別人例程中的初始化程序替換一下試試。

用其它的程序以前也試過總是隔行缺矢顯示,雖然不正常但還可使用。下面是血氧儀 的程序:
#include <Arduino.h>
#include <U8g2lib.h>
#include "MAX30100_PulseOximeter.h"

#include <Wire.h>
#include <SPI.h>

U8G2_SSD1306_128X64_NONAME_1_4W_SW_SPI u8g2(U8G2_R0,  3,  1,  15,  0,  14);
#define REPORTING_PERIOD_MS     1000
PulseOximeter pox;
int c=0;
int k=0;
int bpm=0;
int SpO2=0;
int bsum,ds1,ds2,ds3,ds4,ds5,ds6,ds7,ds8,ds9,ds10;
uint32_t tsLastReport = 0;

void onBeatDetected()
{
   if((SpO2<93)||(bpm>120)||(bpm<50)) c++;  
else c=0;
  if(c>5)  digitalWrite(2,HIGH);  
k++;
}
void setup()   {   
  Serial.begin(115200);
  pox.setIRLedCurrent(MAX30100_LED_CURR_11MA);
  pox.setOnBeatDetectedCallback(onBeatDetected);
  u8g2.begin();
   pox.begin();
pinMode(2, OUTPUT);
digitalWrite(2,LOW);

}
void loop()
{
pox.update();
if (millis() - tsLastReport > REPORTING_PERIOD_MS) {
        
        bpm=pox.getHeartRate();
      
        SpO2=pox.getSpO2();
ds1=ds2;
ds2=ds3;
ds3=ds4;
ds4=ds5;
ds5=ds6;
ds6=ds7;
ds7=ds8;
ds8=ds9;
ds9=ds10;
ds10=bpm;
bsum=(ds1+ds2+ds3+ds4+ds5+ds6+ds7+ds8+ds9+ds10)/10;      
  tsLastReport = millis();
  }
if(k>10) {  
  u8g2.firstPage();
  do {
    u8g2.setFont(u8g2_font_ncenB14_tr);
    u8g2.setCursor(0, 16);
    u8g2.print(F("bpm:"));
    u8g2.setCursor(70, 16);
    u8g2.print(F("SpO2:"));
    u8g2.setFont(u8g2_font_logisoso34_tf);
    u8g2.setCursor(0, 63);
    u8g2.print(bsum);
    u8g2.setCursor(82, 63);
    u8g2.print(SpO2);
  } while ( u8g2.nextPage() );
}
else {
  u8g2.firstPage();
  do {
    u8g2.setFont(u8g2_font_ncenB14_tr);
    u8g2.setCursor(0, 16);
    u8g2.print(F("bpm:"));
    u8g2.setCursor(70, 16);
    u8g2.print(F("SpO2:"));
    u8g2.setFont(u8g2_font_logisoso34_tf);
    u8g2.setCursor(0, 63);
    u8g2.print(F("...."));
    u8g2.setCursor(82, 63);
    u8g2.print(F("...."));
  } while ( u8g2.nextPage() );
}
delay(500);
}
回復(fù)

使用道具 舉報

5#
ID:14010 發(fā)表于 2023-2-20 00:07 | 只看該作者
大概率是軟件問題,你可以嘗試用別人例程中的初始化程序替換一下試試。
回復(fù)

使用道具 舉報

地板
ID:997011 發(fā)表于 2023-2-19 05:55 | 只看該作者
lising 發(fā)表于 2023-2-19 00:21
oled的顯示驅(qū)動應(yīng)該調(diào)整一下,顯示好像有點問題。

謝謝指導(dǎo),請問顯示驅(qū)動怎樣調(diào)整?我覺得像是oled的顯示屏硬件問題。
回復(fù)

使用道具 舉報

板凳
ID:14010 發(fā)表于 2023-2-19 00:21 | 只看該作者
oled的顯示驅(qū)動應(yīng)該調(diào)整一下,顯示好像有點問題。
回復(fù)

使用道具 舉報

沙發(fā)
ID:430492 發(fā)表于 2023-2-18 15:36 | 只看該作者
第二圖樣子做得很專業(yè)的樣子,不錯!
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表