정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

산소포화도 센서와 블루투스 연결간 질문입니다.
max | 2018-06-10

아두이노 우노사용중이고 센서로는 MAX30100 HC-06 그리고 lcd display를 사용중입니다.

lcd 디스플레이 까지는 센서값을 뛰었는데 블루투스 문제에 있어서 앱은 다 만들고 이제 블루투스 코딩만 문제가 남았습니다. 

 

max30100의 경우 scl-A5, sda-A4 / hc-06 RX-3 TX-2에 꽂았습니다. 제가 해놓은 코딩을 올리겠습니다.

블루투스 코딩 가르쳐주실 수 있으신가요..ㅠ

 

#include <FastIO.h>
#include <I2CIO.h>
#include <LCD.h>
#include <LiquidCrystal.h>
#include <LiquidCrystal_SR.h>
#include <LiquidCrystal_SR2W.h>
#include <LiquidCrystal_SR3W.h>
#include <LiquidCrystal_I2C.h>        
#include <Wire.h>
#include "MAX30100_PulseOximeter.h"
#include <SoftwareSerial.h>

#define REPORTING_PERIOD_MS     1000

SoftwareSerial BTSerial(2,3); // 블루투스 RX,TX

PulseOximeter pox;

uint32_t tsLastReport = 0;


void onBeatDetected()
{
    Serial.println("Beat!");
    
}

LiquidCrystal_I2C lcd(0x3F,2,1,0,4,5,6,7,3,POSITIVE);    
void setup()
{
  // 블루투스
  Serial.begin(9600); //컴퓨터와의 통신속도 설정
  BTSerial.begin(9600);//블루투스와의 통신속도 설정
  
    //Pulse Oximeter on
    lcd.begin(20,4);                  
    lcd.backlight();                
    lcd.setCursor(0,0);             
  
   
    Serial.begin(9600);

     
     lcd.setCursor(0,0); 
     lcd.print("Start Oximeter...");
     delay(1000);
     lcd.clear();
      
     
    if (!pox.begin()) {
      lcd.setCursor(0,0); 
      lcd.print("FAIL");
        //delay(1000);
      lcd.clear();
        for(;;);
    } else {
      lcd.setCursor(0,0); 
      lcd.print("SUCCESS");
         //delay(1000);
      lcd.clear();
    }
    pox.setOnBeatDetectedCallback(onBeatDetected);

}
void loop()
{
   if(BTSerial.available())//블루투스로부터 읽어들인 값이 있으면
  {
    Serial.write(BTSerial.read());//컴퓨터 화면에 출력함.
  }
  if(Serial.available())//컴퓨터로부터 읽어들인 값이 있으면
  {
    BTSerial.write(Serial.read());//블루투스에 전송함
  }
    pox.update();
    
    if (millis() - tsLastReport > REPORTING_PERIOD_MS) {
        // Heart rate
        lcd.setCursor(0,0); 
        lcd.print("Heart rate:");
         
        lcd.setCursor(11,0); 
        lcd.print(pox.getHeartRate(),0);
        lcd.setCursor(14,0);
        lcd.print("BPM");
        
        lcd.setCursor(0,1); 
        lcd.print("SpO2:");
        
        lcd.setCursor(5,1); 
        lcd.print(pox.getSpO2());
      
        lcd.setCursor(8,1);
        lcd.print("%");
        Serial.print("Heart rate:");
        Serial.print(pox.getHeartRate(),0);
        Serial.print("bpm / SpO2:");
        Serial.print(pox.getSpO2(),0);
        Serial.println("%");
       
        tsLastReport = millis();
    }
    
}

    

이전글   |    아두이노 트린켓 에러 질문 2018-06-08
다음글   |    아두이노 우노 스위치센서 관련 소스질문입니다.... 2018-06-10