打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ESP32直连Phyphox任意传输测量量

ESP32直连Phyphox任意传输测量量

通过ESP32给手机物理工坊即Phyphox编程或创作实验,数据的收发是按照小端序Little Endian来存储的。知道了这个道理,我们能够攻克使用Phyphox官方BLE库来实验创作的两处困难:

1.使用官方BLE库创作实验,只能传输float浮点型数据,不能传输int整型、char字符或字符数组。官方BLE库没给其他类型数据的接口函数。大概官方以为Phyphox里面没有字符或字符数组类型变量,因此也就无需创作者使用这些类型。

2.使用官方BLE库创作实验,最多只能传输5个浮点型变量,算上时间,最多6个。在官方库的源码里:

void PhyphoxBLE::write(float& f1, float& f2, float& f3, float& f4)
{
  float array[4] = {f1, f2, f3, f4};
  data = reinterpret_cast<uint8_t*>(array);
  dataCharacteristic->setValue(data,16);
  dataCharacteristic->notify();
}

官方源码为什么要这样一个一个的函数重写来实现传输数据的用意,我们难于知道;但是,Phyphox Editor里面允许用户传输有格式字符串formattedString,并指示出预先设定的分隔符separator。如果我们在传输数据时,把多个传感器的测量数据提前拼接成字符串,再使用formattedString传输,由Phyphox Editor拆分开,也就实现了多数据传输了。

这里只测试字符串,以示道理。

仍然使用ESP32 BLE Arduino里的BLE_notify.ino修改。不改动的部分,以……表示。

原来的代码:

#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include <BLE2902.h>

BLEServer* pServer = NULL;
BLECharacteristic* pCharacteristic = NULL;
bool deviceConnected = false;
bool oldDeviceConnected = false;

uint8_t value = 0;//这里需要改动

#define SERVICE_UUID        "4fafc201-1fb5-459e-8fcc-c5c9c331914b"
#define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8"

……

void loop() {//以下需要改动
    // notify changed value
    if (deviceConnected) {
        pCharacteristic->setValue(&value, 1);
        pCharacteristic->notify();
        value++;
        delay(10); 

    }
    ……
}

改动后的代码:

#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include <BLE2902.h>

BLEServer* pServer = NULL;
BLECharacteristic* pCharacteristic = NULL;
bool deviceConnected = false;
bool oldDeviceConnected = false;

std::string value = "";

#define SERVICE_UUID        "4fafc201-1fb5-459e-8fcc-c5c9c331914b"
#define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8"

……

void loop() {
    value = "12345.67";
    delay(500);
    // notify changed value
    if (deviceConnected) {
        pCharacteristic->setValue(value);        
        pCharacteristic->notify();
//        value++;
        delay(3); 
    }

……
}

到Phyphox editor里面:

运行效果:

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
真实打工人的一天,他们的18岁给你的孩子提了个醒
2022届深圳高三二模作文“自尊与自谦”审题指导及下水范文
2022春国家开放大学电大大作业终结性考试试题及答案
小升初50道经典奥数题,有空练练手!(附答案以及详细解析)
为什么犹太人不是精英就是富豪?秘密藏在这两条家庭教育里
三年级下册数学竖式计算题600题(可直接打印)
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服