基于ESP32与phyphox的DIS实验制作(3)-ESP32与phyphox的电压传感器实验

本文详细介绍了如何使用ESP32和phyphox进行电压传感器实验,通过下载库文件、编写Arduino程序并操作phyphox,实现蓝牙连接ESP32进行电压测量。教程覆盖了从准备到实验的全过程,适合物理教学和DIY爱好者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在第二篇里介绍了如何使用phyphox来进行物理实验,我也用它做了一个简单的小实验,测量电梯下降时加速度的变化,不知道大家有么有算出我家住在几楼呢?前两篇内容其实应该早有人写过类似的,但是从这一节开始,每一节都是满满的干货哦!
用phyphox的确可以做许多有趣的小实验,但是毕竟手机上的传感器有限,能进行的实验也很有限了。再加上物理中最常见的一些传感器例如电压电流等电学传感器、测量位移类的传感器、力学传感器等等的缺失,导致phyphox仅仅依靠手机的传感器根本无法完成中学物理中常见的那些实验。
但是phyphox可以使用蓝牙连接ESP32(或者Arduino),这样phyphox就可以借助连接到ESP32上的传感器,完成几乎所有的传感器实验了。我在这大胆的预言,在未来的几年里,使用ESP32和phyphox开发自制DIS实验将会席卷物理自制教具圈!而我的这些教程,希望能加快这个进程,让更多的老师更快的加入到这个行列中来!在这一篇,我们就来完成一个最基础的电压传感器的实验,大家请先看两段视频:
(观看视频请关注微信公众号:宁中物理创新实验室)
如何制作视频中的电压传感器呢,跟着下面的教程,一起来制作吧!

1、从www.phyphox.org网站中下载所需要的库文件

  在More下的Material下的Arduino library内:
  ![在这里插入图片描述](https://img-blog.csdnimg.cn/a5e429b20c674f7a97b357f009bbac00.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATWFrZU1ha2Vy,size_13,color_FFFFFF,t_70,g_se,x_16)

点击后进入下面界面,然后再找到Learn more on github.其中github是个超级链接,点击后就进入到了github里的文件页面。
在这里插入图片描述
当然你也可以直接在浏览器里输入https://github.com/phyphox/phyphox-arduino直接进入:
在这里插入图片描述
点击Code,选择Download ZIP
在这里插入图片描述
下载完后将文件解压:
在这里插入图片描述
然后将文件改名成phyphox

在这里插入图片描述
注意此文件夹打开后就是下列文件
在这里插入图片描述
然后再回到上一层目录,将phyphox整个文件夹复制,并将其粘贴到第一篇时讲过的Arduino目录内的libraries文件夹内:
在这里插入图片描述
粘贴完后如下:
在这里插入图片描述

2、开始第一个ESP32与phyphox的实验程序

然后回到Arduino的根目录,双击打开Arduino.exe应用程序
在这里插入图片描述
这是可以在文件——示例中找到phyphox BLE的示例程序,我们打开最后一个程序:readoutADC
在这里插入图片描述
打开后如下:
在这里插入图片描述
当然此刻你可以直接将ESP32插上电脑,点击上传按钮将这段程序上传到你的ESP32 上,上传完后手机上的phyphox就可以通过蓝牙连接ESP32了,但是在此之前我向大家简单解释一下这个程序。别看程序很短,那是因为phyphox已经帮我们写好了库函数,也就是所有的工作其实它都已经在库函数里帮我们已经做好了,我们仅仅是通过几句特定的指令调用它已经写好的库函数而已。在程序中,“//”后面的,或者“//”中间包括的都为注释语句,看起来也是灰色的字体,也就是说这些是不会运行的,仅仅为了说明程序而写的,完全可以删除。所以我以后解释程序时也都会写在程序注释里。


#include <phyphoxBle.h>
int ADC_GPIO = 25;    // ESP32
//int ADC_GPIO = A0;  // Arduino Nano 33 BLE
void setup() {
     
  // put your setup code here, to run once:
  Serial.
### 设计开发基于ESP32的压力传感器测量系统 #### 1. 系统概述 物联网技术的进步让设备间的交互更加智能化和高效化。在众多应用场景里,压力传感器作为常用组件之一,能够精准地监测气体或液体的压力状况[^1]。 #### 2. 组件选型 对于本项目而言,推荐选用LPS25H压阻式压力传感器配合ESP32微控制器来完成设计。该组合不仅具备高精度特性,而且易于集成到现有网络架构之中。 #### 3. 开发环境准备 为了顺利开展编程工作,需先按照指导文档设置好Arduino IDE下的ESP32开发平台[^2]。这一步骤至关重要,因为它提供了必要的工具链支持以及库函数接口访问权限。 #### 4. 接线配置 根据官方资料说明,确保正确连接LPS25HESP32之间的信号线路(SCL, SDA),同时注意为两者提供稳定的工作电源供给。 #### 5. 软件编码实践 下面给出一段Python风格伪代码片段用于展示初始化过程及数据采集逻辑: ```python import machine from time import sleep_ms # 初始化 I2C 总线对象 i2c = machine.I2C(scl=machine.Pin(22), sda=machine.Pin(21)) def read_pressure(): """读取来自 LPS25H 的气压数值""" # 发送命令给传感器使其进入连续模式... # 假设此处已获取到了原始二进制形式的结果... raw_data = bytearray([0x00]) * 3 # 将其转换成浮点数表示的实际大气压强单位 hPa ... pressure_value = (raw_data[0]<<16 | raw_data[1]<<8 | raw_data[2])/4096.0 return round(pressure_value, 2) while True: try: current_pressure = read_pressure() print(f&#39;当前气压:{current_pressure}hPa&#39;) # 模拟每秒更新一次显示效果 sleep_ms(1000) except Exception as e: print(&#39;Error:&#39;, str(e)) ``` 上述示例展示了如何通过调用特定API实现周期性的压力值查询功能,并打印输出结果以便观察。 #### 6. 测试验证阶段 完成初步部署后,建议利用现成的应用软件如Phyphox来进行实时数据分析处理,从而直观评估整个系统的性能表现[^4]。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值