前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Phyphox介绍和相关BLE库下载

Phyphox介绍和相关BLE库下载

作者头像
云深无际
发布2021-10-20 11:06:55
1.2K0
发布2021-10-20 11:06:55
举报
文章被收录于专栏:云深之无迹云深之无迹

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

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

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

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

将这些数据可以导出

目前支持导出的数据

可以使用电脑控制

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

SO。。。

代码语言:javascript
复制
https://github.com/phyphox/phyphox-arduino

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

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

代码语言:javascript
复制
#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

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

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

代码语言:javascript
复制
#ifndef PHYPHOXBLE
#define PHYPHOXBLE
static 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;
    }
};
代码语言:javascript
复制
https://phyphox.org/source/

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

代码语言:javascript
复制
https://github.com/phyphox/phyphox-android

安卓app的源码

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档