아두이노 우노사용중이고 센서로는 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();
}
}
|