ESP32_oscilloscope:一个基于ESP32的Web示波器

文摘   2024-11-25 00:02   湖南  

项目概述

ESP32_oscilloscope是一个基于ESP32微控制器的示波器项目,它具备直观的网页界面,可以显示采集到的信号。这个项目最初是为了展示ESP32多任务功能而设计的,但现在它已经发展成为一个自成体系的示波器解决方案。

这款示波器能够在屏幕上显示多达736个样本。然而,采样率可能并不总是稳定的,因为ESP32还要处理其他的任务。这意味着,在不同的使用场景下,ESP32未必能够始终保持理想的采样频率。

示波器的工作原理

ESP32_oscilloscope通过处理和展示从输入引脚获得的数字或模拟信号,让用户能够看到其真实的波形。输入信号的数字值范围为0和1,模拟值则从0到4095,代表0V到3.3V的电压范围。

用户可以通过修改oscilloscope.html文件来适配自己的需求,比如指定使用哪些GPIO作为数字输入,哪些作为模拟输入,这样能更合理地监测信号。

设置说明

为了启动ESP32_oscilloscope项目,用户需要按照以下步骤进行设置:

  1. 1. 将本项目中的所有文件复制到Esp32_oscilloscope目录。

  2. 2. 使用Arduino IDE打开Esp32_oscilloscope.ino文件。

  3. 3. 在Esp32_servers_config.h文件中,将YOUR-STA-SSIDYOUR-STA-PASSWORD替换为您自己的WiFi SSID和密码。

  4. 4. 选择一个SPIFFS分区模式(在“工具”菜单中选择“分区方案”)。

  5. 5. 如果您的ESP32板没有闪存,则需注释掉#define FILE_SYSTEM FILE_SYSTEM_LITTLEFS行,这样示波器将使用程序存储器代替文件系统来存储oscilloscope.html文件。

  6. 6. 编译并首次运行该草图,ESP32的闪存将被格式化,注意,这将清除闪存中的所有信息。

  7. 7. 使用FTP上传相关的图像和html文件到ESP32的/var/www/html目录中。

  8. 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


DIY太阳系
分享嵌入式系统知识,写精华文章!
 最新文章