芯查查logo
  • 物料选型
  • 数据服务
    1. 新品推荐
    2. 查替代料
    3. 丝印反查
    4. 查品牌
    5. PCN/PDN
    6. 查代理
    7. 数据合作
  • 应用方案
  • SaaS产品
      SaaS产品
    1. 供应链波动监测预警
    2. 半导体产业链地图
    3. 智能BOM管家
    4. 解决方案
    5. 汽车电子
    6. 政府机构
    7. 数据API
  • 商城
  • 资讯与直播
    1. 资讯
    2. 直播
  • 论坛社区
    1. 论坛
    2. 学习
    3. 测评中心
    4. 活动中心
    5. 积分商城
  • 查一下
正在使用账号登录iCEasy商城
帖子审核中,请稍后
ESP8266性能完全榨干!V19.7示波器添加Auto模式
原创 精华 发布时间:2026/08/15 14:02
版块:
开源硬件项目 电子DIY PCB设计 单片机/MCU论坛 电子元器件
简介:完全榨干ESP8266!示波器新增Auto Mode!稳定测试12kHz,波形占满屏幕。电压/电流/电阻/温度+PWM/示波器全搞定,内存可用47KB+!支持网页一键更新,全场景覆盖!

以下是用于zvs142857SystemXccUpdate();远程更新函数: 
Update=http://xccfriend.oss-cn-shenzhen.aliyuncs.com/upload/pc/2026-08-25/8d3fe8f4-5e0d-4250-8899-0d66a51fe597.zip

Update= http://xccfriend.oss-cn-shenzhen.aliyuncs.com/upload/pc/2026-08-25/8d3fe8f4-5e0d-4250-8899-0d66a51fe597.zip

固件更新(.BIN).zip在http://xccfriend.oss-cn-shenzhen.aliyuncs.com/upload/pc/2026-08-25/8d3fe8f4-5e0d-4250-8899-0d66a51fe597.zip

固件更新(.BIN).zip在 http://xccfriend.oss-cn-shenzhen.aliyuncs.com/upload/pc/2026-08-25/8d3fe8f4-5e0d-4250-8899-0d66a51fe597.zip


上次示波器能测试1KHz,这个V19.7的示波器稳定测试12KHz! 免编译代码直接烧录固件,开箱即用!

仪表模式的电阻测试优化,无需下拉电阻,A0和3.3V串联电阻即可测量(50K以下的电阻不能测,电阻越大精度越高)

1.示波器添加Auto模式

以前的示波器:

现在的示波器:
Auto模式

正弦波:

使用NE555的信号发生器,输出方波测试:
使用Auto模式测试方波:

因为摄像头拍摄OLED会屏闪,所以是这样

开启Auto模式后(按下AUTO/BACK按钮)右上角显示Auto字样,并自动放大/缩小波形,使波形占满整个屏幕,右下角显示频率,左上角显示电压V/mV(19.7新增mV,开启Auto模式支持测量mV)

这是一个STC芯片的Mini-DSO示波器,与这个19.7的示波器进行对比

 

 

这个STC/Mini-DSO的示波器,最低200µs(200µs/500µs/1ms/2ms/5ms/10ms/100ms/500ms)这个19.7是固定3µs,在3µs延迟显示波形,因为WiFi中断和I2C传输,实际可能有50µs,但是STM示波器200µs更卡顿
可以看到,Mini-DSO示波器显示正弦波时OLED有毛刺,且屏幕没有完全利用显示波形,我这19.7示波器的OLED虽然小,但是是全屏显示,并且自动调节大小,并且能显示mV,以前只能显示V,提高显示范围

V19.7的温度测试也优化了,无需热敏电阻,使用LM35作为输入,再使用MOSFET控制A0是否打开LM35,用于在时钟模式之外隔离A0

原理:当系统使用LM35时,拉高D0,此时D0为低电平转成高电平,MOSFET导通,PC817导通,此时A0从PC817获取LM35的温度

2.内存再次优化

1.使用PROGMEM节省内存,读取使用_p等函数

