直接用手机测电压-Phyphox-ESP32图形电压表
直接用手机测电压-Phyphox-ESP32图形电压表
按照Phyphox BLE官方的介绍,它最认为支持得最好的开发板,应该是Arduino Nano 33 BLE/BLE Sensor/IOT这三款,而支持ESP32似乎并不是它的主要方向。
但令人迷惑的是,似乎Phyphox BLE对Arduino Nano 33 BLE支持得并不好。程序可以被正常烧写,但手机并不能发现蓝牙设备。很是郁闷。
Nano 33似乎淘不到仿制版,买了原版,240多元,比ESP32贵太多,ESP32已经有20元以下的价格。
现在,仍然用ESP32来扩充Phyphox的功能,绘制电压随时间变化的图线——是的,这很容易让我们想到再加上去一个电流传感器直接绘制非线性元件的伏安特性曲线、电容器充放电实验、自感实验、LC振荡电路实验、法拉第电磁感应定律等等——确实,但目前这个只是一个原型实验,没做那么多细致的事情。
总之都能做了。
实验加入到Phyphox里的样子:
测量结果:
实际实验器材,只是从5V电压里用滑动变阻器分了一部分电压送给IO33脚:
程序代码。好事情是代码里是直接支持中文的,到了Phyphox里面就会正常显示,但是看Phyphox BLE的源码,似乎它还不能直接把Value送给View而不是用必须图象,不过这个问题已经得到了解决:
#include <phyphoxBle.h>
int Pin = 33;
int iV = 0;
void setup()
{
PhyphoxBLE::start("MyVoltage");
PhyphoxBleExperiment plotVoltage;
plotVoltage.setTitle("数字图形电压表");
plotVoltage.setCategory("Arduino Experiments");
plotVoltage.setDescription("北京市和平街第一中学,梅晓璇,数字图形电压表,用于测量5V以内正电压。");
//View
PhyphoxBleExperiment::View firstView;
firstView.setLabel("MyView"); //Create a "view"
//Graph
PhyphoxBleExperiment::Graph firstGraph;
firstGraph.setLabel("Voltage-time curve");
firstGraph.setUnitX("s");
firstGraph.setUnitY("V");
firstGraph.setLabelX("time");
firstGraph.setLabelY("Voltage");
firstGraph.setChannel(0, 1);
firstView.addElement(firstGraph);
plotVoltage.addView(firstView);
PhyphoxBLE::addExperiment(plotVoltage);
}
void loop()
{
iV = analogRead(Pin);
float fV = iV * 5.0 / 1024.0 / 4.0;
PhyphoxBLE::write(fV);
delay(50);
PhyphoxBLE::poll();
}
动态显示: