设备信息- 硬件: [Arduino UNO]
- 接入方式: [BLE]HM-10模块
- package版本: 最新
- blinker库版本: 最新
- 开发环境: [Arduino IDE]
- 操作系统: [Windows]
IDE 中的设置- 开发板类型和COM口选取正常
- 其他都是默认设置
手机信息及APP信息 - 红米K30
- android 10
- 2.5.2
问题描述用的是PulseSensor传感器和Arduino 通过BLE连接并上传数据给Blinker,每次心跳都会手机振动并上传数据。
可以流畅运行
串口监视器看起来正常
手机振动的频率也很正常
文档里的蓝牙实例看过了,这个也没有报错,没有错误码
但是!APP界面的数据不会更新,只会显示同一个数据或显示0。
代码#define BLINKER_BLE
#include <Blinker.h>
#define USE_ARDUINO_INTERRUPTS true // 使用Arduino中断。
#include <PulseSensorPlayground.h> // 引入PulseSensor库文件。
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); //定义开发板之间串口通信的引脚RX=2,TX=3
//定义APP按钮和数据键名
BlinkerNumber APPBPM("bpm_read");
//PulseSensor相关的东西
const int PulseWire = 0; // PulseSensor PURPLE WIRE connected to ANALOG PIN 0
const int LED13 = 13; // The on-board Arduino LED, close to PIN 13.
int Threshold = 550;
int bpm_read = 60;
PulseSensorPlayground pulseSensor;
void heartbeat()
{
APPBPM.print(bpm_read);//向移动端回传BPM数据
}
void setup() {
Serial.begin(9600);
BLINKER_DEBUG.stream(Serial);
BLINKER_DEBUG.debugAll();
// 初始化位置引脚作为输入。
pinMode(PulseWire, INPUT);
Blinker.begin();
Blinker.attachHeartbeat(heartbeat);//APP端获取传输的数据
// 定义PulseSensor的心跳显示灯.
pulseSensor.analogInput(PulseWire);
pulseSensor.blinkOnPulse(LED13); //脉搏灯输出引脚.
pulseSensor.setThreshold(Threshold);
// 当心率脉搏传感器开始运作,则引入头文件.
if (pulseSensor.begin()) {
Serial.println("心率测量已就绪。"); //This prints one time at Arduino power-up, or on Arduino reset.
}
}
void loop() {
bpm_read = pulseSensor.getBeatsPerMinute(); // 获取心跳数据.
if (pulseSensor.sawStartOfBeat()) { //当心跳发生时获取和处理心率数据
Serial.println("检测到一次心跳!");
Serial.print("BPM: ");
Serial.println(bpm_read); //串口监视器显示bpm数据
Blinker.vibrate(660);
}
Blinker.delay(20); // considered best practice in a simple sketch.
}
LOG信息23:36:59.504 -> [150429] autoFormatData data: "vibrate":660
23:36:59.551 -> [150445] strlen(_sendBuf): 0
23:36:59.551 -> [150476] data.length(): 13
23:36:59.643 -> [150604] print: {"vibrate":660}
23:36:59.690 -> [150604] Proto print...
23:36:59.690 -> [150604] Freeheap: 990
23:36:59.736 -> [150623] Response: {"vibrate":660}
23:36:59.736 -> [150660] Success...
23:36:59.781 -> [150701] Freeheap: 1160
23:37:00.013 -> 检测到一次心跳!
23:37:00.013 -> BPM: 69
23:37:00.013 -> [150962] autoFormatData data: "vibrate":660
……(和上面一样)
23:37:00.290 -> [151233] Freeheap: 1160
23:37:00.337 -> 检测到一次心跳!
23:37:00.382 -> BPM: 73
23:37:00.382 -> [151279] autoFormatData data: "vibrate":660
……(和上面一样)
23:37:00.661 -> [151580] Freeheap: 1160
23:37:03.585 -> 检测到一次心跳!
23:37:03.631 -> BPM: 206
每次心跳都会有一组信息
编译信息编译没有报错
|