phyphox通过蓝牙反控ESP32的技术细节
打住。前面一直在研究如何把ESP32等开发板采集的数据传到Phyphox里,于是Phyphox成为数据处理之后的表现层,让实验者在手机上看到实验的结果;而另一方面,手机本身也是携带众多的传感器的,例如Android自动支持十几种传感器,为什么不能反过来把手机作为一个巨大的多功能传感器呢? 答案是可能的。Phyphox BLE库也支持从手机传感器把数据传给ESP32,再送给电脑来处理,若是在电脑上做个程序界面,几乎没有什么是实现不了的了。 ESP32从Phyphox手机传感器获取数据和普通的由ESP32向手机Phyphox传送数据的实验创作步骤与思路不太相同,比较麻烦,但好过直接用蓝牙创作实验。仍然方便一些。ESP32端从手机Phyphox获取传感器数据的原理,是先在Arduino IDE里面编写ino,然后烧录到ESP32,运行起来,等待Phyphox来连接。 在phyphoxBle.cpp里,能见到PhyphoxBLE::read()函数,它读传感器数据然后把地址给蓝牙,然后蓝牙把这块指定长度的内存数据接收过来处理。 而在Phyphox里面,我们需要自己去编写.phyphox文件,指定蓝牙为output,指定为output的蓝牙有input口,这样在phyphox editor里编写了phyphox实验后,手机就成为十几种传感器的聚合体了。 这是一个用Phyphox检测手机所在的环境里光线强弱的实验:如果光照比较弱,ESP32会自动把连接在IO26脚上的高亮二极管点亮,而当环境光照比较强时,ESP32自动熄灭LED。 这个应用场景是显然的——打点计时器有个“先接通电源,后松开纸带”的事儿,Phyphox轻松可实现了,甚至可以使用phyphox来开发智能家居,把手机放在床头,晚上要去洗手间的时候,睁开眼睛四周黑魆魆一片不知暗得多深,于是拿起手机、打开phyphox,测不含g的加速度,摇一摇,原来暗处关闭的LED亮起来了。 .ino文件: #include <phyphoxBle.h> |
|
来自: 新用户5228KeDY > 《待分类》