2.所有不变的数组全部在#define里面,也有的在PROGMEM里面,进一步节省SRAM 

3.删除了无用的库:ArduinoJson.h :

4.删除了DNSServer.h

#include <ESP8266WiFi.h>
#include <U8g2lib.h>
#include <ESP8266WebServer.h>
#include <LwipDhcpServer.h>
#include <EEPROM.h>
#include <TimeLib.h>
#include <NtpClientLib.h>
#include <ESP8266HTTPClient.h>
#include <ESP8266httpUpdate.h>
#include <SimpleTimer.h>
#include <pgmspace.h>
#include <Wire.h>
#include <FS.h>
#include <zvs142857.h>
#include <lwip/napt.h> // WiFi NAT
extern "C" {
  #include <user_interface.h>
  bool wifi_softap_deauth(uint8_t *mac);
  uint8 wifi_get_channel(void);
}
#if zvs142857_VERSION_MAJOR != 1 || zvs142857_VERSION_MINOR < 5
#error "This sketch requires zvs142857 library version 1.5.x or higher!"
#endif

3.Web页面增强

新增 /Settings 设置,所有Web页面暗色
一键切换 时钟/热点/CRACK/Beacon 模式,WiFi NAT,调节 OLED 亮度,修改热点 SSID/密码/信道,还能直接搜索更新、重启设备。

 

4. 仪表模式展示

zvs142857 System外观:

V4实物图:

旧版:

 

 

 

 

新版:

电阻测试,未接显示142857MR。现在连接一个330K:

显示331.92KΩ

5.WiFi Crack/BEACON增强

 

效果:

 

BEACON至少会发出160个SSID,在400pkts下,会超过500个SSID

BEACON平均380pkts,运行一段时间后平均300pkts,再过一段时间后稳定在275pkts左右

 

6.PCB设计

在电路板上,有示波器的输入口(示波器/电压表)都用这个输入,最大3.3V

电阻测试用正面的最大2个焊盘,且不能测试50K以下的电阻,50K以下电阻会显示0.01R。这是因为没有下拉电阻,此电路/固件不需要下拉电阻,而是使用PCB漏电的电阻作为下拉(PCB漏电电阻一定)

A0---测试电阻---3.3V,无需下拉电阻

A0和3.3V在正面最大2个焊盘上面

测试电流就短接A(BUTTON)端子

V3电路板:

V3有bug

PCB 版本:V3

 


V4电路板: 

 

C3,C电容4容量一大一小,消除低频和高频信号,使VIN输入更加稳定

 

这次在PCB电阻那里添加了阻值(330K等)这样更方便焊接

IN为输入测量正极,另一边为负极,开关使用自锁开关,测量输入最大3.3V,否则会损坏ESP8266的ADC引脚

原本是用TPS61023DRLR的,结果发现输出0V,所以这次使用外接SX1308模块,在电路板背面右下角的焊盘,IN为SX1308模块输入,OUT是SX1308的输出。使用3.7v聚合物锂电池,850mAh以上的电池,充满电空载可以运行6小时,满载可以运行3小时

V4新版无需连接升压电路,直接连接BAT和GNDV2/V3的:如果不接升压模块,用导线短接VCC和OUT

背面右上角的IN OUT的接口,旁边标注了V/Ω/OSC,这个端子可以测电压,还能当示波器。但是不能测试电阻,测电阻可以在正面PCB那2个最大的焊盘测,更方便

原理图:

这里的充电电路为了简单,所以只使用了一个元器件:SS34二极管

所以,电池除了使用850mAh以上的,还必须使用有充电保护板的聚合物锂电池,这里使用的是 802540 850mAh的聚合物锂电池

7.烧录固件+配置WiFi

第一步:

烧录固件:  

1.下载回来ESP8266 OLED V19.7.zip

2.解压文件

3.找到"软件"文件夹,里面有个ESP8266Flasher.exe

4.运行ESP8266Flasher.exe

 

如果只有COM1,说明ESP8266没有连接或者无法识别,此时下载回来附件的CH341SER.zip然后解压

 

