[Blinker+ArduinoUNO+BLE]蓝牙测数据求助-Arduino中文社区 - Powered by Discuz! Archiver

永远的学徒 发表于 2021-5-29 15:20

[Blinker+ArduinoUNO+BLE]蓝牙测数据求助

设备信息
[*]硬件:
[*]接入方式: HM-10模块
[*]package版本: 最新
[*]blinker库版本: 最新
[*]开发环境:
[*]操作系统:
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 -> autoFormatData data: "vibrate":660
23:36:59.551 -> strlen(_sendBuf): 0
23:36:59.551 -> data.length(): 13
23:36:59.643 -> print: {"vibrate":660}
23:36:59.690 -> Proto print...
23:36:59.690 -> Freeheap: 990
23:36:59.736 -> Response: {"vibrate":660}
23:36:59.736 -> Success...
23:36:59.781 -> Freeheap: 1160
23:37:00.013 -> 检测到一次心跳!
23:37:00.013 -> BPM: 69
23:37:00.013 -> autoFormatData data: "vibrate":660
……(和上面一样)
23:37:00.290 -> Freeheap: 1160
23:37:00.337 -> 检测到一次心跳!
23:37:00.382 -> BPM: 73
23:37:00.382 -> autoFormatData data: "vibrate":660
……(和上面一样)
23:37:00.661 -> Freeheap: 1160
23:37:03.585 -> 检测到一次心跳!
23:37:03.631 -> BPM: 206
每次心跳都会有一组信息

编译信息编译没有报错

coloz 发表于 2021-5-29 20:58

测试例程
页: [1]
查看完整版本: [Blinker+ArduinoUNO+BLE]蓝牙测数据求助