Phyphox介绍和相关BLE库下载

phyphox是个啥?众所周知,这个智能手机里面有很多的传感器,那能不能直接用这些传感器测量现实世界呢?然后把采集到的数据做一些后处理。

当然可以,上面这个应用就是做了这个事情。

你的智能手机就是一个移动的实验室

特点一,自带传感器的采集

将这些数据可以导出

目前支持导出的数据

可以使用电脑控制

但是大家又不满足于用自带的传感器,转眼看到了ESP32这个东西,十几块钱拥有WIFI+BLE。

SO。。。

https://github.com/phyphox/phyphox-arduino

其实只使用了软件的绘图功能

你也可以在Arduino里面直接搜索名字下载这个库

#include <phyphoxBle.h>
void setup() { PhyphoxBLE::start(); //Start the BLE server}
void loop() { float randomNumber = random(0,100); //Generate random number in the range 0 to 100 PhyphoxBLE::write(randomNumber); //Send value to phyphox delay(50); //Shortly pause before repeating}

一个简单的demo

但是这个库真没有什么水平。。。

就是一个数据接收而已,下面是最重要的两个函数

#ifndef PHYPHOXBLE#define PHYPHOXBLEstatic const char *phyphoxBleExperimentServiceUUID = "cddf0001-30f7-4671-8b43-5e40ba53514a";static const char *phyphoxBleExperimentCharacteristicUUID = "cddf0002-30f7-4671-8b43-5e40ba53514a";static const char *phyphoxBleExperimentControlCharacteristicUUID = "cddf0003-30f7-4671-8b43-5e40ba53514a";static const char *phyphoxBleDataServiceUUID = "cddf1001-30f7-4671-8b43-5e40ba53514a";static const char *phyphoxBleDataCharacteristicUUID = "cddf1002-30f7-4671-8b43-5e40ba53514a";static const char *phyphoxBleConfigCharacteristicUUID = "cddf1003-30f7-4671-8b43-5e40ba53514a";#include "Arduino.h"struct phyphoxBleCrc32{ static void generate_table(uint32_t (&table)[256]){ uint32_t polynomial = 0xEDB88320; for (uint32_t i = 0; i < 256; i++) { uint32_t c = i; for (size_t j = 0; j < 8; j++) { if (c & 1) { c = polynomial ^ (c >> 1); } else { c >>= 1; } } table[i] = c; } }
static uint32_t update(uint32_t (&table)[256], uint32_t initial, const uint8_t *buf, size_t len){ uint32_t c = initial ^ 0xFFFFFFFF; const uint8_t *u = static_cast<const uint8_t *>(buf); for (size_t i = 0; i < len; ++i) { c = table[(c ^ u[i]) & 0xFF] ^ (c >> 8); } return c ^ 0xFFFFFFFF; }};
https://phyphox.org/source/

官网几乎提供了所有的源码

https://github.com/phyphox/phyphox-android

安卓app的源码

更多的玩法,等我忙完我手头的活再说。

(0)

相关推荐