用ESP32创作Phyphox光敏电阻实验
电路图,Multisim 14里面没有光敏电阻,只好用汉字标一下:
实验效果:
Phyphox能够用ESP32、Arduino Nano 33 BLE等开发板直接拓展和创作新的实验了,这引起了我们使用Phyphox做实验的足够的兴趣。本例是应张怀华老师的要求尝试的实验,似乎还有问题,效果一般般。尝试的目的是要体现一下手机外部传感器的数据与手机上的传感器采集数据的融合。这里是用ESP32开发板测量光敏电阻器的阻值Rt,手机上的光传感器则测量光照强度I,然后作出Rt-I的散点图,同时以数据形式表达测量结果。
为能说明问题和实验创作的方法,这里用代码逐行加注释的形式来解释。
/*
本实验用于演示光敏电阻随光强变化的关系。
对Phyphox实验创作者,本例用于示范Phyphox-BLE与Phyphox手机传感器交互。
*/
#include <phyphoxBle.h>
int Pin = 33;//读入电压
float Rt = 0;//待测光敏电阻
float R = 20.0; //分压电阻20k
void setup()
{
PhyphoxBLE::start("PhotoResistor");
PhyphoxBleExperiment plotPhotoResistor;
plotPhotoResistor.setTitle("光敏电阻实验");
plotPhotoResistor.setCategory("Arduino Experiments");
plotPhotoResistor.setDescription("观察光敏电阻随光照强度变化的关系。");
//View
PhyphoxBleExperiment::View firstView;
firstView.setLabel("MyView"); //Create a "view"
//Graph
PhyphoxBleExperiment::Graph firstGraph;
firstGraph.setLabel("Resistance-illumination curve");
firstGraph.setUnitX("lux");
firstGraph.setUnitY("kΩ");
firstGraph.setLabelX("illumination");
firstGraph.setLabelY("Resistance");
firstGraph.setChannel(0, 1);//暂时先传1个数据,即CH1,后期导入editor修改
firstView.addElement(firstGraph);
plotPhotoResistor.addView(firstView);
PhyphoxBLE::addExperiment(plotPhotoResistor);
}
void loop()
{
float iV = analogRead(Pin) * 5.0 / 1024.0 / 4.0;
if (iV != 5.00000) {
Rt = iV * R / (5.0 - iV);
PhyphoxBLE::write(Rt);//Rt在CH1
};
delay(50);
PhyphoxBLE::poll();
}