项目概述
ESP32_oscilloscope是一个基于ESP32微控制器的示波器项目,它具备直观的网页界面,可以显示采集到的信号。这个项目最初是为了展示ESP32多任务功能而设计的,但现在它已经发展成为一个自成体系的示波器解决方案。
这款示波器能够在屏幕上显示多达736个样本。然而,采样率可能并不总是稳定的,因为ESP32还要处理其他的任务。这意味着,在不同的使用场景下,ESP32未必能够始终保持理想的采样频率。
示波器的工作原理
ESP32_oscilloscope通过处理和展示从输入引脚获得的数字或模拟信号,让用户能够看到其真实的波形。输入信号的数字值范围为0和1,模拟值则从0到4095,代表0V到3.3V的电压范围。
用户可以通过修改oscilloscope.html
文件来适配自己的需求,比如指定使用哪些GPIO作为数字输入,哪些作为模拟输入,这样能更合理地监测信号。
设置说明
为了启动ESP32_oscilloscope项目,用户需要按照以下步骤进行设置:
1. 将本项目中的所有文件复制到
Esp32_oscilloscope
目录。2. 使用Arduino IDE打开
Esp32_oscilloscope.ino
文件。3. 在
Esp32_servers_config.h
文件中,将YOUR-STA-SSID
和YOUR-STA-PASSWORD
替换为您自己的WiFi SSID和密码。4. 选择一个SPIFFS分区模式(在“工具”菜单中选择“分区方案”)。
5. 如果您的ESP32板没有闪存,则需注释掉
#define FILE_SYSTEM FILE_SYSTEM_LITTLEFS
行,这样示波器将使用程序存储器代替文件系统来存储oscilloscope.html
文件。6. 编译并首次运行该草图,ESP32的闪存将被格式化,注意,这将清除闪存中的所有信息。
7. 使用FTP上传相关的图像和html文件到ESP32的/var/www/html目录中。
8. 在浏览器中打开
http://YOUR-ESP32-IP/oscilloscope.html
来访问示波器界面。
处理反向信号
在某些ESP32板上,您可能会遇到反向模拟信号的问题。这时,可以通过在oscilloscope.h
中注释或取消注释INVERT_ADC1_GET_RAW
和/或INVERT_I2S_READ
编译指令来解决。如果您的ESP32板支持I2S接口(如ESP32 DevKitC或NodeMCU-32S),您还可以选择是否使用此接口。使用I2S接口可以提高采样频率和单个模拟信号的质量,但缺点是无法同时使用多个模拟示波器。
关于模拟读取的注意事项
ESP32内部有两个成功逼近寄存器(SAR),其中只有ADC1可以用于示波器的模拟读取。这些GPIO引脚包括36、37、38、39、32、33、34、35。而ADC2引脚(GPIO4、0、2、15、13、12、14、27、25、26)只能在WiFi不工作的情况下才可以进行模拟读取,因此在使用ESP32_oscilloscope时,这些ADC2引脚是不可用的。
结论
ESP32_oscilloscope为用户提供了一种简单而高效的方式来实时监测信号。通过Web界面,用户不仅能轻松访问示波器,还能根据自己的需要进行自定义设置。无论是爱好者还是专业工程师,这款ESP32示波器都能够在日常工作、实验和学习中发挥重要的作用。
项目地址:https://github.com/BojanJurca/Esp32_oscilloscope