里面只有一个程序,运行

然后点击"安装"按钮

这样就安装好了,重新连接ESP8266。

然后打开设备和打印机/设备管理器

出现USB-SERIAL CH340就可以了

5.选择新的端口

烧录视频SH1106(上传的bug终于修复了):

SSD1306:

6.点击Config

如果使用SH1106像上面的就可以,如果是SSD1306,点击右边齿轮图标选择这个固件:

 

ESP8266_OLED_V19.7_SSD1306_OLED.bin

 

7.点击Advanced

这样就配置好了

 

8.点击Operation,并选择合适的端口(这里是COM5)

 

9.点击Flash(F)按钮

 

 

等待进度跑满

 

像这样就完成了,重新连接ESP8266 

 

第二步:

配置WiFi:

1.给8266连接电源

2.A0与3.3V短接(使A0电压大于1V)

3.屏幕出现:
SSID: ESP8266-WiFi

IP: 192.168.4.1

就可以连接了(开放网络)

   

4.浏览器输入(前缀是http://没有s):
http://192.168.4.1 

进去后会看到WiFi页面,OLED右下角会有SCAN字样,扫描完成后SCAN字样会消失

新版:

新版旧版操作方法不变,只是新版的外观是暗色更现代

选一个WiFi,输入密码然后连接

这样就成功了

如果卡在Clock Mode,按下RST重启,密码已经保存

 

5.重新连接热点,热点名已经改变(从ESP8266-WiFi变为ESP8266)

连接SSID是'ESP8266'的热点,密码:'zvs142857'

 

ESP8266热点直接连接是有Internet访问的,无需设置DNS

 

 

8.硬件清单

ESP8266*1

面包板*1

SH1106 OLED *1

 

zvs142857 System V4:

 

ESP8266 NodeMCU*1

SSD1306 OLED*1

LM35DZ*1

PC817*1

3.7v&850mAh+*1

15P 2.54排母*2

一些电阻电容

……(在BOM里面有更多)

 

9.Web页面

 

新增页面/Settings 

 

/Setting设置页面通过设置打开:

http://192.168.4.1/Settings 
 

19.7新增/Setting设置页面:

 

Web页面:

http://192.168.4.1 

那4个系统操作这里就不演示了

http://192.168.4.1/Update 

此页面可以远程上传.bin固件升级

旧版:

 

新版:

内存剩余:29KB/30048Bytes

http://192.168.4.1/advanced 

RAM:29KB/30048Bytes,说明没有任何的内存泄漏!
新版:

http://192.168.4.1/wifi 

新版:

http://192.168.4.1/other 
 

新版:


因为页面太多了不能完全展示
内存依旧30048字节,说明没有内存泄漏,这绝对不是char的效果!而是PROGMEM的效果!!!

因为把全局char换成了PROGMEM和#define,函数内部一些char换成了String,所以内存提升了很多(其实函数内部使用string比char更好,char会永久占用SRAM,会让41%的占用变成60%以上,而且静态内存上升,运行时虽然char不会内存碎片和泄漏内存,原本29KB,使用char只有15KB,所以部分使用String更值得,而且String会自动释放。使用char不管局部还是全局、不管怎么修饰前缀(加了static也没用),都会占用SRAM,栈也是SRAM的一部分!这些函数必须使用String,否则容易内存不足!!!因为这些String的调用频率非常低,使用char就是在浪费SRAM!!!而且使用char容易爆堆,导致堆内存不足触发重启,请勿在此代码的那些函数的char换成String,因为浪费内存,而且一些库并没有上传导致无法编译)

SRAM(80KB/96KB)≠编译器计算剩余内存(58%剩余,41%占用)≠运行时内存剩余≠运行在时钟模式空闲内存29KB

Web不要使用String拼接,更不要使用更吃内存的char,使用PROGMEM,const int换#define

server.setContentLength(CONTENT_LENGTH_UNKNOWN);
server.send_P(200, PSTR("text/html; charset=utf-8"), PSTR(""));
server.sendContent_P(PSTR("<!DOCTYPE html><html><head><meta charset='UTF-8'>"));
server.sendContent_P(PSTR("……"));

10.编译日志

因为ESP8266的SRAM只有80KB,重要的是编译时的内存占用:


Executable segment sizes:

ICACHE : 32768           - flash instruction cache 

IROM   : 580728          - code in flash         (default or ICACHE_FLASH_ATTR) 

IRAM   : 29193   / 32768 - code in IRAM          (IRAM_ATTR, ISRs...) 

DATA   : 1528  )         - initialized variables (global, static) in RAM/HEAP 

