?>

Hard Copy World

HCW

Q&A

Home > Forum >

Q&A

질문 | Max 30100 센서값을 핸드폰으로

페이지 정보

작성자 우우노 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일18-06-10 01:24 조회554회 댓글1건

본문

안녕하세요. 아두이노 우노를 사용중이고MAX30100과 hc-06을 이용하여 핸드폰 앱으로 센서값을 전달시키려고 합니다.
현재 lcd를 이용하여 센서값 까지는 떴는데 블루투스쪽 코딩쪽을 잘 모르겠어서 글 올립니다.
MAX30100의 연결로는 SCL-A5, SDA-A4 연결 hc-06은 RXD-3, TXD-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);

    //Start Oximeter LCD 異쒕젰
    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();
    }
   
}

입니다. 블루투스 코딩을 못하겠어요.. 성과전시회 때문에 급한데 도와주세요ㅠㅠ
   

댓글목록

최고관리자님의 댓글

최고관리자 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 작성일

블루투스 코딩은 아래가 전부입니다.

  if(BTSerial.available())//블루투스로부터 읽어들인 값이 있으면
  {
    Serial.write(BTSerial.read());//컴퓨터 화면에 출력함.
  }
  if(Serial.available())//컴퓨터로부터 읽어들인 값이 있으면
  {
    BTSerial.write(Serial.read());//블루투스에 전송함
  }

블루투스가 remote 기기에 연결만 되어 있으면 데이터가 전송됩니다. 전송하길 원하는 데이터를 BTSerial.write() 함수를 이용해서 전단만 하면 됩니다.