用ESP32开发板创作并扩充我们的Phyphox实验
用ESP32开发板创作并扩充我们的Phyphox实验
前几天看到Phyphox官方释出了Phyphox-BLE扩展库,消息是放在Arduino.cc官网的,https://www.arduino.cc/reference/en/libraries/phyphox-ble/,地址在https://github.com/Staacks/phyphox-arduino,自我介绍说还不是太成熟,然而给出的几个例子,已经能看到还是很完善的。这里作为一个简单的试用记录,没有说得详细。
一、基本概念
先介绍一点点基本的东西,我也是学习者,初学的N次方,菜得很。
1、ESP32开发板。简单说,ESP32就是一种集成蓝牙BLE、WIFI等功能的增强版物联网开发板,比常见的Arduino性能更强,用法相差不多。
2、Phyphox & Phyphox editor。Phyphox是专门针对物理实验开发的APP,它充分发挥android、iphone等设备的传感器功能,使手机、平板等化身而为移动的传感器实验室。Phyphox自带少量的定制实验,如果使用者要创作自己的实验,或者想研究自带实验的原理,可以使用实验编辑器Phyphox editor,这是个在线编辑器,用以创作个性化的创意实验。地址在https://phyphox.org/editor/。
3、蓝牙5.0 BLE。蓝牙是数据共享协议,经过几代发展,目前5.0协议的低功耗在安卓和苹果设备中可以同时被识别。一般情况下,蓝牙4.0之前的协议,苹果设备是肯定不识别的。
二、为什么是ESP32
1、Phyphox的传感器不足。一般来说手机上已经有足够多的传感器,但仍有不够用的时候。例如大部分安卓手机都没有压强计,大部分手机都无法直接测量力,即使用力传感器。
2、Phyphox的电学实验不足。电学实验普遍性使用的传感器,Phyphox不易做到,例如测量电压、电阻等。
3、Phyhox直连外部传感器。Phyphox直连外部传感器是个迫切需要,途径大概有3种:
一种是使用独立的蓝牙模块中转数据,第二种是Phyphox连同实验数据、实验面板等全部由外部传感器输入;第三种是改造手机某些传感器的功能,转化地连接,例如用音频口输入弱电流,把传感器数据调制到电流里,用磁传感器接收强电流,把传感器数据调制到强电流里。显然只有第2种方案最直接而便捷,即使用Phyphox-BLE扩展库。
4、为什么是ESP32。不好的消息是,Phyphox-BLE库常见地、只支持Arduino Nano 33系列开发板,这些开发板是Arduino最近几年才推出的,基本没有仿版,都是原装进口,价格很高。好消息是,Phyphox-BLE文档里面竟然列出ESP32这一款开发板。ESP32的原装板也很贵,但是它有改装版,GOOUUUESP32开发板即ESP-WROOM-32核心板就是一种最常见的ESP32开发板。
三、ESP32的Arduino IDE环境
在Arduino IDE的首选项里填写https://dl.espressif.com/dl/package_esp32_index.json更新地址,之后在开发板管理器里搜索ESP32,安装ESP32开发板定义。这个安装有非常大的下载量,大体地,翻墙最好,教育网次之,其他都不易下载。
安装好的ESP32库位于什么地方?不少常规的Arduino库默认是安装在Arduino程序目录下的libraries目录里,或者安装在系统盘文档(documents)目录下的Arduino目录下,但是,由Arduino IDE默认安装的ESP32库,是出现在C:\Users\user\AppData\Local\Arduino15\packages\esp32目录处。下载的安装包,则出现在C:\Users\user\AppData\Local\Arduino15\staging\packages目录里,是一堆.zip、.tar.gz、.tar.bz2压缩文件。
偶尔的情况下,可能会提示安装python环境。实际的试验过程,未确定是否是绝对必需的。因为我尝试安装python 2.7、python 2.6、python 3.0,安装、卸载、卸载、安装等一通折腾,到底是谁起了作用,或者有没有作用未知,总之是后来可以使用了。
有一种安装方式,是广为流传的:把官网的ESP32各个压缩包下载回来,解压到hardware目录espressif的ESP32目录里。试验这种方法,并未成功,提示少这个.h、重复那个.h的。
四、从示例创作Phyphox实验
在Arduino IDE的库管理器里找到phyphox BLE库,安装。
在Phyphox-BLE库找到CreateExperiment.ino,这是个生成随机数的实验。在phyphox里创建了一个View,View里包含一个Graph,绘制出来随机数图线。通过Start一个名称为My Device的蓝牙设备,把实验和数据发送给Phyphox。
在Phyphox里面测试实验。打开Phyphox,在右下角点击带有“+”号的橙色按钮,选择“为蓝牙设备添加实验”,找到蓝牙设备,一些提示后,Random Number Plotter实验被加入phyphox。打开实验,绘制随机数图象。
至此,使用ESP32开发板可以脱离phyphox editor创作自己的实验了,而无限量的各类传感器都可以与ESP32通信,phyphox实验真正实现了移动的传感器实验室标准。