RODATA : 2884  ) / 81920 - constants             (global, static) in RAM/HEAP 

BSS    : 29944 )         - zeroed variables      (global, static) in RAM/HEAP 

项目使用614333字节(58%)的程序存储空间。最大值为1044464字节。
个全局变量使用34356个字节(41%)的动态内存,剩下47564个字节用于局部变量。最大值为81920字节。

==编译成功(用时 3m57s)==

SRAM只使用了41%,可用58%

IRAM使用率89%,正常,ESP8266WiFi库占82%,加上I2C,这个19.7持续运行5个月都不会重启

程序存储空间使用率58%,固件大小约604KB

静态内存占41%,可用58%,可用内存还比静态内存要多17%

固件更新(.BIN).zip内容是bin,只是附件不能上传bin文件,所以重命名为zip,此文件适配SSD1306固件,完整固件+源码在ESP8266 OLED V19.7.zip,Gerber_PCB1_2026-08-11.zip等是PCB文件

单选 19.7的示波器 vs PWM
示波器
PWM
进行中 5人参与 2035-08-01 结束
投票
工程附件
Gerber_PCB1_2026-08-11.zip
ESP8266_OLED_Driver_-_V4_PCB1_20260810204147.zip
InteractiveBOM_PCB1_2026-8-11.zip
BOM_Board1_PCB1_2026-08-11.xlsx
ESP8266 OLED V19.7.zip
固件更新(.BIN).zip
申请原创奖励
2026/08/15 14:02
  • 举报
😁😂😃😄😅😆😉😊😋😌😍😏😒😓😔😖😘😚😜😝😞😠😡😢😣😤😥😨😩😪😫😭😰😱😲😳😵😷😸😹😺😻😼😽😾😿🙀🙅🙆🙇🙈🙉🙊🙋🙌🙍🙎🙏✂✅✈✉✊✋✌✏✒✔✖✨✳✴❄❇❌❎❓❔❕❗❤➕➖➗➡➰🚀🚃🚄🚅🚇🚉🚌🚏🚑🚒🚓🚕🚗🚙🚚🚢🚤🚥🚧🚨🚩🚪🚫🚬🚭🚲🚶🚹🚺🚻🚼🚽🚾🛀Ⓜ🅰🅱🅾🅿🆎🆑🆒🆓🆔🆕
@好友

全部评论

加载中
游客登录通知
已选择 0 人
自定义圈子
移动
发布帖子
发布动态
发布问答
发布者
zvs142857
创作者认证
目录

1.示波器添加Auto模式

2.内存再次优化

3.Web页面增强

4. 仪表模式展示

旧版:

 

新版:

5.WiFi Crack/BEACON增强

6.PCB设计

V3电路板:

V4电路板: 

7.烧录固件+配置WiFi

烧录固件:  

配置WiFi:

8.硬件清单

9.Web页面

Web页面:

10.编译日志

最新帖子
怎么用数字 FAE 做电源方案的芯片选型智能戒指方案设计:从需求到BOM清单的完整设计流程数字FAE提示词怎么写?3个让方案输出更准的提问习惯智能眼镜方案拆解:电致变色镜片+双路音频的硬件架构怎么搭人形机器人主控MCU选型:用数字FAE的思路拆解5个关键维度
热门版块
查看更多
萤火工场
问型号
Arduino
飞腾
开源硬件项目
每日打卡
电子DIY
维修技术交流
抄图联盟
PCB设计

198

收藏

分享

评论